diff --git a/packages/google-analytics-data/.eslintrc.json b/packages/google-analytics-data/.eslintrc.json index 782153495464..3e8d97ccb390 100644 --- a/packages/google-analytics-data/.eslintrc.json +++ b/packages/google-analytics-data/.eslintrc.json @@ -1,3 +1,4 @@ { - "extends": "./node_modules/gts" + "extends": "./node_modules/gts", + "root": true } diff --git a/packages/google-analytics-data/.gitattributes b/packages/google-analytics-data/.gitattributes new file mode 100644 index 000000000000..33739cb74e44 --- /dev/null +++ b/packages/google-analytics-data/.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-analytics-data/.prettierignore b/packages/google-analytics-data/.prettierignore new file mode 100644 index 000000000000..9340ad9b86d3 --- /dev/null +++ b/packages/google-analytics-data/.prettierignore @@ -0,0 +1,6 @@ +**/node_modules +**/coverage +test/fixtures +build/ +docs/ +protos/ diff --git a/packages/google-analytics-data/.prettierrc.js b/packages/google-analytics-data/.prettierrc.js new file mode 100644 index 000000000000..7649ee3c254e --- /dev/null +++ b/packages/google-analytics-data/.prettierrc.js @@ -0,0 +1,22 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + + +module.exports = { + ...require('gts/.prettierrc.json') +} diff --git a/packages/google-analytics-data/CODE_OF_CONDUCT.md b/packages/google-analytics-data/CODE_OF_CONDUCT.md new file mode 100644 index 000000000000..2add2547a812 --- /dev/null +++ b/packages/google-analytics-data/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-analytics-data/CONTRIBUTING.md b/packages/google-analytics-data/CONTRIBUTING.md new file mode 100644 index 000000000000..11f6908f30cf --- /dev/null +++ b/packages/google-analytics-data/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 Data 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=analyticsdata.googleapis.com +[auth]: https://cloud.google.com/docs/authentication/getting-started \ No newline at end of file diff --git a/packages/google-analytics-data/LICENSE b/packages/google-analytics-data/LICENSE new file mode 100644 index 000000000000..d64569567334 --- /dev/null +++ b/packages/google-analytics-data/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-analytics-data/README.md b/packages/google-analytics-data/README.md index d57054d3e22a..281ad5361204 100644 --- a/packages/google-analytics-data/README.md +++ b/packages/google-analytics-data/README.md @@ -61,6 +61,7 @@ Samples are in the [`samples/`][homepage_samples] directory. Each sample's `READ | create recurring audience list | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.create_recurring_audience_list.js) | | create report task | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.create_report_task.js) | | get audience list | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.get_audience_list.js) | +| get metadata | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.get_metadata.js) | | get property quotas snapshot | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.get_property_quotas_snapshot.js) | | get recurring audience list | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.get_recurring_audience_list.js) | | get report task | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.get_report_task.js) | @@ -70,7 +71,7 @@ Samples are in the [`samples/`][homepage_samples] directory. Each sample's `READ | query audience list | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.query_audience_list.js) | | query report task | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.query_report_task.js) | | run funnel report | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.run_funnel_report.js) | -| sheet export audience list | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.sheet_export_audience_list.js) | +| run report | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.run_report.js) | | analytics | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-analytics-data/samples/generated/v1alpha/snippet_metadata_google.analytics.data.v1alpha.json) | | batch run pivot reports | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-analytics-data/samples/generated/v1beta/beta_analytics_data.batch_run_pivot_reports.js) | | batch run reports | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-analytics-data/samples/generated/v1beta/beta_analytics_data.batch_run_reports.js) | diff --git a/packages/google-analytics-data/protos/google/analytics/data/v1alpha/analytics_data_api.proto b/packages/google-analytics-data/protos/google/analytics/data/v1alpha/analytics_data_api.proto index 47c4f3b278cd..c936b2d0ee6a 100644 --- a/packages/google-analytics-data/protos/google/analytics/data/v1alpha/analytics_data_api.proto +++ b/packages/google-analytics-data/protos/google/analytics/data/v1alpha/analytics_data_api.proto @@ -1,4 +1,4 @@ -// Copyright 2025 Google LLC +// Copyright 2026 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -38,10 +38,7 @@ service AlphaAnalyticsData { option (google.api.default_host) = "analyticsdata.googleapis.com"; option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/analytics," - "https://www.googleapis.com/auth/analytics.readonly," - "https://www.googleapis.com/auth/drive," - "https://www.googleapis.com/auth/drive.file," - "https://www.googleapis.com/auth/spreadsheets"; + "https://www.googleapis.com/auth/analytics.readonly"; // Returns a customized funnel report of your Google Analytics event data. The // data returned from the API is as a table with columns for the requested @@ -131,34 +128,6 @@ service AlphaAnalyticsData { option (google.api.method_signature) = "name"; } - // Exports an audience list of users to a Google Sheet. After creating an - // audience, the users are not immediately available for listing. First, a - // request to `CreateAudienceList` is necessary to create an audience list of - // users, and then second, this method is used to export those users in the - // audience list to a Google Sheet. - // - // See [Creating an Audience - // List](https://developers.google.com/analytics/devguides/reporting/data/v1/audience-list-basics) - // for an introduction to Audience Lists with examples. - // - // Audiences in Google Analytics 4 allow you to segment your users in the ways - // that are important to your business. To learn more, see - // https://support.google.com/analytics/answer/9267572. - // - // This method is introduced at alpha stability with the intention of - // gathering feedback on syntax and capabilities before entering beta. To give - // your feedback on this API, complete the - // [Google Analytics Audience Export API - // Feedback](https://forms.gle/EeA5u5LW6PEggtCEA) form. - rpc SheetExportAudienceList(SheetExportAudienceListRequest) - returns (SheetExportAudienceListResponse) { - option (google.api.http) = { - post: "/v1alpha/{name=properties/*/audienceLists/*}:exportSheet" - body: "*" - }; - option (google.api.method_signature) = "name"; - } - // Gets configuration metadata about a specific audience list. This method // can be used to understand an audience list after it has been created. // @@ -331,6 +300,37 @@ service AlphaAnalyticsData { }; option (google.api.method_signature) = "parent"; } + + // Returns a customized report of your Google Analytics event data. Reports + // contain statistics derived from data collected by the Google Analytics + // tracking code. The data returned from the API is as a table with columns + // for the requested dimensions and metrics. Metrics are individual + // measurements of user activity on your property, such as active users or + // event count. Dimensions break down metrics across some common criteria, + // such as country or event name. + rpc RunReport(RunReportRequest) returns (RunReportResponse) { + option (google.api.http) = { + post: "/v1alpha/{property=properties/*}:runReport" + body: "*" + }; + } + + // Returns metadata for dimensions and metrics available in reporting methods. + // Used to explore the dimensions and metrics. In this method, a Google + // Analytics property identifier is specified in the request, and + // the metadata response includes Custom dimensions and metrics as well as + // Universal metadata. + // + // For example if a custom metric with parameter name `levels_unlocked` is + // registered to a property, the Metadata response will contain + // `customEvent:levels_unlocked`. Universal metadata are dimensions and + // metrics applicable to any property such as `country` and `totalUsers`. + rpc GetMetadata(GetMetadataRequest) returns (Metadata) { + option (google.api.http) = { + get: "/v1alpha/{name=properties/*/metadata}" + }; + option (google.api.method_signature) = "name"; + } } // A request to create a new recurring audience list. @@ -789,69 +789,6 @@ message QueryAudienceListResponse { optional int32 row_count = 3; } -// A request to export users in an audience list to a Google Sheet. -message SheetExportAudienceListRequest { - // Required. The name of the audience list to retrieve users from. - // Format: `properties/{property}/audienceLists/{audience_list}` - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "analyticsdata.googleapis.com/AudienceList" - } - ]; - - // Optional. The row count of the start row. The first row is counted as row - // 0. - // - // When paging, the first request does not specify offset; or equivalently, - // sets offset to 0; the first request returns the first `limit` of rows. The - // second request sets offset to the `limit` of the first request; the second - // request returns the second `limit` of rows. - // - // To learn more about this pagination parameter, see - // [Pagination](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#pagination). - int64 offset = 2 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. The number of rows to return. If unspecified, 10,000 rows are - // returned. The API returns a maximum of 250,000 rows per request, no matter - // how many you ask for. `limit` must be positive. - // - // The API can also return fewer rows than the requested `limit`, if there - // aren't as many dimension values as the `limit`. - // - // To learn more about this pagination parameter, see - // [Pagination](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#pagination). - int64 limit = 3 [(google.api.field_behavior) = OPTIONAL]; -} - -// The created Google Sheet with the list of users in an audience list. -message SheetExportAudienceListResponse { - // A uri for you to visit in your browser to view the Google Sheet. - optional string spreadsheet_uri = 1; - - // An ID that identifies the created Google Sheet resource. - optional string spreadsheet_id = 2; - - // The total number of rows in the AudienceList result. `rowCount` is - // independent of the number of rows returned in the response, the `limit` - // request parameter, and the `offset` request parameter. For example if a - // query returns 175 rows and includes `limit` of 50 in the API request, the - // response will contain `rowCount` of 175 but only 50 rows. - // - // To learn more about this pagination parameter, see - // [Pagination](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#pagination). - optional int32 row_count = 3; - - // Configuration data about AudienceList being exported. Returned to help - // interpret the AudienceList in the Google Sheet of this response. - // - // For example, the AudienceList may have more rows than are present in the - // Google Sheet, and in that case, you may want to send an additional sheet - // export request with a different `offset` value to retrieve the next page of - // rows in an additional Google Sheet. - optional AudienceList audience_list = 4; -} - // Dimension value attributes for the audience user row. message AudienceRow { // Each dimension value attribute for an audience user. One dimension value @@ -1302,3 +1239,206 @@ message ListReportTasksResponse { // If this field is omitted, there are no subsequent pages. optional string next_page_token = 2; } + +// The request to generate a report. +message RunReportRequest { + // Required. A Google Analytics property identifier whose events are tracked. + // Specified in the URL path and not the body. To learn more, see [where to + // find your Property + // ID](https://developers.google.com/analytics/devguides/reporting/data/v1/property-id). + // Within a batch request, this property should either be unspecified or + // consistent with the batch-level property. + // + // Example: properties/1234 + string property = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The dimensions requested and displayed. + repeated Dimension dimensions = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The metrics requested and displayed. + repeated Metric metrics = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Date ranges of data to read. If multiple date ranges are + // requested, each response row will contain a zero based date range index. If + // two date ranges overlap, the event data for the overlapping days is + // included in the response rows for both date ranges. In a cohort request, + // this `dateRanges` must be unspecified. + repeated DateRange date_ranges = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Dimension filters let you ask for only specific dimension values + // in the report. To learn more, see [Fundamentals of Dimension + // Filters](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#dimension_filters) + // for examples. Metrics cannot be used in this filter. + FilterExpression dimension_filter = 5 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The filter clause of metrics. Applied after aggregating the + // report's rows, similar to SQL having-clause. Dimensions cannot be used in + // this filter. + FilterExpression metric_filter = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The row count of the start row. The first row is counted as row + // 0. + // + // When paging, the first request does not specify offset; or equivalently, + // sets offset to 0; the first request returns the first `limit` of rows. The + // second request sets offset to the `limit` of the first request; the second + // request returns the second `limit` of rows. + // + // To learn more about this pagination parameter, see + // [Pagination](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#pagination). + int64 offset = 7 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The maximum number of rows to return. If unspecified, 10,000 rows + // are returned. The API returns a maximum of 250,000 rows per request, no + // matter how many you ask for. `limit` must be positive. + // + // The API can also return fewer rows than the requested `limit`, if there + // aren't as many dimension values as the `limit`. For instance, there are + // fewer than 300 possible values for the dimension `country`, so when + // reporting on only `country`, you can't get more than 300 rows, even if you + // set `limit` to a higher value. + // + // To learn more about this pagination parameter, see + // [Pagination](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#pagination). + int64 limit = 8 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Aggregation of metrics. Aggregated metric values will be shown in + // rows where the dimension_values are set to "RESERVED_(MetricAggregation)". + // Aggregates including both comparisons and multiple date ranges will + // be aggregated based on the date ranges. + repeated MetricAggregation metric_aggregations = 9 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies how rows are ordered in the response. + // Requests including both comparisons and multiple date ranges will + // have order bys applied on the comparisons. + repeated OrderBy order_bys = 10 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A currency code in ISO4217 format, such as "AED", "USD", "JPY". + // If the field is empty, the report uses the property's default currency. + string currency_code = 11 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Cohort group associated with this request. If there is a cohort + // group in the request the 'cohort' dimension must be present. + CohortSpec cohort_spec = 12 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If false or unspecified, each row with all metrics equal to 0 + // will not be returned. If true, these rows will be returned if they are not + // separately removed by a filter. + // + // Regardless of this `keep_empty_rows` setting, only data recorded by the + // Google Analytics property can be displayed in a report. + // + // For example if a property never logs a `purchase` event, then a query for + // the `eventName` dimension and `eventCount` metric will not have a row + // eventName: "purchase" and eventCount: 0. + bool keep_empty_rows = 13 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Toggles whether to return the current state of this Google + // Analytics property's quota. Quota is returned in + // [PropertyQuota](#PropertyQuota). + bool return_property_quota = 14 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The configuration of comparisons requested and displayed. The + // request only requires a comparisons field in order to receive a comparison + // column in the response. + repeated Comparison comparisons = 15 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Controls conversion reporting. This field is optional. If this + // field is set or any conversion metrics are requested, the report will be a + // conversion report. + ConversionSpec conversion_spec = 16 [(google.api.field_behavior) = OPTIONAL]; +} + +// The response report table corresponding to a request. +message RunReportResponse { + // Describes dimension columns. The number of DimensionHeaders and ordering of + // DimensionHeaders matches the dimensions present in rows. + repeated DimensionHeader dimension_headers = 1; + + // Describes metric columns. The number of MetricHeaders and ordering of + // MetricHeaders matches the metrics present in rows. + repeated MetricHeader metric_headers = 2; + + // Rows of dimension value combinations and metric values in the report. + repeated Row rows = 3; + + // If requested, the totaled values of metrics. + repeated Row totals = 4; + + // If requested, the maximum values of metrics. + repeated Row maximums = 5; + + // If requested, the minimum values of metrics. + repeated Row minimums = 6; + + // The total number of rows in the query result, regardless of the number of + // rows returned in the response. For example if a query returns 175 rows and + // includes limit = 50 in the API request, the response will contain row_count + // = 175 but only 50 rows. + // + // To learn more about this pagination parameter, see + // [Pagination](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#pagination). + int32 row_count = 7; + + // Metadata for the report. + ResponseMetaData metadata = 8; + + // This Analytics Property's quota state including this request. + PropertyQuota property_quota = 9; + + // Identifies what kind of resource this message is. This `kind` is always the + // fixed string "analyticsData#runReport". Useful to distinguish between + // response types in JSON. + string kind = 10; + + // A token, which can be sent as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + optional string next_page_token = 11; +} + +// Request for a property's dimension and metric metadata. +message GetMetadataRequest { + // Required. The resource name of the metadata to retrieve. This name field is + // specified in the URL path and not URL parameters. Property is a numeric + // Google Analytics property identifier. To learn more, see [where to find + // your Property + // ID](https://developers.google.com/analytics/devguides/reporting/data/v1/property-id). + // + // Example: properties/1234/metadata + // + // Set the Property ID to 0 for dimensions and metrics common to all + // properties. In this special mode, this method will not return custom + // dimensions and metrics. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "analyticsdata.googleapis.com/Metadata" + } + ]; +} + +// The dimensions, metrics and comparisons currently accepted in reporting +// methods. +message Metadata { + option (google.api.resource) = { + type: "analyticsdata.googleapis.com/Metadata" + pattern: "properties/{property}/metadata" + }; + + // Resource name of this metadata. + string name = 3; + + // The dimension descriptions. + repeated DimensionMetadata dimensions = 1; + + // The metric descriptions. + repeated MetricMetadata metrics = 2; + + // The comparison descriptions. + repeated ComparisonMetadata comparisons = 4; + + // The conversion descriptions. + repeated ConversionMetadata conversions = 5; +} diff --git a/packages/google-analytics-data/protos/google/analytics/data/v1alpha/data.proto b/packages/google-analytics-data/protos/google/analytics/data/v1alpha/data.proto index 0315a16711bc..629c34ca7f1a 100644 --- a/packages/google-analytics-data/protos/google/analytics/data/v1alpha/data.proto +++ b/packages/google-analytics-data/protos/google/analytics/data/v1alpha/data.proto @@ -1,4 +1,4 @@ -// Copyright 2025 Google LLC +// Copyright 2026 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -156,6 +156,24 @@ message Metric { bool invisible = 3; } +// Defines an individual comparison. Most requests will include multiple +// comparisons so that the report compares between the comparisons. +message Comparison { + // Each comparison produces separate rows in the response. In the response, + // this comparison is identified by this name. If name is unspecified, we will + // use the saved comparisons display name. + optional string name = 1; + + oneof one_comparison { + // A basic comparison. + FilterExpression dimension_filter = 2; + + // A saved comparison identified by the comparison's resource name. + // For example, 'comparisons/1234'. + string comparison = 3; + } +} + // To express dimension or metric filters. The fields in the same // FilterExpression need to be either all dimensions or all metrics. message FilterExpression { @@ -487,6 +505,25 @@ message CohortReportSettings { bool accumulate = 1; } +// Identifies if the report data is from the standard report data or +// conversion data +enum Section { + // Should never be specified. + SECTION_UNSPECIFIED = 0; + + // The report data is from the standard report data. Google Analytics reports + // include acquisition, engagement, and user behavior reports. Reports use + // dimensions like session source & landing page; reports use metrics like + // sessions, views, and engagement time. + SECTION_REPORT = 1; + + // The report data is from the conversion data. The Google Analytics + // Advertising section reports on conversion performance. Advertising reports + // use dimensions like source & medium; advertising reports use metrics like + // all conversions and ads cost. + SECTION_ADVERTISING = 2; +} + // Response's metadata carrying additional information about the report content. message ResponseMetaData { // The schema restrictions actively enforced in creating this report. To learn @@ -561,15 +598,18 @@ message ResponseMetaData { // Interests](https://support.google.com/analytics/answer/2799357). optional bool subject_to_thresholding = 8; - // If this report's results are + // If this report results is // [sampled](https://support.google.com/analytics/answer/13331292), this // describes the percentage of events used in this report. One // `samplingMetadatas` is populated for each date range. Each - // `samplingMetadatas` corresponds to a date range in the order that date - // ranges were specified in the request. + // `samplingMetadatas` corresponds to a date range in order that date ranges + // were specified in the request. // // However if the results are not sampled, this field will not be defined. repeated SamplingMetadata sampling_metadatas = 9; + + // Identifies the type of data in the report. + Section section = 10; } // Describes a dimension column in the report. Dimensions requested in a report @@ -1488,8 +1528,8 @@ message FunnelResponseMetadata { // [sampled](https://support.google.com/analytics/answer/13331292), this // describes what percentage of events were used in this funnel report. One // `samplingMetadatas` is populated for each date range. Each - // `samplingMetadatas` corresponds to a date range in the order that date - // ranges were specified in the request. + // `samplingMetadatas` corresponds to a date range in order that date ranges + // were specified in the request. // // However if the results are not sampled, this field will not be defined. repeated SamplingMetadata sampling_metadatas = 1; @@ -1609,3 +1649,166 @@ enum SamplingLevel { // https://support.google.com/analytics/answer/10896953. UNSAMPLED = 3; } + +// Controls conversion reporting. +// +// +message ConversionSpec { + // Attribution model to use in the Conversion Report + enum AttributionModel { + // Unspecified attribution model. + ATTRIBUTION_MODEL_UNSPECIFIED = 0; + + // Attribution was based on the paid and organic data driven model + DATA_DRIVEN = 1; + + // Attribution was based on the paid and organic last click model + LAST_CLICK = 2; + } + + // The conversion action IDs to include in the report. If empty, all + // conversions are included. Valid conversion action IDs can be retrieved from + // the `conversion_action` field within the `conversions` list in the + // response of the `GetMetadata` method. For example, + // 'conversionActions/1234'. + repeated string conversion_actions = 1; + + // The attribution model to use in the Conversion Report. If unspecified, + // `DATA_DRIVEN` is used. + AttributionModel attribution_model = 2; +} + +// Explains a dimension. +message DimensionMetadata { + // This dimension's name. Usable in [Dimension](#Dimension)'s `name`. For + // example, `eventName`. + string api_name = 1; + + // This dimension's name within the Google Analytics user interface. For + // example, `Event name`. + string ui_name = 2; + + // Description of how this dimension is used and calculated. + string description = 3; + + // Still usable but deprecated names for this dimension. If populated, this + // dimension is available by either `apiName` or one of `deprecatedApiNames` + // for a period of time. After the deprecation period, the dimension will be + // available only by `apiName`. + repeated string deprecated_api_names = 4; + + // True if the dimension is custom to this property. This includes user, + // event, & item scoped custom dimensions; to learn more about custom + // dimensions, see https://support.google.com/analytics/answer/14240153. This + // also include custom channel groups; to learn more about custom channel + // groups, see https://support.google.com/analytics/answer/13051316. + bool custom_definition = 5; + + // The display name of the category that this dimension belongs to. Similar + // dimensions and metrics are categorized together. + string category = 6; + + // Specifies the Google Analytics sections this dimension applies to. + repeated Section sections = 7; +} + +// Explains a metric. +message MetricMetadata { + // Justifications for why this metric is blocked. + enum BlockedReason { + // Will never be specified in API response. + BLOCKED_REASON_UNSPECIFIED = 0; + + // If present, your access is blocked to revenue related metrics for this + // property, and this metric is revenue related. + NO_REVENUE_METRICS = 1; + + // If present, your access is blocked to cost related metrics for this + // property, and this metric is cost related. + NO_COST_METRICS = 2; + } + + // A metric name. Usable in [Metric](#Metric)'s `name`. For example, + // `eventCount`. + string api_name = 1; + + // This metric's name within the Google Analytics user interface. For example, + // `Event count`. + string ui_name = 2; + + // Description of how this metric is used and calculated. + string description = 3; + + // Still usable but deprecated names for this metric. If populated, this + // metric is available by either `apiName` or one of `deprecatedApiNames` + // for a period of time. After the deprecation period, the metric will be + // available only by `apiName`. + repeated string deprecated_api_names = 4; + + // The type of this metric. + MetricType type = 5; + + // The mathematical expression for this derived metric. Can be used in + // [Metric](#Metric)'s `expression` field for equivalent reports. Most metrics + // are not expressions, and for non-expressions, this field is empty. + string expression = 6; + + // True if the metric is a custom metric for this property. + bool custom_definition = 7; + + // If reasons are specified, your access is blocked to this metric for this + // property. API requests from you to this property for this metric will + // succeed; however, the report will contain only zeros for this metric. API + // requests with metric filters on blocked metrics will fail. If reasons are + // empty, you have access to this metric. + // + // To learn more, see [Access and data-restriction + // management](https://support.google.com/analytics/answer/10851388). + repeated BlockedReason blocked_reasons = 8; + + // The display name of the category that this metrics belongs to. Similar + // dimensions and metrics are categorized together. + string category = 9; + + // Specifies the Google Analytics sections this metric applies to. + repeated Section sections = 10; +} + +// The metadata for a single comparison. +message ComparisonMetadata { + // This comparison's resource name. Usable in [Comparison](#Comparison)'s + // `comparison` field. For example, 'comparisons/1234'. + string api_name = 1; + + // This comparison's name within the Google Analytics user interface. + string ui_name = 2; + + // This comparison's description. + string description = 3; +} + +// The metadata for a single conversion. +// +// +message ConversionMetadata { + // The unique identifier of the conversion action. This ID is used to specify + // which conversions to include in a report by populating the + // `conversion_actions` field in the `ConversionsSpec` of a report request. + // For example, 'conversionActions/1234'. + string conversion_action = 1; + + // This conversion's name within the Google Analytics user interface. + string display_name = 2; +} diff --git a/packages/google-analytics-data/protos/protos.d.ts b/packages/google-analytics-data/protos/protos.d.ts index c28af088d795..5f7a160e8a0d 100644 --- a/packages/google-analytics-data/protos/protos.d.ts +++ b/packages/google-analytics-data/protos/protos.d.ts @@ -4600,20 +4600,6 @@ export namespace google { */ public queryAudienceList(request: google.analytics.data.v1alpha.IQueryAudienceListRequest): Promise; - /** - * Calls SheetExportAudienceList. - * @param request SheetExportAudienceListRequest message or plain object - * @param callback Node-style callback called with the error, if any, and SheetExportAudienceListResponse - */ - public sheetExportAudienceList(request: google.analytics.data.v1alpha.ISheetExportAudienceListRequest, callback: google.analytics.data.v1alpha.AlphaAnalyticsData.SheetExportAudienceListCallback): void; - - /** - * Calls SheetExportAudienceList. - * @param request SheetExportAudienceListRequest message or plain object - * @returns Promise - */ - public sheetExportAudienceList(request: google.analytics.data.v1alpha.ISheetExportAudienceListRequest): Promise; - /** * Calls GetAudienceList. * @param request GetAudienceListRequest message or plain object @@ -4753,6 +4739,34 @@ export namespace google { * @returns Promise */ public listReportTasks(request: google.analytics.data.v1alpha.IListReportTasksRequest): Promise; + + /** + * Calls RunReport. + * @param request RunReportRequest message or plain object + * @param callback Node-style callback called with the error, if any, and RunReportResponse + */ + public runReport(request: google.analytics.data.v1alpha.IRunReportRequest, callback: google.analytics.data.v1alpha.AlphaAnalyticsData.RunReportCallback): void; + + /** + * Calls RunReport. + * @param request RunReportRequest message or plain object + * @returns Promise + */ + public runReport(request: google.analytics.data.v1alpha.IRunReportRequest): Promise; + + /** + * Calls GetMetadata. + * @param request GetMetadataRequest message or plain object + * @param callback Node-style callback called with the error, if any, and Metadata + */ + public getMetadata(request: google.analytics.data.v1alpha.IGetMetadataRequest, callback: google.analytics.data.v1alpha.AlphaAnalyticsData.GetMetadataCallback): void; + + /** + * Calls GetMetadata. + * @param request GetMetadataRequest message or plain object + * @returns Promise + */ + public getMetadata(request: google.analytics.data.v1alpha.IGetMetadataRequest): Promise; } namespace AlphaAnalyticsData { @@ -4778,13 +4792,6 @@ export namespace google { */ type QueryAudienceListCallback = (error: (Error|null), response?: google.analytics.data.v1alpha.QueryAudienceListResponse) => void; - /** - * Callback as used by {@link google.analytics.data.v1alpha.AlphaAnalyticsData|sheetExportAudienceList}. - * @param error Error, if any - * @param [response] SheetExportAudienceListResponse - */ - type SheetExportAudienceListCallback = (error: (Error|null), response?: google.analytics.data.v1alpha.SheetExportAudienceListResponse) => void; - /** * Callback as used by {@link google.analytics.data.v1alpha.AlphaAnalyticsData|getAudienceList}. * @param error Error, if any @@ -4854,6 +4861,20 @@ export namespace google { * @param [response] ListReportTasksResponse */ type ListReportTasksCallback = (error: (Error|null), response?: google.analytics.data.v1alpha.ListReportTasksResponse) => void; + + /** + * Callback as used by {@link google.analytics.data.v1alpha.AlphaAnalyticsData|runReport}. + * @param error Error, if any + * @param [response] RunReportResponse + */ + type RunReportCallback = (error: (Error|null), response?: google.analytics.data.v1alpha.RunReportResponse) => void; + + /** + * Callback as used by {@link google.analytics.data.v1alpha.AlphaAnalyticsData|getMetadata}. + * @param error Error, if any + * @param [response] Metadata + */ + type GetMetadataCallback = (error: (Error|null), response?: google.analytics.data.v1alpha.Metadata) => void; } /** Properties of a CreateRecurringAudienceListRequest. */ @@ -6611,230 +6632,6 @@ export namespace google { public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a SheetExportAudienceListRequest. */ - interface ISheetExportAudienceListRequest { - - /** SheetExportAudienceListRequest name */ - name?: (string|null); - - /** SheetExportAudienceListRequest offset */ - offset?: (number|Long|string|null); - - /** SheetExportAudienceListRequest limit */ - limit?: (number|Long|string|null); - } - - /** Represents a SheetExportAudienceListRequest. */ - class SheetExportAudienceListRequest implements ISheetExportAudienceListRequest { - - /** - * Constructs a new SheetExportAudienceListRequest. - * @param [properties] Properties to set - */ - constructor(properties?: google.analytics.data.v1alpha.ISheetExportAudienceListRequest); - - /** SheetExportAudienceListRequest name. */ - public name: string; - - /** SheetExportAudienceListRequest offset. */ - public offset: (number|Long|string); - - /** SheetExportAudienceListRequest limit. */ - public limit: (number|Long|string); - - /** - * Creates a new SheetExportAudienceListRequest instance using the specified properties. - * @param [properties] Properties to set - * @returns SheetExportAudienceListRequest instance - */ - public static create(properties?: google.analytics.data.v1alpha.ISheetExportAudienceListRequest): google.analytics.data.v1alpha.SheetExportAudienceListRequest; - - /** - * Encodes the specified SheetExportAudienceListRequest message. Does not implicitly {@link google.analytics.data.v1alpha.SheetExportAudienceListRequest.verify|verify} messages. - * @param message SheetExportAudienceListRequest message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.analytics.data.v1alpha.ISheetExportAudienceListRequest, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified SheetExportAudienceListRequest message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SheetExportAudienceListRequest.verify|verify} messages. - * @param message SheetExportAudienceListRequest message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.analytics.data.v1alpha.ISheetExportAudienceListRequest, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a SheetExportAudienceListRequest message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns SheetExportAudienceListRequest - * @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.analytics.data.v1alpha.SheetExportAudienceListRequest; - - /** - * Decodes a SheetExportAudienceListRequest message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns SheetExportAudienceListRequest - * @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.analytics.data.v1alpha.SheetExportAudienceListRequest; - - /** - * Verifies a SheetExportAudienceListRequest 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 SheetExportAudienceListRequest message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns SheetExportAudienceListRequest - */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.SheetExportAudienceListRequest; - - /** - * Creates a plain object from a SheetExportAudienceListRequest message. Also converts values to other types if specified. - * @param message SheetExportAudienceListRequest - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.analytics.data.v1alpha.SheetExportAudienceListRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this SheetExportAudienceListRequest to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for SheetExportAudienceListRequest - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } - - /** Properties of a SheetExportAudienceListResponse. */ - interface ISheetExportAudienceListResponse { - - /** SheetExportAudienceListResponse spreadsheetUri */ - spreadsheetUri?: (string|null); - - /** SheetExportAudienceListResponse spreadsheetId */ - spreadsheetId?: (string|null); - - /** SheetExportAudienceListResponse rowCount */ - rowCount?: (number|null); - - /** SheetExportAudienceListResponse audienceList */ - audienceList?: (google.analytics.data.v1alpha.IAudienceList|null); - } - - /** Represents a SheetExportAudienceListResponse. */ - class SheetExportAudienceListResponse implements ISheetExportAudienceListResponse { - - /** - * Constructs a new SheetExportAudienceListResponse. - * @param [properties] Properties to set - */ - constructor(properties?: google.analytics.data.v1alpha.ISheetExportAudienceListResponse); - - /** SheetExportAudienceListResponse spreadsheetUri. */ - public spreadsheetUri?: (string|null); - - /** SheetExportAudienceListResponse spreadsheetId. */ - public spreadsheetId?: (string|null); - - /** SheetExportAudienceListResponse rowCount. */ - public rowCount?: (number|null); - - /** SheetExportAudienceListResponse audienceList. */ - public audienceList?: (google.analytics.data.v1alpha.IAudienceList|null); - - /** - * Creates a new SheetExportAudienceListResponse instance using the specified properties. - * @param [properties] Properties to set - * @returns SheetExportAudienceListResponse instance - */ - public static create(properties?: google.analytics.data.v1alpha.ISheetExportAudienceListResponse): google.analytics.data.v1alpha.SheetExportAudienceListResponse; - - /** - * Encodes the specified SheetExportAudienceListResponse message. Does not implicitly {@link google.analytics.data.v1alpha.SheetExportAudienceListResponse.verify|verify} messages. - * @param message SheetExportAudienceListResponse message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.analytics.data.v1alpha.ISheetExportAudienceListResponse, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified SheetExportAudienceListResponse message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SheetExportAudienceListResponse.verify|verify} messages. - * @param message SheetExportAudienceListResponse message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.analytics.data.v1alpha.ISheetExportAudienceListResponse, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a SheetExportAudienceListResponse message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns SheetExportAudienceListResponse - * @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.analytics.data.v1alpha.SheetExportAudienceListResponse; - - /** - * Decodes a SheetExportAudienceListResponse message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns SheetExportAudienceListResponse - * @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.analytics.data.v1alpha.SheetExportAudienceListResponse; - - /** - * Verifies a SheetExportAudienceListResponse 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 SheetExportAudienceListResponse message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns SheetExportAudienceListResponse - */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.SheetExportAudienceListResponse; - - /** - * Creates a plain object from a SheetExportAudienceListResponse message. Also converts values to other types if specified. - * @param message SheetExportAudienceListResponse - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.analytics.data.v1alpha.SheetExportAudienceListResponse, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this SheetExportAudienceListResponse to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for SheetExportAudienceListResponse - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } - /** Properties of an AudienceRow. */ interface IAudienceRow { @@ -8575,7640 +8372,8946 @@ export namespace google { public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a DateRange. */ - interface IDateRange { + /** Properties of a RunReportRequest. */ + interface IRunReportRequest { - /** DateRange startDate */ - startDate?: (string|null); + /** RunReportRequest property */ + property?: (string|null); - /** DateRange endDate */ - endDate?: (string|null); + /** RunReportRequest dimensions */ + dimensions?: (google.analytics.data.v1alpha.IDimension[]|null); - /** DateRange name */ - name?: (string|null); - } + /** RunReportRequest metrics */ + metrics?: (google.analytics.data.v1alpha.IMetric[]|null); - /** Represents a DateRange. */ - class DateRange implements IDateRange { + /** RunReportRequest dateRanges */ + dateRanges?: (google.analytics.data.v1alpha.IDateRange[]|null); - /** - * Constructs a new DateRange. - * @param [properties] Properties to set - */ - constructor(properties?: google.analytics.data.v1alpha.IDateRange); + /** RunReportRequest dimensionFilter */ + dimensionFilter?: (google.analytics.data.v1alpha.IFilterExpression|null); - /** DateRange startDate. */ - public startDate: string; + /** RunReportRequest metricFilter */ + metricFilter?: (google.analytics.data.v1alpha.IFilterExpression|null); - /** DateRange endDate. */ - public endDate: string; + /** RunReportRequest offset */ + offset?: (number|Long|string|null); - /** DateRange name. */ - public name: string; + /** RunReportRequest limit */ + limit?: (number|Long|string|null); + + /** RunReportRequest metricAggregations */ + metricAggregations?: (google.analytics.data.v1alpha.MetricAggregation[]|null); + + /** RunReportRequest orderBys */ + orderBys?: (google.analytics.data.v1alpha.IOrderBy[]|null); + + /** RunReportRequest currencyCode */ + currencyCode?: (string|null); + + /** RunReportRequest cohortSpec */ + cohortSpec?: (google.analytics.data.v1alpha.ICohortSpec|null); + + /** RunReportRequest keepEmptyRows */ + keepEmptyRows?: (boolean|null); + + /** RunReportRequest returnPropertyQuota */ + returnPropertyQuota?: (boolean|null); + + /** RunReportRequest comparisons */ + comparisons?: (google.analytics.data.v1alpha.IComparison[]|null); + + /** RunReportRequest conversionSpec */ + conversionSpec?: (google.analytics.data.v1alpha.IConversionSpec|null); + } + + /** Represents a RunReportRequest. */ + class RunReportRequest implements IRunReportRequest { /** - * Creates a new DateRange instance using the specified properties. + * Constructs a new RunReportRequest. * @param [properties] Properties to set - * @returns DateRange instance */ - public static create(properties?: google.analytics.data.v1alpha.IDateRange): google.analytics.data.v1alpha.DateRange; + constructor(properties?: google.analytics.data.v1alpha.IRunReportRequest); - /** - * Encodes the specified DateRange message. Does not implicitly {@link google.analytics.data.v1alpha.DateRange.verify|verify} messages. - * @param message DateRange message or plain object to encode + /** RunReportRequest property. */ + public property: string; + + /** RunReportRequest dimensions. */ + public dimensions: google.analytics.data.v1alpha.IDimension[]; + + /** RunReportRequest metrics. */ + public metrics: google.analytics.data.v1alpha.IMetric[]; + + /** RunReportRequest dateRanges. */ + public dateRanges: google.analytics.data.v1alpha.IDateRange[]; + + /** RunReportRequest dimensionFilter. */ + public dimensionFilter?: (google.analytics.data.v1alpha.IFilterExpression|null); + + /** RunReportRequest metricFilter. */ + public metricFilter?: (google.analytics.data.v1alpha.IFilterExpression|null); + + /** RunReportRequest offset. */ + public offset: (number|Long|string); + + /** RunReportRequest limit. */ + public limit: (number|Long|string); + + /** RunReportRequest metricAggregations. */ + public metricAggregations: google.analytics.data.v1alpha.MetricAggregation[]; + + /** RunReportRequest orderBys. */ + public orderBys: google.analytics.data.v1alpha.IOrderBy[]; + + /** RunReportRequest currencyCode. */ + public currencyCode: string; + + /** RunReportRequest cohortSpec. */ + public cohortSpec?: (google.analytics.data.v1alpha.ICohortSpec|null); + + /** RunReportRequest keepEmptyRows. */ + public keepEmptyRows: boolean; + + /** RunReportRequest returnPropertyQuota. */ + public returnPropertyQuota: boolean; + + /** RunReportRequest comparisons. */ + public comparisons: google.analytics.data.v1alpha.IComparison[]; + + /** RunReportRequest conversionSpec. */ + public conversionSpec?: (google.analytics.data.v1alpha.IConversionSpec|null); + + /** + * Creates a new RunReportRequest instance using the specified properties. + * @param [properties] Properties to set + * @returns RunReportRequest instance + */ + public static create(properties?: google.analytics.data.v1alpha.IRunReportRequest): google.analytics.data.v1alpha.RunReportRequest; + + /** + * Encodes the specified RunReportRequest message. Does not implicitly {@link google.analytics.data.v1alpha.RunReportRequest.verify|verify} messages. + * @param message RunReportRequest message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.IDateRange, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IRunReportRequest, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified DateRange message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.DateRange.verify|verify} messages. - * @param message DateRange message or plain object to encode + * Encodes the specified RunReportRequest message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.RunReportRequest.verify|verify} messages. + * @param message RunReportRequest message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IDateRange, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IRunReportRequest, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a DateRange message from the specified reader or buffer. + * Decodes a RunReportRequest message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns DateRange + * @returns RunReportRequest * @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.analytics.data.v1alpha.DateRange; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.RunReportRequest; /** - * Decodes a DateRange message from the specified reader or buffer, length delimited. + * Decodes a RunReportRequest message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns DateRange + * @returns RunReportRequest * @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.analytics.data.v1alpha.DateRange; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.RunReportRequest; /** - * Verifies a DateRange message. + * Verifies a RunReportRequest 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 DateRange message from a plain object. Also converts values to their respective internal types. + * Creates a RunReportRequest message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns DateRange + * @returns RunReportRequest */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.DateRange; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.RunReportRequest; /** - * Creates a plain object from a DateRange message. Also converts values to other types if specified. - * @param message DateRange + * Creates a plain object from a RunReportRequest message. Also converts values to other types if specified. + * @param message RunReportRequest * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.DateRange, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.RunReportRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this DateRange to JSON. + * Converts this RunReportRequest to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for DateRange + * Gets the default type url for RunReportRequest * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a Dimension. */ - interface IDimension { + /** Properties of a RunReportResponse. */ + interface IRunReportResponse { - /** Dimension name */ - name?: (string|null); + /** RunReportResponse dimensionHeaders */ + dimensionHeaders?: (google.analytics.data.v1alpha.IDimensionHeader[]|null); - /** Dimension dimensionExpression */ - dimensionExpression?: (google.analytics.data.v1alpha.IDimensionExpression|null); + /** RunReportResponse metricHeaders */ + metricHeaders?: (google.analytics.data.v1alpha.IMetricHeader[]|null); + + /** RunReportResponse rows */ + rows?: (google.analytics.data.v1alpha.IRow[]|null); + + /** RunReportResponse totals */ + totals?: (google.analytics.data.v1alpha.IRow[]|null); + + /** RunReportResponse maximums */ + maximums?: (google.analytics.data.v1alpha.IRow[]|null); + + /** RunReportResponse minimums */ + minimums?: (google.analytics.data.v1alpha.IRow[]|null); + + /** RunReportResponse rowCount */ + rowCount?: (number|null); + + /** RunReportResponse metadata */ + metadata?: (google.analytics.data.v1alpha.IResponseMetaData|null); + + /** RunReportResponse propertyQuota */ + propertyQuota?: (google.analytics.data.v1alpha.IPropertyQuota|null); + + /** RunReportResponse kind */ + kind?: (string|null); + + /** RunReportResponse nextPageToken */ + nextPageToken?: (string|null); } - /** Represents a Dimension. */ - class Dimension implements IDimension { + /** Represents a RunReportResponse. */ + class RunReportResponse implements IRunReportResponse { /** - * Constructs a new Dimension. + * Constructs a new RunReportResponse. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.IDimension); + constructor(properties?: google.analytics.data.v1alpha.IRunReportResponse); - /** Dimension name. */ - public name: string; + /** RunReportResponse dimensionHeaders. */ + public dimensionHeaders: google.analytics.data.v1alpha.IDimensionHeader[]; - /** Dimension dimensionExpression. */ - public dimensionExpression?: (google.analytics.data.v1alpha.IDimensionExpression|null); + /** RunReportResponse metricHeaders. */ + public metricHeaders: google.analytics.data.v1alpha.IMetricHeader[]; + + /** RunReportResponse rows. */ + public rows: google.analytics.data.v1alpha.IRow[]; + + /** RunReportResponse totals. */ + public totals: google.analytics.data.v1alpha.IRow[]; + + /** RunReportResponse maximums. */ + public maximums: google.analytics.data.v1alpha.IRow[]; + + /** RunReportResponse minimums. */ + public minimums: google.analytics.data.v1alpha.IRow[]; + + /** RunReportResponse rowCount. */ + public rowCount: number; + + /** RunReportResponse metadata. */ + public metadata?: (google.analytics.data.v1alpha.IResponseMetaData|null); + + /** RunReportResponse propertyQuota. */ + public propertyQuota?: (google.analytics.data.v1alpha.IPropertyQuota|null); + + /** RunReportResponse kind. */ + public kind: string; + + /** RunReportResponse nextPageToken. */ + public nextPageToken?: (string|null); /** - * Creates a new Dimension instance using the specified properties. + * Creates a new RunReportResponse instance using the specified properties. * @param [properties] Properties to set - * @returns Dimension instance + * @returns RunReportResponse instance */ - public static create(properties?: google.analytics.data.v1alpha.IDimension): google.analytics.data.v1alpha.Dimension; + public static create(properties?: google.analytics.data.v1alpha.IRunReportResponse): google.analytics.data.v1alpha.RunReportResponse; /** - * Encodes the specified Dimension message. Does not implicitly {@link google.analytics.data.v1alpha.Dimension.verify|verify} messages. - * @param message Dimension message or plain object to encode + * Encodes the specified RunReportResponse message. Does not implicitly {@link google.analytics.data.v1alpha.RunReportResponse.verify|verify} messages. + * @param message RunReportResponse message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.IDimension, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IRunReportResponse, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified Dimension message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.Dimension.verify|verify} messages. - * @param message Dimension message or plain object to encode + * Encodes the specified RunReportResponse message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.RunReportResponse.verify|verify} messages. + * @param message RunReportResponse message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IDimension, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IRunReportResponse, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a Dimension message from the specified reader or buffer. + * Decodes a RunReportResponse message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns Dimension + * @returns RunReportResponse * @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.analytics.data.v1alpha.Dimension; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.RunReportResponse; /** - * Decodes a Dimension message from the specified reader or buffer, length delimited. + * Decodes a RunReportResponse message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns Dimension + * @returns RunReportResponse * @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.analytics.data.v1alpha.Dimension; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.RunReportResponse; /** - * Verifies a Dimension message. + * Verifies a RunReportResponse 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 Dimension message from a plain object. Also converts values to their respective internal types. + * Creates a RunReportResponse message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns Dimension + * @returns RunReportResponse */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.Dimension; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.RunReportResponse; /** - * Creates a plain object from a Dimension message. Also converts values to other types if specified. - * @param message Dimension + * Creates a plain object from a RunReportResponse message. Also converts values to other types if specified. + * @param message RunReportResponse * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.Dimension, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.RunReportResponse, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this Dimension to JSON. + * Converts this RunReportResponse to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for Dimension + * Gets the default type url for RunReportResponse * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a DimensionExpression. */ - interface IDimensionExpression { - - /** DimensionExpression lowerCase */ - lowerCase?: (google.analytics.data.v1alpha.DimensionExpression.ICaseExpression|null); - - /** DimensionExpression upperCase */ - upperCase?: (google.analytics.data.v1alpha.DimensionExpression.ICaseExpression|null); + /** Properties of a GetMetadataRequest. */ + interface IGetMetadataRequest { - /** DimensionExpression concatenate */ - concatenate?: (google.analytics.data.v1alpha.DimensionExpression.IConcatenateExpression|null); + /** GetMetadataRequest name */ + name?: (string|null); } - /** Represents a DimensionExpression. */ - class DimensionExpression implements IDimensionExpression { + /** Represents a GetMetadataRequest. */ + class GetMetadataRequest implements IGetMetadataRequest { /** - * Constructs a new DimensionExpression. + * Constructs a new GetMetadataRequest. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.IDimensionExpression); - - /** DimensionExpression lowerCase. */ - public lowerCase?: (google.analytics.data.v1alpha.DimensionExpression.ICaseExpression|null); - - /** DimensionExpression upperCase. */ - public upperCase?: (google.analytics.data.v1alpha.DimensionExpression.ICaseExpression|null); + constructor(properties?: google.analytics.data.v1alpha.IGetMetadataRequest); - /** DimensionExpression concatenate. */ - public concatenate?: (google.analytics.data.v1alpha.DimensionExpression.IConcatenateExpression|null); - - /** DimensionExpression oneExpression. */ - public oneExpression?: ("lowerCase"|"upperCase"|"concatenate"); + /** GetMetadataRequest name. */ + public name: string; /** - * Creates a new DimensionExpression instance using the specified properties. + * Creates a new GetMetadataRequest instance using the specified properties. * @param [properties] Properties to set - * @returns DimensionExpression instance + * @returns GetMetadataRequest instance */ - public static create(properties?: google.analytics.data.v1alpha.IDimensionExpression): google.analytics.data.v1alpha.DimensionExpression; + public static create(properties?: google.analytics.data.v1alpha.IGetMetadataRequest): google.analytics.data.v1alpha.GetMetadataRequest; /** - * Encodes the specified DimensionExpression message. Does not implicitly {@link google.analytics.data.v1alpha.DimensionExpression.verify|verify} messages. - * @param message DimensionExpression message or plain object to encode + * Encodes the specified GetMetadataRequest message. Does not implicitly {@link google.analytics.data.v1alpha.GetMetadataRequest.verify|verify} messages. + * @param message GetMetadataRequest message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.IDimensionExpression, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IGetMetadataRequest, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified DimensionExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.DimensionExpression.verify|verify} messages. - * @param message DimensionExpression message or plain object to encode + * Encodes the specified GetMetadataRequest message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.GetMetadataRequest.verify|verify} messages. + * @param message GetMetadataRequest message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IDimensionExpression, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IGetMetadataRequest, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a DimensionExpression message from the specified reader or buffer. + * Decodes a GetMetadataRequest message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns DimensionExpression + * @returns GetMetadataRequest * @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.analytics.data.v1alpha.DimensionExpression; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.GetMetadataRequest; /** - * Decodes a DimensionExpression message from the specified reader or buffer, length delimited. + * Decodes a GetMetadataRequest message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns DimensionExpression + * @returns GetMetadataRequest * @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.analytics.data.v1alpha.DimensionExpression; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.GetMetadataRequest; /** - * Verifies a DimensionExpression message. + * Verifies a GetMetadataRequest 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 DimensionExpression message from a plain object. Also converts values to their respective internal types. + * Creates a GetMetadataRequest message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns DimensionExpression + * @returns GetMetadataRequest */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.DimensionExpression; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.GetMetadataRequest; /** - * Creates a plain object from a DimensionExpression message. Also converts values to other types if specified. - * @param message DimensionExpression + * Creates a plain object from a GetMetadataRequest message. Also converts values to other types if specified. + * @param message GetMetadataRequest * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.DimensionExpression, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.GetMetadataRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this DimensionExpression to JSON. + * Converts this GetMetadataRequest to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for DimensionExpression + * Gets the default type url for GetMetadataRequest * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - namespace DimensionExpression { + /** Properties of a Metadata. */ + interface IMetadata { - /** Properties of a CaseExpression. */ - interface ICaseExpression { + /** Metadata name */ + name?: (string|null); - /** CaseExpression dimensionName */ - dimensionName?: (string|null); - } + /** Metadata dimensions */ + dimensions?: (google.analytics.data.v1alpha.IDimensionMetadata[]|null); - /** Represents a CaseExpression. */ - class CaseExpression implements ICaseExpression { + /** Metadata metrics */ + metrics?: (google.analytics.data.v1alpha.IMetricMetadata[]|null); - /** - * Constructs a new CaseExpression. - * @param [properties] Properties to set - */ - constructor(properties?: google.analytics.data.v1alpha.DimensionExpression.ICaseExpression); + /** Metadata comparisons */ + comparisons?: (google.analytics.data.v1alpha.IComparisonMetadata[]|null); - /** CaseExpression dimensionName. */ - public dimensionName: string; + /** Metadata conversions */ + conversions?: (google.analytics.data.v1alpha.IConversionMetadata[]|null); + } - /** - * Creates a new CaseExpression instance using the specified properties. - * @param [properties] Properties to set - * @returns CaseExpression instance - */ - public static create(properties?: google.analytics.data.v1alpha.DimensionExpression.ICaseExpression): google.analytics.data.v1alpha.DimensionExpression.CaseExpression; + /** Represents a Metadata. */ + class Metadata implements IMetadata { - /** - * Encodes the specified CaseExpression message. Does not implicitly {@link google.analytics.data.v1alpha.DimensionExpression.CaseExpression.verify|verify} messages. - * @param message CaseExpression message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.analytics.data.v1alpha.DimensionExpression.ICaseExpression, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Constructs a new Metadata. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1alpha.IMetadata); - /** - * Encodes the specified CaseExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.DimensionExpression.CaseExpression.verify|verify} messages. - * @param message CaseExpression message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.analytics.data.v1alpha.DimensionExpression.ICaseExpression, writer?: $protobuf.Writer): $protobuf.Writer; + /** Metadata name. */ + public name: string; - /** - * Decodes a CaseExpression message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns CaseExpression - * @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.analytics.data.v1alpha.DimensionExpression.CaseExpression; + /** Metadata dimensions. */ + public dimensions: google.analytics.data.v1alpha.IDimensionMetadata[]; - /** - * Decodes a CaseExpression message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns CaseExpression - * @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.analytics.data.v1alpha.DimensionExpression.CaseExpression; + /** Metadata metrics. */ + public metrics: google.analytics.data.v1alpha.IMetricMetadata[]; - /** - * Verifies a CaseExpression 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); + /** Metadata comparisons. */ + public comparisons: google.analytics.data.v1alpha.IComparisonMetadata[]; - /** - * Creates a CaseExpression message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns CaseExpression - */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.DimensionExpression.CaseExpression; + /** Metadata conversions. */ + public conversions: google.analytics.data.v1alpha.IConversionMetadata[]; - /** - * Creates a plain object from a CaseExpression message. Also converts values to other types if specified. - * @param message CaseExpression - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.analytics.data.v1alpha.DimensionExpression.CaseExpression, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** + * Creates a new Metadata instance using the specified properties. + * @param [properties] Properties to set + * @returns Metadata instance + */ + public static create(properties?: google.analytics.data.v1alpha.IMetadata): google.analytics.data.v1alpha.Metadata; - /** - * Converts this CaseExpression to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; + /** + * Encodes the specified Metadata message. Does not implicitly {@link google.analytics.data.v1alpha.Metadata.verify|verify} messages. + * @param message Metadata message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1alpha.IMetadata, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Gets the default type url for CaseExpression - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } + /** + * Encodes the specified Metadata message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.Metadata.verify|verify} messages. + * @param message Metadata message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1alpha.IMetadata, writer?: $protobuf.Writer): $protobuf.Writer; - /** Properties of a ConcatenateExpression. */ - interface IConcatenateExpression { + /** + * Decodes a Metadata message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns Metadata + * @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.analytics.data.v1alpha.Metadata; - /** ConcatenateExpression dimensionNames */ - dimensionNames?: (string[]|null); + /** + * Decodes a Metadata message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns Metadata + * @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.analytics.data.v1alpha.Metadata; - /** ConcatenateExpression delimiter */ - delimiter?: (string|null); - } + /** + * Verifies a Metadata 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); - /** Represents a ConcatenateExpression. */ - class ConcatenateExpression implements IConcatenateExpression { + /** + * Creates a Metadata message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns Metadata + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.Metadata; - /** - * Constructs a new ConcatenateExpression. - * @param [properties] Properties to set - */ - constructor(properties?: google.analytics.data.v1alpha.DimensionExpression.IConcatenateExpression); + /** + * Creates a plain object from a Metadata message. Also converts values to other types if specified. + * @param message Metadata + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1alpha.Metadata, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** ConcatenateExpression dimensionNames. */ - public dimensionNames: string[]; + /** + * Converts this Metadata to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; - /** ConcatenateExpression delimiter. */ - public delimiter: string; + /** + * Gets the default type url for Metadata + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } - /** - * Creates a new ConcatenateExpression instance using the specified properties. - * @param [properties] Properties to set - * @returns ConcatenateExpression instance - */ - public static create(properties?: google.analytics.data.v1alpha.DimensionExpression.IConcatenateExpression): google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression; + /** Properties of a DateRange. */ + interface IDateRange { - /** - * Encodes the specified ConcatenateExpression message. Does not implicitly {@link google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression.verify|verify} messages. - * @param message ConcatenateExpression message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.analytics.data.v1alpha.DimensionExpression.IConcatenateExpression, writer?: $protobuf.Writer): $protobuf.Writer; + /** DateRange startDate */ + startDate?: (string|null); - /** - * Encodes the specified ConcatenateExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression.verify|verify} messages. - * @param message ConcatenateExpression message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.analytics.data.v1alpha.DimensionExpression.IConcatenateExpression, writer?: $protobuf.Writer): $protobuf.Writer; + /** DateRange endDate */ + endDate?: (string|null); - /** - * Decodes a ConcatenateExpression message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns ConcatenateExpression - * @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.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression; + /** DateRange name */ + name?: (string|null); + } - /** - * Decodes a ConcatenateExpression message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns ConcatenateExpression - * @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.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression; + /** Represents a DateRange. */ + class DateRange implements IDateRange { - /** - * Verifies a ConcatenateExpression 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); + /** + * Constructs a new DateRange. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1alpha.IDateRange); - /** - * Creates a ConcatenateExpression message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns ConcatenateExpression - */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression; - - /** - * Creates a plain object from a ConcatenateExpression message. Also converts values to other types if specified. - * @param message ConcatenateExpression - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this ConcatenateExpression to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for ConcatenateExpression - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } - } - - /** Properties of a Metric. */ - interface IMetric { - - /** Metric name */ - name?: (string|null); - - /** Metric expression */ - expression?: (string|null); - - /** Metric invisible */ - invisible?: (boolean|null); - } - - /** Represents a Metric. */ - class Metric implements IMetric { + /** DateRange startDate. */ + public startDate: string; - /** - * Constructs a new Metric. - * @param [properties] Properties to set - */ - constructor(properties?: google.analytics.data.v1alpha.IMetric); + /** DateRange endDate. */ + public endDate: string; - /** Metric name. */ + /** DateRange name. */ public name: string; - /** Metric expression. */ - public expression: string; - - /** Metric invisible. */ - public invisible: boolean; - /** - * Creates a new Metric instance using the specified properties. + * Creates a new DateRange instance using the specified properties. * @param [properties] Properties to set - * @returns Metric instance + * @returns DateRange instance */ - public static create(properties?: google.analytics.data.v1alpha.IMetric): google.analytics.data.v1alpha.Metric; + public static create(properties?: google.analytics.data.v1alpha.IDateRange): google.analytics.data.v1alpha.DateRange; /** - * Encodes the specified Metric message. Does not implicitly {@link google.analytics.data.v1alpha.Metric.verify|verify} messages. - * @param message Metric message or plain object to encode + * Encodes the specified DateRange message. Does not implicitly {@link google.analytics.data.v1alpha.DateRange.verify|verify} messages. + * @param message DateRange message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.IMetric, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IDateRange, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified Metric message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.Metric.verify|verify} messages. - * @param message Metric message or plain object to encode + * Encodes the specified DateRange message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.DateRange.verify|verify} messages. + * @param message DateRange message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IMetric, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IDateRange, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a Metric message from the specified reader or buffer. + * Decodes a DateRange message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns Metric + * @returns DateRange * @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.analytics.data.v1alpha.Metric; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.DateRange; /** - * Decodes a Metric message from the specified reader or buffer, length delimited. + * Decodes a DateRange message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns Metric + * @returns DateRange * @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.analytics.data.v1alpha.Metric; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.DateRange; /** - * Verifies a Metric message. + * Verifies a DateRange 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 Metric message from a plain object. Also converts values to their respective internal types. + * Creates a DateRange message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns Metric + * @returns DateRange */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.Metric; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.DateRange; /** - * Creates a plain object from a Metric message. Also converts values to other types if specified. - * @param message Metric + * Creates a plain object from a DateRange message. Also converts values to other types if specified. + * @param message DateRange * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.Metric, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.DateRange, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this Metric to JSON. + * Converts this DateRange to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for Metric + * Gets the default type url for DateRange * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a FilterExpression. */ - interface IFilterExpression { - - /** FilterExpression andGroup */ - andGroup?: (google.analytics.data.v1alpha.IFilterExpressionList|null); - - /** FilterExpression orGroup */ - orGroup?: (google.analytics.data.v1alpha.IFilterExpressionList|null); + /** Properties of a Dimension. */ + interface IDimension { - /** FilterExpression notExpression */ - notExpression?: (google.analytics.data.v1alpha.IFilterExpression|null); + /** Dimension name */ + name?: (string|null); - /** FilterExpression filter */ - filter?: (google.analytics.data.v1alpha.IFilter|null); + /** Dimension dimensionExpression */ + dimensionExpression?: (google.analytics.data.v1alpha.IDimensionExpression|null); } - /** Represents a FilterExpression. */ - class FilterExpression implements IFilterExpression { + /** Represents a Dimension. */ + class Dimension implements IDimension { /** - * Constructs a new FilterExpression. + * Constructs a new Dimension. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.IFilterExpression); - - /** FilterExpression andGroup. */ - public andGroup?: (google.analytics.data.v1alpha.IFilterExpressionList|null); - - /** FilterExpression orGroup. */ - public orGroup?: (google.analytics.data.v1alpha.IFilterExpressionList|null); - - /** FilterExpression notExpression. */ - public notExpression?: (google.analytics.data.v1alpha.IFilterExpression|null); + constructor(properties?: google.analytics.data.v1alpha.IDimension); - /** FilterExpression filter. */ - public filter?: (google.analytics.data.v1alpha.IFilter|null); + /** Dimension name. */ + public name: string; - /** FilterExpression expr. */ - public expr?: ("andGroup"|"orGroup"|"notExpression"|"filter"); + /** Dimension dimensionExpression. */ + public dimensionExpression?: (google.analytics.data.v1alpha.IDimensionExpression|null); /** - * Creates a new FilterExpression instance using the specified properties. + * Creates a new Dimension instance using the specified properties. * @param [properties] Properties to set - * @returns FilterExpression instance + * @returns Dimension instance */ - public static create(properties?: google.analytics.data.v1alpha.IFilterExpression): google.analytics.data.v1alpha.FilterExpression; + public static create(properties?: google.analytics.data.v1alpha.IDimension): google.analytics.data.v1alpha.Dimension; /** - * Encodes the specified FilterExpression message. Does not implicitly {@link google.analytics.data.v1alpha.FilterExpression.verify|verify} messages. - * @param message FilterExpression message or plain object to encode + * Encodes the specified Dimension message. Does not implicitly {@link google.analytics.data.v1alpha.Dimension.verify|verify} messages. + * @param message Dimension message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.IFilterExpression, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IDimension, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified FilterExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FilterExpression.verify|verify} messages. - * @param message FilterExpression message or plain object to encode + * Encodes the specified Dimension message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.Dimension.verify|verify} messages. + * @param message Dimension message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IFilterExpression, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IDimension, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a FilterExpression message from the specified reader or buffer. + * Decodes a Dimension message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns FilterExpression + * @returns Dimension * @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.analytics.data.v1alpha.FilterExpression; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.Dimension; /** - * Decodes a FilterExpression message from the specified reader or buffer, length delimited. + * Decodes a Dimension message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns FilterExpression + * @returns Dimension * @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.analytics.data.v1alpha.FilterExpression; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.Dimension; /** - * Verifies a FilterExpression message. + * Verifies a Dimension 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 FilterExpression message from a plain object. Also converts values to their respective internal types. + * Creates a Dimension message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns FilterExpression + * @returns Dimension */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.FilterExpression; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.Dimension; /** - * Creates a plain object from a FilterExpression message. Also converts values to other types if specified. - * @param message FilterExpression + * Creates a plain object from a Dimension message. Also converts values to other types if specified. + * @param message Dimension * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.FilterExpression, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.Dimension, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this FilterExpression to JSON. + * Converts this Dimension to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for FilterExpression + * Gets the default type url for Dimension * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a FilterExpressionList. */ - interface IFilterExpressionList { + /** Properties of a DimensionExpression. */ + interface IDimensionExpression { - /** FilterExpressionList expressions */ - expressions?: (google.analytics.data.v1alpha.IFilterExpression[]|null); + /** DimensionExpression lowerCase */ + lowerCase?: (google.analytics.data.v1alpha.DimensionExpression.ICaseExpression|null); + + /** DimensionExpression upperCase */ + upperCase?: (google.analytics.data.v1alpha.DimensionExpression.ICaseExpression|null); + + /** DimensionExpression concatenate */ + concatenate?: (google.analytics.data.v1alpha.DimensionExpression.IConcatenateExpression|null); } - /** Represents a FilterExpressionList. */ - class FilterExpressionList implements IFilterExpressionList { + /** Represents a DimensionExpression. */ + class DimensionExpression implements IDimensionExpression { /** - * Constructs a new FilterExpressionList. + * Constructs a new DimensionExpression. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.IFilterExpressionList); + constructor(properties?: google.analytics.data.v1alpha.IDimensionExpression); - /** FilterExpressionList expressions. */ - public expressions: google.analytics.data.v1alpha.IFilterExpression[]; + /** DimensionExpression lowerCase. */ + public lowerCase?: (google.analytics.data.v1alpha.DimensionExpression.ICaseExpression|null); + + /** DimensionExpression upperCase. */ + public upperCase?: (google.analytics.data.v1alpha.DimensionExpression.ICaseExpression|null); + + /** DimensionExpression concatenate. */ + public concatenate?: (google.analytics.data.v1alpha.DimensionExpression.IConcatenateExpression|null); + + /** DimensionExpression oneExpression. */ + public oneExpression?: ("lowerCase"|"upperCase"|"concatenate"); /** - * Creates a new FilterExpressionList instance using the specified properties. + * Creates a new DimensionExpression instance using the specified properties. * @param [properties] Properties to set - * @returns FilterExpressionList instance + * @returns DimensionExpression instance */ - public static create(properties?: google.analytics.data.v1alpha.IFilterExpressionList): google.analytics.data.v1alpha.FilterExpressionList; + public static create(properties?: google.analytics.data.v1alpha.IDimensionExpression): google.analytics.data.v1alpha.DimensionExpression; /** - * Encodes the specified FilterExpressionList message. Does not implicitly {@link google.analytics.data.v1alpha.FilterExpressionList.verify|verify} messages. - * @param message FilterExpressionList message or plain object to encode + * Encodes the specified DimensionExpression message. Does not implicitly {@link google.analytics.data.v1alpha.DimensionExpression.verify|verify} messages. + * @param message DimensionExpression message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.IFilterExpressionList, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IDimensionExpression, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified FilterExpressionList message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FilterExpressionList.verify|verify} messages. - * @param message FilterExpressionList message or plain object to encode + * Encodes the specified DimensionExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.DimensionExpression.verify|verify} messages. + * @param message DimensionExpression message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IFilterExpressionList, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IDimensionExpression, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a FilterExpressionList message from the specified reader or buffer. + * Decodes a DimensionExpression message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns FilterExpressionList + * @returns DimensionExpression * @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.analytics.data.v1alpha.FilterExpressionList; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.DimensionExpression; /** - * Decodes a FilterExpressionList message from the specified reader or buffer, length delimited. + * Decodes a DimensionExpression message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns FilterExpressionList + * @returns DimensionExpression * @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.analytics.data.v1alpha.FilterExpressionList; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.DimensionExpression; /** - * Verifies a FilterExpressionList message. + * Verifies a DimensionExpression 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 FilterExpressionList message from a plain object. Also converts values to their respective internal types. + * Creates a DimensionExpression message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns FilterExpressionList + * @returns DimensionExpression */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.FilterExpressionList; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.DimensionExpression; /** - * Creates a plain object from a FilterExpressionList message. Also converts values to other types if specified. - * @param message FilterExpressionList + * Creates a plain object from a DimensionExpression message. Also converts values to other types if specified. + * @param message DimensionExpression * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.FilterExpressionList, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.DimensionExpression, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this FilterExpressionList to JSON. + * Converts this DimensionExpression to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for FilterExpressionList + * Gets the default type url for DimensionExpression * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a Filter. */ - interface IFilter { - - /** Filter fieldName */ - fieldName?: (string|null); - - /** Filter stringFilter */ - stringFilter?: (google.analytics.data.v1alpha.IStringFilter|null); + namespace DimensionExpression { - /** Filter inListFilter */ - inListFilter?: (google.analytics.data.v1alpha.IInListFilter|null); + /** Properties of a CaseExpression. */ + interface ICaseExpression { - /** Filter numericFilter */ - numericFilter?: (google.analytics.data.v1alpha.INumericFilter|null); + /** CaseExpression dimensionName */ + dimensionName?: (string|null); + } - /** Filter betweenFilter */ - betweenFilter?: (google.analytics.data.v1alpha.IBetweenFilter|null); + /** Represents a CaseExpression. */ + class CaseExpression implements ICaseExpression { - /** Filter emptyFilter */ - emptyFilter?: (google.analytics.data.v1alpha.IEmptyFilter|null); - } + /** + * Constructs a new CaseExpression. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1alpha.DimensionExpression.ICaseExpression); - /** Represents a Filter. */ - class Filter implements IFilter { + /** CaseExpression dimensionName. */ + public dimensionName: string; - /** - * Constructs a new Filter. - * @param [properties] Properties to set - */ - constructor(properties?: google.analytics.data.v1alpha.IFilter); + /** + * Creates a new CaseExpression instance using the specified properties. + * @param [properties] Properties to set + * @returns CaseExpression instance + */ + public static create(properties?: google.analytics.data.v1alpha.DimensionExpression.ICaseExpression): google.analytics.data.v1alpha.DimensionExpression.CaseExpression; - /** Filter fieldName. */ - public fieldName: string; + /** + * Encodes the specified CaseExpression message. Does not implicitly {@link google.analytics.data.v1alpha.DimensionExpression.CaseExpression.verify|verify} messages. + * @param message CaseExpression message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1alpha.DimensionExpression.ICaseExpression, writer?: $protobuf.Writer): $protobuf.Writer; - /** Filter stringFilter. */ - public stringFilter?: (google.analytics.data.v1alpha.IStringFilter|null); + /** + * Encodes the specified CaseExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.DimensionExpression.CaseExpression.verify|verify} messages. + * @param message CaseExpression message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1alpha.DimensionExpression.ICaseExpression, writer?: $protobuf.Writer): $protobuf.Writer; - /** Filter inListFilter. */ - public inListFilter?: (google.analytics.data.v1alpha.IInListFilter|null); + /** + * Decodes a CaseExpression message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns CaseExpression + * @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.analytics.data.v1alpha.DimensionExpression.CaseExpression; - /** Filter numericFilter. */ - public numericFilter?: (google.analytics.data.v1alpha.INumericFilter|null); + /** + * Decodes a CaseExpression message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns CaseExpression + * @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.analytics.data.v1alpha.DimensionExpression.CaseExpression; - /** Filter betweenFilter. */ - public betweenFilter?: (google.analytics.data.v1alpha.IBetweenFilter|null); + /** + * Verifies a CaseExpression 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); - /** Filter emptyFilter. */ - public emptyFilter?: (google.analytics.data.v1alpha.IEmptyFilter|null); + /** + * Creates a CaseExpression message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns CaseExpression + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.DimensionExpression.CaseExpression; - /** Filter oneFilter. */ - public oneFilter?: ("stringFilter"|"inListFilter"|"numericFilter"|"betweenFilter"|"emptyFilter"); + /** + * Creates a plain object from a CaseExpression message. Also converts values to other types if specified. + * @param message CaseExpression + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1alpha.DimensionExpression.CaseExpression, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** - * Creates a new Filter instance using the specified properties. - * @param [properties] Properties to set - * @returns Filter instance - */ - public static create(properties?: google.analytics.data.v1alpha.IFilter): google.analytics.data.v1alpha.Filter; + /** + * Converts this CaseExpression to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; - /** - * Encodes the specified Filter message. Does not implicitly {@link google.analytics.data.v1alpha.Filter.verify|verify} messages. - * @param message Filter message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.analytics.data.v1alpha.IFilter, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Gets the default type url for CaseExpression + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } - /** - * Encodes the specified Filter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.Filter.verify|verify} messages. - * @param message Filter message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IFilter, writer?: $protobuf.Writer): $protobuf.Writer; + /** Properties of a ConcatenateExpression. */ + interface IConcatenateExpression { - /** - * Decodes a Filter message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns Filter - * @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.analytics.data.v1alpha.Filter; + /** ConcatenateExpression dimensionNames */ + dimensionNames?: (string[]|null); - /** - * Decodes a Filter message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns Filter - * @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.analytics.data.v1alpha.Filter; + /** ConcatenateExpression delimiter */ + delimiter?: (string|null); + } - /** - * Verifies a Filter 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); + /** Represents a ConcatenateExpression. */ + class ConcatenateExpression implements IConcatenateExpression { - /** - * Creates a Filter message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns Filter - */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.Filter; + /** + * Constructs a new ConcatenateExpression. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1alpha.DimensionExpression.IConcatenateExpression); - /** - * Creates a plain object from a Filter message. Also converts values to other types if specified. - * @param message Filter - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.analytics.data.v1alpha.Filter, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** ConcatenateExpression dimensionNames. */ + public dimensionNames: string[]; - /** - * Converts this Filter to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; + /** ConcatenateExpression delimiter. */ + public delimiter: string; - /** - * Gets the default type url for Filter - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } + /** + * Creates a new ConcatenateExpression instance using the specified properties. + * @param [properties] Properties to set + * @returns ConcatenateExpression instance + */ + public static create(properties?: google.analytics.data.v1alpha.DimensionExpression.IConcatenateExpression): google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression; - /** Properties of a StringFilter. */ - interface IStringFilter { + /** + * Encodes the specified ConcatenateExpression message. Does not implicitly {@link google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression.verify|verify} messages. + * @param message ConcatenateExpression message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1alpha.DimensionExpression.IConcatenateExpression, writer?: $protobuf.Writer): $protobuf.Writer; - /** StringFilter matchType */ - matchType?: (google.analytics.data.v1alpha.StringFilter.MatchType|keyof typeof google.analytics.data.v1alpha.StringFilter.MatchType|null); + /** + * Encodes the specified ConcatenateExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression.verify|verify} messages. + * @param message ConcatenateExpression message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1alpha.DimensionExpression.IConcatenateExpression, writer?: $protobuf.Writer): $protobuf.Writer; - /** StringFilter value */ - value?: (string|null); + /** + * Decodes a ConcatenateExpression message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ConcatenateExpression + * @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.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression; - /** StringFilter caseSensitive */ - caseSensitive?: (boolean|null); + /** + * Decodes a ConcatenateExpression message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ConcatenateExpression + * @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.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression; + + /** + * Verifies a ConcatenateExpression 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 ConcatenateExpression message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ConcatenateExpression + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression; + + /** + * Creates a plain object from a ConcatenateExpression message. Also converts values to other types if specified. + * @param message ConcatenateExpression + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ConcatenateExpression to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for ConcatenateExpression + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } } - /** Represents a StringFilter. */ - class StringFilter implements IStringFilter { + /** Properties of a Metric. */ + interface IMetric { + + /** Metric name */ + name?: (string|null); + + /** Metric expression */ + expression?: (string|null); + + /** Metric invisible */ + invisible?: (boolean|null); + } + + /** Represents a Metric. */ + class Metric implements IMetric { /** - * Constructs a new StringFilter. + * Constructs a new Metric. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.IStringFilter); + constructor(properties?: google.analytics.data.v1alpha.IMetric); - /** StringFilter matchType. */ - public matchType: (google.analytics.data.v1alpha.StringFilter.MatchType|keyof typeof google.analytics.data.v1alpha.StringFilter.MatchType); + /** Metric name. */ + public name: string; - /** StringFilter value. */ - public value: string; + /** Metric expression. */ + public expression: string; - /** StringFilter caseSensitive. */ - public caseSensitive: boolean; + /** Metric invisible. */ + public invisible: boolean; /** - * Creates a new StringFilter instance using the specified properties. + * Creates a new Metric instance using the specified properties. * @param [properties] Properties to set - * @returns StringFilter instance + * @returns Metric instance */ - public static create(properties?: google.analytics.data.v1alpha.IStringFilter): google.analytics.data.v1alpha.StringFilter; + public static create(properties?: google.analytics.data.v1alpha.IMetric): google.analytics.data.v1alpha.Metric; /** - * Encodes the specified StringFilter message. Does not implicitly {@link google.analytics.data.v1alpha.StringFilter.verify|verify} messages. - * @param message StringFilter message or plain object to encode + * Encodes the specified Metric message. Does not implicitly {@link google.analytics.data.v1alpha.Metric.verify|verify} messages. + * @param message Metric message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.IStringFilter, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IMetric, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified StringFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.StringFilter.verify|verify} messages. - * @param message StringFilter message or plain object to encode + * Encodes the specified Metric message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.Metric.verify|verify} messages. + * @param message Metric message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IStringFilter, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IMetric, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a StringFilter message from the specified reader or buffer. + * Decodes a Metric message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns StringFilter + * @returns Metric * @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.analytics.data.v1alpha.StringFilter; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.Metric; /** - * Decodes a StringFilter message from the specified reader or buffer, length delimited. + * Decodes a Metric message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns StringFilter + * @returns Metric * @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.analytics.data.v1alpha.StringFilter; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.Metric; /** - * Verifies a StringFilter message. + * Verifies a Metric 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 StringFilter message from a plain object. Also converts values to their respective internal types. + * Creates a Metric message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns StringFilter + * @returns Metric */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.StringFilter; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.Metric; /** - * Creates a plain object from a StringFilter message. Also converts values to other types if specified. - * @param message StringFilter + * Creates a plain object from a Metric message. Also converts values to other types if specified. + * @param message Metric * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.StringFilter, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.Metric, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this StringFilter to JSON. + * Converts this Metric to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for StringFilter + * Gets the default type url for Metric * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - namespace StringFilter { - - /** MatchType enum. */ - enum MatchType { - MATCH_TYPE_UNSPECIFIED = 0, - EXACT = 1, - BEGINS_WITH = 2, - ENDS_WITH = 3, - CONTAINS = 4, - FULL_REGEXP = 5, - PARTIAL_REGEXP = 6 - } - } + /** Properties of a Comparison. */ + interface IComparison { - /** Properties of an InListFilter. */ - interface IInListFilter { + /** Comparison name */ + name?: (string|null); - /** InListFilter values */ - values?: (string[]|null); + /** Comparison dimensionFilter */ + dimensionFilter?: (google.analytics.data.v1alpha.IFilterExpression|null); - /** InListFilter caseSensitive */ - caseSensitive?: (boolean|null); + /** Comparison comparison */ + comparison?: (string|null); } - /** Represents an InListFilter. */ - class InListFilter implements IInListFilter { + /** Represents a Comparison. */ + class Comparison implements IComparison { /** - * Constructs a new InListFilter. + * Constructs a new Comparison. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.IInListFilter); + constructor(properties?: google.analytics.data.v1alpha.IComparison); - /** InListFilter values. */ - public values: string[]; + /** Comparison name. */ + public name?: (string|null); - /** InListFilter caseSensitive. */ - public caseSensitive: boolean; + /** Comparison dimensionFilter. */ + public dimensionFilter?: (google.analytics.data.v1alpha.IFilterExpression|null); + + /** Comparison comparison. */ + public comparison?: (string|null); + + /** Comparison oneComparison. */ + public oneComparison?: ("dimensionFilter"|"comparison"); /** - * Creates a new InListFilter instance using the specified properties. + * Creates a new Comparison instance using the specified properties. * @param [properties] Properties to set - * @returns InListFilter instance + * @returns Comparison instance */ - public static create(properties?: google.analytics.data.v1alpha.IInListFilter): google.analytics.data.v1alpha.InListFilter; + public static create(properties?: google.analytics.data.v1alpha.IComparison): google.analytics.data.v1alpha.Comparison; /** - * Encodes the specified InListFilter message. Does not implicitly {@link google.analytics.data.v1alpha.InListFilter.verify|verify} messages. - * @param message InListFilter message or plain object to encode + * Encodes the specified Comparison message. Does not implicitly {@link google.analytics.data.v1alpha.Comparison.verify|verify} messages. + * @param message Comparison message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.IInListFilter, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IComparison, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified InListFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.InListFilter.verify|verify} messages. - * @param message InListFilter message or plain object to encode + * Encodes the specified Comparison message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.Comparison.verify|verify} messages. + * @param message Comparison message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IInListFilter, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IComparison, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes an InListFilter message from the specified reader or buffer. + * Decodes a Comparison message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns InListFilter + * @returns Comparison * @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.analytics.data.v1alpha.InListFilter; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.Comparison; /** - * Decodes an InListFilter message from the specified reader or buffer, length delimited. + * Decodes a Comparison message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns InListFilter + * @returns Comparison * @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.analytics.data.v1alpha.InListFilter; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.Comparison; /** - * Verifies an InListFilter message. + * Verifies a Comparison 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 InListFilter message from a plain object. Also converts values to their respective internal types. + * Creates a Comparison message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns InListFilter + * @returns Comparison */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.InListFilter; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.Comparison; /** - * Creates a plain object from an InListFilter message. Also converts values to other types if specified. - * @param message InListFilter + * Creates a plain object from a Comparison message. Also converts values to other types if specified. + * @param message Comparison * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.InListFilter, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.Comparison, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this InListFilter to JSON. + * Converts this Comparison to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for InListFilter + * Gets the default type url for Comparison * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a NumericFilter. */ - interface INumericFilter { + /** Properties of a FilterExpression. */ + interface IFilterExpression { - /** NumericFilter operation */ - operation?: (google.analytics.data.v1alpha.NumericFilter.Operation|keyof typeof google.analytics.data.v1alpha.NumericFilter.Operation|null); + /** FilterExpression andGroup */ + andGroup?: (google.analytics.data.v1alpha.IFilterExpressionList|null); - /** NumericFilter value */ - value?: (google.analytics.data.v1alpha.INumericValue|null); + /** FilterExpression orGroup */ + orGroup?: (google.analytics.data.v1alpha.IFilterExpressionList|null); + + /** FilterExpression notExpression */ + notExpression?: (google.analytics.data.v1alpha.IFilterExpression|null); + + /** FilterExpression filter */ + filter?: (google.analytics.data.v1alpha.IFilter|null); } - /** Represents a NumericFilter. */ - class NumericFilter implements INumericFilter { + /** Represents a FilterExpression. */ + class FilterExpression implements IFilterExpression { /** - * Constructs a new NumericFilter. + * Constructs a new FilterExpression. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.INumericFilter); + constructor(properties?: google.analytics.data.v1alpha.IFilterExpression); - /** NumericFilter operation. */ - public operation: (google.analytics.data.v1alpha.NumericFilter.Operation|keyof typeof google.analytics.data.v1alpha.NumericFilter.Operation); + /** FilterExpression andGroup. */ + public andGroup?: (google.analytics.data.v1alpha.IFilterExpressionList|null); - /** NumericFilter value. */ - public value?: (google.analytics.data.v1alpha.INumericValue|null); + /** FilterExpression orGroup. */ + public orGroup?: (google.analytics.data.v1alpha.IFilterExpressionList|null); + + /** FilterExpression notExpression. */ + public notExpression?: (google.analytics.data.v1alpha.IFilterExpression|null); + + /** FilterExpression filter. */ + public filter?: (google.analytics.data.v1alpha.IFilter|null); + + /** FilterExpression expr. */ + public expr?: ("andGroup"|"orGroup"|"notExpression"|"filter"); /** - * Creates a new NumericFilter instance using the specified properties. + * Creates a new FilterExpression instance using the specified properties. * @param [properties] Properties to set - * @returns NumericFilter instance + * @returns FilterExpression instance */ - public static create(properties?: google.analytics.data.v1alpha.INumericFilter): google.analytics.data.v1alpha.NumericFilter; + public static create(properties?: google.analytics.data.v1alpha.IFilterExpression): google.analytics.data.v1alpha.FilterExpression; /** - * Encodes the specified NumericFilter message. Does not implicitly {@link google.analytics.data.v1alpha.NumericFilter.verify|verify} messages. - * @param message NumericFilter message or plain object to encode + * Encodes the specified FilterExpression message. Does not implicitly {@link google.analytics.data.v1alpha.FilterExpression.verify|verify} messages. + * @param message FilterExpression message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.INumericFilter, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IFilterExpression, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified NumericFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.NumericFilter.verify|verify} messages. - * @param message NumericFilter message or plain object to encode + * Encodes the specified FilterExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FilterExpression.verify|verify} messages. + * @param message FilterExpression message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.INumericFilter, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IFilterExpression, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a NumericFilter message from the specified reader or buffer. + * Decodes a FilterExpression message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns NumericFilter + * @returns FilterExpression * @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.analytics.data.v1alpha.NumericFilter; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.FilterExpression; /** - * Decodes a NumericFilter message from the specified reader or buffer, length delimited. + * Decodes a FilterExpression message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns NumericFilter + * @returns FilterExpression * @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.analytics.data.v1alpha.NumericFilter; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.FilterExpression; /** - * Verifies a NumericFilter message. + * Verifies a FilterExpression 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 NumericFilter message from a plain object. Also converts values to their respective internal types. + * Creates a FilterExpression message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns NumericFilter + * @returns FilterExpression */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.NumericFilter; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.FilterExpression; /** - * Creates a plain object from a NumericFilter message. Also converts values to other types if specified. - * @param message NumericFilter + * Creates a plain object from a FilterExpression message. Also converts values to other types if specified. + * @param message FilterExpression * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.NumericFilter, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.FilterExpression, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this NumericFilter to JSON. + * Converts this FilterExpression to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for NumericFilter + * Gets the default type url for FilterExpression * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - namespace NumericFilter { - - /** Operation enum. */ - enum Operation { - OPERATION_UNSPECIFIED = 0, - EQUAL = 1, - LESS_THAN = 2, - LESS_THAN_OR_EQUAL = 3, - GREATER_THAN = 4, - GREATER_THAN_OR_EQUAL = 5 - } - } - - /** Properties of an OrderBy. */ - interface IOrderBy { - - /** OrderBy metric */ - metric?: (google.analytics.data.v1alpha.OrderBy.IMetricOrderBy|null); - - /** OrderBy dimension */ - dimension?: (google.analytics.data.v1alpha.OrderBy.IDimensionOrderBy|null); + /** Properties of a FilterExpressionList. */ + interface IFilterExpressionList { - /** OrderBy desc */ - desc?: (boolean|null); + /** FilterExpressionList expressions */ + expressions?: (google.analytics.data.v1alpha.IFilterExpression[]|null); } - /** Represents an OrderBy. */ - class OrderBy implements IOrderBy { + /** Represents a FilterExpressionList. */ + class FilterExpressionList implements IFilterExpressionList { /** - * Constructs a new OrderBy. + * Constructs a new FilterExpressionList. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.IOrderBy); - - /** OrderBy metric. */ - public metric?: (google.analytics.data.v1alpha.OrderBy.IMetricOrderBy|null); - - /** OrderBy dimension. */ - public dimension?: (google.analytics.data.v1alpha.OrderBy.IDimensionOrderBy|null); - - /** OrderBy desc. */ - public desc: boolean; + constructor(properties?: google.analytics.data.v1alpha.IFilterExpressionList); - /** OrderBy oneOrderBy. */ - public oneOrderBy?: ("metric"|"dimension"); + /** FilterExpressionList expressions. */ + public expressions: google.analytics.data.v1alpha.IFilterExpression[]; /** - * Creates a new OrderBy instance using the specified properties. + * Creates a new FilterExpressionList instance using the specified properties. * @param [properties] Properties to set - * @returns OrderBy instance + * @returns FilterExpressionList instance */ - public static create(properties?: google.analytics.data.v1alpha.IOrderBy): google.analytics.data.v1alpha.OrderBy; + public static create(properties?: google.analytics.data.v1alpha.IFilterExpressionList): google.analytics.data.v1alpha.FilterExpressionList; /** - * Encodes the specified OrderBy message. Does not implicitly {@link google.analytics.data.v1alpha.OrderBy.verify|verify} messages. - * @param message OrderBy message or plain object to encode + * Encodes the specified FilterExpressionList message. Does not implicitly {@link google.analytics.data.v1alpha.FilterExpressionList.verify|verify} messages. + * @param message FilterExpressionList message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.IOrderBy, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IFilterExpressionList, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified OrderBy message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.OrderBy.verify|verify} messages. - * @param message OrderBy message or plain object to encode + * Encodes the specified FilterExpressionList message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FilterExpressionList.verify|verify} messages. + * @param message FilterExpressionList message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IOrderBy, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IFilterExpressionList, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes an OrderBy message from the specified reader or buffer. + * Decodes a FilterExpressionList message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns OrderBy + * @returns FilterExpressionList * @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.analytics.data.v1alpha.OrderBy; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.FilterExpressionList; /** - * Decodes an OrderBy message from the specified reader or buffer, length delimited. + * Decodes a FilterExpressionList message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns OrderBy + * @returns FilterExpressionList * @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.analytics.data.v1alpha.OrderBy; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.FilterExpressionList; /** - * Verifies an OrderBy message. + * Verifies a FilterExpressionList 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 OrderBy message from a plain object. Also converts values to their respective internal types. + * Creates a FilterExpressionList message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns OrderBy + * @returns FilterExpressionList */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.OrderBy; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.FilterExpressionList; /** - * Creates a plain object from an OrderBy message. Also converts values to other types if specified. - * @param message OrderBy + * Creates a plain object from a FilterExpressionList message. Also converts values to other types if specified. + * @param message FilterExpressionList * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.OrderBy, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.FilterExpressionList, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this OrderBy to JSON. + * Converts this FilterExpressionList to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for OrderBy + * Gets the default type url for FilterExpressionList * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - namespace OrderBy { + /** Properties of a Filter. */ + interface IFilter { - /** Properties of a MetricOrderBy. */ - interface IMetricOrderBy { + /** Filter fieldName */ + fieldName?: (string|null); - /** MetricOrderBy metricName */ - metricName?: (string|null); - } + /** Filter stringFilter */ + stringFilter?: (google.analytics.data.v1alpha.IStringFilter|null); - /** Represents a MetricOrderBy. */ - class MetricOrderBy implements IMetricOrderBy { + /** Filter inListFilter */ + inListFilter?: (google.analytics.data.v1alpha.IInListFilter|null); - /** - * Constructs a new MetricOrderBy. - * @param [properties] Properties to set - */ - constructor(properties?: google.analytics.data.v1alpha.OrderBy.IMetricOrderBy); + /** Filter numericFilter */ + numericFilter?: (google.analytics.data.v1alpha.INumericFilter|null); - /** MetricOrderBy metricName. */ - public metricName: string; + /** Filter betweenFilter */ + betweenFilter?: (google.analytics.data.v1alpha.IBetweenFilter|null); - /** - * Creates a new MetricOrderBy instance using the specified properties. - * @param [properties] Properties to set - * @returns MetricOrderBy instance - */ - public static create(properties?: google.analytics.data.v1alpha.OrderBy.IMetricOrderBy): google.analytics.data.v1alpha.OrderBy.MetricOrderBy; + /** Filter emptyFilter */ + emptyFilter?: (google.analytics.data.v1alpha.IEmptyFilter|null); + } - /** - * Encodes the specified MetricOrderBy message. Does not implicitly {@link google.analytics.data.v1alpha.OrderBy.MetricOrderBy.verify|verify} messages. - * @param message MetricOrderBy message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.analytics.data.v1alpha.OrderBy.IMetricOrderBy, writer?: $protobuf.Writer): $protobuf.Writer; + /** Represents a Filter. */ + class Filter implements IFilter { - /** - * Encodes the specified MetricOrderBy message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.OrderBy.MetricOrderBy.verify|verify} messages. - * @param message MetricOrderBy message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.analytics.data.v1alpha.OrderBy.IMetricOrderBy, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Constructs a new Filter. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1alpha.IFilter); - /** - * Decodes a MetricOrderBy message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns MetricOrderBy - * @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.analytics.data.v1alpha.OrderBy.MetricOrderBy; + /** Filter fieldName. */ + public fieldName: string; - /** - * Decodes a MetricOrderBy message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns MetricOrderBy - * @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.analytics.data.v1alpha.OrderBy.MetricOrderBy; + /** Filter stringFilter. */ + public stringFilter?: (google.analytics.data.v1alpha.IStringFilter|null); - /** - * Verifies a MetricOrderBy 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); + /** Filter inListFilter. */ + public inListFilter?: (google.analytics.data.v1alpha.IInListFilter|null); - /** - * Creates a MetricOrderBy message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns MetricOrderBy - */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.OrderBy.MetricOrderBy; + /** Filter numericFilter. */ + public numericFilter?: (google.analytics.data.v1alpha.INumericFilter|null); - /** - * Creates a plain object from a MetricOrderBy message. Also converts values to other types if specified. - * @param message MetricOrderBy - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.analytics.data.v1alpha.OrderBy.MetricOrderBy, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** Filter betweenFilter. */ + public betweenFilter?: (google.analytics.data.v1alpha.IBetweenFilter|null); + + /** Filter emptyFilter. */ + public emptyFilter?: (google.analytics.data.v1alpha.IEmptyFilter|null); + + /** Filter oneFilter. */ + public oneFilter?: ("stringFilter"|"inListFilter"|"numericFilter"|"betweenFilter"|"emptyFilter"); + + /** + * Creates a new Filter instance using the specified properties. + * @param [properties] Properties to set + * @returns Filter instance + */ + public static create(properties?: google.analytics.data.v1alpha.IFilter): google.analytics.data.v1alpha.Filter; + + /** + * Encodes the specified Filter message. Does not implicitly {@link google.analytics.data.v1alpha.Filter.verify|verify} messages. + * @param message Filter message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1alpha.IFilter, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified Filter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.Filter.verify|verify} messages. + * @param message Filter message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1alpha.IFilter, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a Filter message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns Filter + * @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.analytics.data.v1alpha.Filter; + + /** + * Decodes a Filter message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns Filter + * @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.analytics.data.v1alpha.Filter; + + /** + * Verifies a Filter 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 Filter message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns Filter + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.Filter; + + /** + * Creates a plain object from a Filter message. Also converts values to other types if specified. + * @param message Filter + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1alpha.Filter, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this Filter to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for Filter + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a StringFilter. */ + interface IStringFilter { + + /** StringFilter matchType */ + matchType?: (google.analytics.data.v1alpha.StringFilter.MatchType|keyof typeof google.analytics.data.v1alpha.StringFilter.MatchType|null); + + /** StringFilter value */ + value?: (string|null); + + /** StringFilter caseSensitive */ + caseSensitive?: (boolean|null); + } + + /** Represents a StringFilter. */ + class StringFilter implements IStringFilter { + + /** + * Constructs a new StringFilter. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1alpha.IStringFilter); + + /** StringFilter matchType. */ + public matchType: (google.analytics.data.v1alpha.StringFilter.MatchType|keyof typeof google.analytics.data.v1alpha.StringFilter.MatchType); + + /** StringFilter value. */ + public value: string; + + /** StringFilter caseSensitive. */ + public caseSensitive: boolean; + + /** + * Creates a new StringFilter instance using the specified properties. + * @param [properties] Properties to set + * @returns StringFilter instance + */ + public static create(properties?: google.analytics.data.v1alpha.IStringFilter): google.analytics.data.v1alpha.StringFilter; + + /** + * Encodes the specified StringFilter message. Does not implicitly {@link google.analytics.data.v1alpha.StringFilter.verify|verify} messages. + * @param message StringFilter message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1alpha.IStringFilter, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified StringFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.StringFilter.verify|verify} messages. + * @param message StringFilter message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1alpha.IStringFilter, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a StringFilter message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns StringFilter + * @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.analytics.data.v1alpha.StringFilter; + + /** + * Decodes a StringFilter message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns StringFilter + * @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.analytics.data.v1alpha.StringFilter; + + /** + * Verifies a StringFilter 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 StringFilter message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns StringFilter + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.StringFilter; + + /** + * Creates a plain object from a StringFilter message. Also converts values to other types if specified. + * @param message StringFilter + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1alpha.StringFilter, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this StringFilter to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for StringFilter + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + namespace StringFilter { + + /** MatchType enum. */ + enum MatchType { + MATCH_TYPE_UNSPECIFIED = 0, + EXACT = 1, + BEGINS_WITH = 2, + ENDS_WITH = 3, + CONTAINS = 4, + FULL_REGEXP = 5, + PARTIAL_REGEXP = 6 + } + } + + /** Properties of an InListFilter. */ + interface IInListFilter { + + /** InListFilter values */ + values?: (string[]|null); + + /** InListFilter caseSensitive */ + caseSensitive?: (boolean|null); + } + + /** Represents an InListFilter. */ + class InListFilter implements IInListFilter { + + /** + * Constructs a new InListFilter. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1alpha.IInListFilter); + + /** InListFilter values. */ + public values: string[]; + + /** InListFilter caseSensitive. */ + public caseSensitive: boolean; + + /** + * Creates a new InListFilter instance using the specified properties. + * @param [properties] Properties to set + * @returns InListFilter instance + */ + public static create(properties?: google.analytics.data.v1alpha.IInListFilter): google.analytics.data.v1alpha.InListFilter; + + /** + * Encodes the specified InListFilter message. Does not implicitly {@link google.analytics.data.v1alpha.InListFilter.verify|verify} messages. + * @param message InListFilter message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1alpha.IInListFilter, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified InListFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.InListFilter.verify|verify} messages. + * @param message InListFilter message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1alpha.IInListFilter, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an InListFilter message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns InListFilter + * @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.analytics.data.v1alpha.InListFilter; + + /** + * Decodes an InListFilter message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns InListFilter + * @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.analytics.data.v1alpha.InListFilter; + + /** + * Verifies an InListFilter 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 InListFilter message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns InListFilter + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.InListFilter; + + /** + * Creates a plain object from an InListFilter message. Also converts values to other types if specified. + * @param message InListFilter + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1alpha.InListFilter, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this InListFilter to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for InListFilter + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a NumericFilter. */ + interface INumericFilter { + + /** NumericFilter operation */ + operation?: (google.analytics.data.v1alpha.NumericFilter.Operation|keyof typeof google.analytics.data.v1alpha.NumericFilter.Operation|null); + + /** NumericFilter value */ + value?: (google.analytics.data.v1alpha.INumericValue|null); + } + + /** Represents a NumericFilter. */ + class NumericFilter implements INumericFilter { + + /** + * Constructs a new NumericFilter. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1alpha.INumericFilter); + + /** NumericFilter operation. */ + public operation: (google.analytics.data.v1alpha.NumericFilter.Operation|keyof typeof google.analytics.data.v1alpha.NumericFilter.Operation); + + /** NumericFilter value. */ + public value?: (google.analytics.data.v1alpha.INumericValue|null); + + /** + * Creates a new NumericFilter instance using the specified properties. + * @param [properties] Properties to set + * @returns NumericFilter instance + */ + public static create(properties?: google.analytics.data.v1alpha.INumericFilter): google.analytics.data.v1alpha.NumericFilter; + + /** + * Encodes the specified NumericFilter message. Does not implicitly {@link google.analytics.data.v1alpha.NumericFilter.verify|verify} messages. + * @param message NumericFilter message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1alpha.INumericFilter, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified NumericFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.NumericFilter.verify|verify} messages. + * @param message NumericFilter message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1alpha.INumericFilter, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a NumericFilter message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns NumericFilter + * @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.analytics.data.v1alpha.NumericFilter; + + /** + * Decodes a NumericFilter message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns NumericFilter + * @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.analytics.data.v1alpha.NumericFilter; + + /** + * Verifies a NumericFilter 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 NumericFilter message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns NumericFilter + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.NumericFilter; + + /** + * Creates a plain object from a NumericFilter message. Also converts values to other types if specified. + * @param message NumericFilter + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1alpha.NumericFilter, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this NumericFilter to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for NumericFilter + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + namespace NumericFilter { + + /** Operation enum. */ + enum Operation { + OPERATION_UNSPECIFIED = 0, + EQUAL = 1, + LESS_THAN = 2, + LESS_THAN_OR_EQUAL = 3, + GREATER_THAN = 4, + GREATER_THAN_OR_EQUAL = 5 + } + } + + /** Properties of an OrderBy. */ + interface IOrderBy { + + /** OrderBy metric */ + metric?: (google.analytics.data.v1alpha.OrderBy.IMetricOrderBy|null); + + /** OrderBy dimension */ + dimension?: (google.analytics.data.v1alpha.OrderBy.IDimensionOrderBy|null); + + /** OrderBy desc */ + desc?: (boolean|null); + } + + /** Represents an OrderBy. */ + class OrderBy implements IOrderBy { + + /** + * Constructs a new OrderBy. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1alpha.IOrderBy); + + /** OrderBy metric. */ + public metric?: (google.analytics.data.v1alpha.OrderBy.IMetricOrderBy|null); + + /** OrderBy dimension. */ + public dimension?: (google.analytics.data.v1alpha.OrderBy.IDimensionOrderBy|null); + + /** OrderBy desc. */ + public desc: boolean; + + /** OrderBy oneOrderBy. */ + public oneOrderBy?: ("metric"|"dimension"); + + /** + * Creates a new OrderBy instance using the specified properties. + * @param [properties] Properties to set + * @returns OrderBy instance + */ + public static create(properties?: google.analytics.data.v1alpha.IOrderBy): google.analytics.data.v1alpha.OrderBy; + + /** + * Encodes the specified OrderBy message. Does not implicitly {@link google.analytics.data.v1alpha.OrderBy.verify|verify} messages. + * @param message OrderBy message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1alpha.IOrderBy, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified OrderBy message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.OrderBy.verify|verify} messages. + * @param message OrderBy message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1alpha.IOrderBy, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an OrderBy message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns OrderBy + * @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.analytics.data.v1alpha.OrderBy; + + /** + * Decodes an OrderBy message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns OrderBy + * @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.analytics.data.v1alpha.OrderBy; + + /** + * Verifies an OrderBy 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 OrderBy message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns OrderBy + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.OrderBy; + + /** + * Creates a plain object from an OrderBy message. Also converts values to other types if specified. + * @param message OrderBy + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1alpha.OrderBy, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this OrderBy to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for OrderBy + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + namespace OrderBy { + + /** Properties of a MetricOrderBy. */ + interface IMetricOrderBy { + + /** MetricOrderBy metricName */ + metricName?: (string|null); + } + + /** Represents a MetricOrderBy. */ + class MetricOrderBy implements IMetricOrderBy { + + /** + * Constructs a new MetricOrderBy. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1alpha.OrderBy.IMetricOrderBy); + + /** MetricOrderBy metricName. */ + public metricName: string; + + /** + * Creates a new MetricOrderBy instance using the specified properties. + * @param [properties] Properties to set + * @returns MetricOrderBy instance + */ + public static create(properties?: google.analytics.data.v1alpha.OrderBy.IMetricOrderBy): google.analytics.data.v1alpha.OrderBy.MetricOrderBy; + + /** + * Encodes the specified MetricOrderBy message. Does not implicitly {@link google.analytics.data.v1alpha.OrderBy.MetricOrderBy.verify|verify} messages. + * @param message MetricOrderBy message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1alpha.OrderBy.IMetricOrderBy, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified MetricOrderBy message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.OrderBy.MetricOrderBy.verify|verify} messages. + * @param message MetricOrderBy message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1alpha.OrderBy.IMetricOrderBy, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a MetricOrderBy message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns MetricOrderBy + * @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.analytics.data.v1alpha.OrderBy.MetricOrderBy; + + /** + * Decodes a MetricOrderBy message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns MetricOrderBy + * @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.analytics.data.v1alpha.OrderBy.MetricOrderBy; + + /** + * Verifies a MetricOrderBy 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 MetricOrderBy message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns MetricOrderBy + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.OrderBy.MetricOrderBy; + + /** + * Creates a plain object from a MetricOrderBy message. Also converts values to other types if specified. + * @param message MetricOrderBy + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1alpha.OrderBy.MetricOrderBy, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this MetricOrderBy to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for MetricOrderBy + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a DimensionOrderBy. */ + interface IDimensionOrderBy { + + /** DimensionOrderBy dimensionName */ + dimensionName?: (string|null); + + /** DimensionOrderBy orderType */ + orderType?: (google.analytics.data.v1alpha.OrderBy.DimensionOrderBy.OrderType|keyof typeof google.analytics.data.v1alpha.OrderBy.DimensionOrderBy.OrderType|null); + } + + /** Represents a DimensionOrderBy. */ + class DimensionOrderBy implements IDimensionOrderBy { + + /** + * Constructs a new DimensionOrderBy. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1alpha.OrderBy.IDimensionOrderBy); + + /** DimensionOrderBy dimensionName. */ + public dimensionName: string; + + /** DimensionOrderBy orderType. */ + public orderType: (google.analytics.data.v1alpha.OrderBy.DimensionOrderBy.OrderType|keyof typeof google.analytics.data.v1alpha.OrderBy.DimensionOrderBy.OrderType); + + /** + * Creates a new DimensionOrderBy instance using the specified properties. + * @param [properties] Properties to set + * @returns DimensionOrderBy instance + */ + public static create(properties?: google.analytics.data.v1alpha.OrderBy.IDimensionOrderBy): google.analytics.data.v1alpha.OrderBy.DimensionOrderBy; + + /** + * Encodes the specified DimensionOrderBy message. Does not implicitly {@link google.analytics.data.v1alpha.OrderBy.DimensionOrderBy.verify|verify} messages. + * @param message DimensionOrderBy message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1alpha.OrderBy.IDimensionOrderBy, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified DimensionOrderBy message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.OrderBy.DimensionOrderBy.verify|verify} messages. + * @param message DimensionOrderBy message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1alpha.OrderBy.IDimensionOrderBy, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a DimensionOrderBy message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns DimensionOrderBy + * @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.analytics.data.v1alpha.OrderBy.DimensionOrderBy; + + /** + * Decodes a DimensionOrderBy message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns DimensionOrderBy + * @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.analytics.data.v1alpha.OrderBy.DimensionOrderBy; + + /** + * Verifies a DimensionOrderBy 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 DimensionOrderBy message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns DimensionOrderBy + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.OrderBy.DimensionOrderBy; + + /** + * Creates a plain object from a DimensionOrderBy message. Also converts values to other types if specified. + * @param message DimensionOrderBy + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1alpha.OrderBy.DimensionOrderBy, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this DimensionOrderBy to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for DimensionOrderBy + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + namespace DimensionOrderBy { + + /** OrderType enum. */ + enum OrderType { + ORDER_TYPE_UNSPECIFIED = 0, + ALPHANUMERIC = 1, + CASE_INSENSITIVE_ALPHANUMERIC = 2, + NUMERIC = 3 + } + } + } + + /** Properties of a BetweenFilter. */ + interface IBetweenFilter { + + /** BetweenFilter fromValue */ + fromValue?: (google.analytics.data.v1alpha.INumericValue|null); + + /** BetweenFilter toValue */ + toValue?: (google.analytics.data.v1alpha.INumericValue|null); + } + + /** Represents a BetweenFilter. */ + class BetweenFilter implements IBetweenFilter { + + /** + * Constructs a new BetweenFilter. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1alpha.IBetweenFilter); + + /** BetweenFilter fromValue. */ + public fromValue?: (google.analytics.data.v1alpha.INumericValue|null); + + /** BetweenFilter toValue. */ + public toValue?: (google.analytics.data.v1alpha.INumericValue|null); + + /** + * Creates a new BetweenFilter instance using the specified properties. + * @param [properties] Properties to set + * @returns BetweenFilter instance + */ + public static create(properties?: google.analytics.data.v1alpha.IBetweenFilter): google.analytics.data.v1alpha.BetweenFilter; + + /** + * Encodes the specified BetweenFilter message. Does not implicitly {@link google.analytics.data.v1alpha.BetweenFilter.verify|verify} messages. + * @param message BetweenFilter message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1alpha.IBetweenFilter, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified BetweenFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.BetweenFilter.verify|verify} messages. + * @param message BetweenFilter message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1alpha.IBetweenFilter, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a BetweenFilter message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns BetweenFilter + * @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.analytics.data.v1alpha.BetweenFilter; + + /** + * Decodes a BetweenFilter message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns BetweenFilter + * @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.analytics.data.v1alpha.BetweenFilter; + + /** + * Verifies a BetweenFilter 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 BetweenFilter message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns BetweenFilter + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.BetweenFilter; + + /** + * Creates a plain object from a BetweenFilter message. Also converts values to other types if specified. + * @param message BetweenFilter + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1alpha.BetweenFilter, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this BetweenFilter to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for BetweenFilter + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of an EmptyFilter. */ + interface IEmptyFilter { + } + + /** Represents an EmptyFilter. */ + class EmptyFilter implements IEmptyFilter { + + /** + * Constructs a new EmptyFilter. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1alpha.IEmptyFilter); + + /** + * Creates a new EmptyFilter instance using the specified properties. + * @param [properties] Properties to set + * @returns EmptyFilter instance + */ + public static create(properties?: google.analytics.data.v1alpha.IEmptyFilter): google.analytics.data.v1alpha.EmptyFilter; + + /** + * Encodes the specified EmptyFilter message. Does not implicitly {@link google.analytics.data.v1alpha.EmptyFilter.verify|verify} messages. + * @param message EmptyFilter message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1alpha.IEmptyFilter, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified EmptyFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.EmptyFilter.verify|verify} messages. + * @param message EmptyFilter message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1alpha.IEmptyFilter, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an EmptyFilter message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns EmptyFilter + * @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.analytics.data.v1alpha.EmptyFilter; + + /** + * Decodes an EmptyFilter message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns EmptyFilter + * @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.analytics.data.v1alpha.EmptyFilter; + + /** + * Verifies an EmptyFilter 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 EmptyFilter message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns EmptyFilter + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.EmptyFilter; + + /** + * Creates a plain object from an EmptyFilter message. Also converts values to other types if specified. + * @param message EmptyFilter + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1alpha.EmptyFilter, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this EmptyFilter to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for EmptyFilter + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a NumericValue. */ + interface INumericValue { + + /** NumericValue int64Value */ + int64Value?: (number|Long|string|null); + + /** NumericValue doubleValue */ + doubleValue?: (number|null); + } + + /** Represents a NumericValue. */ + class NumericValue implements INumericValue { + + /** + * Constructs a new NumericValue. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1alpha.INumericValue); + + /** NumericValue int64Value. */ + public int64Value?: (number|Long|string|null); + + /** NumericValue doubleValue. */ + public doubleValue?: (number|null); + + /** NumericValue oneValue. */ + public oneValue?: ("int64Value"|"doubleValue"); + + /** + * Creates a new NumericValue instance using the specified properties. + * @param [properties] Properties to set + * @returns NumericValue instance + */ + public static create(properties?: google.analytics.data.v1alpha.INumericValue): google.analytics.data.v1alpha.NumericValue; + + /** + * Encodes the specified NumericValue message. Does not implicitly {@link google.analytics.data.v1alpha.NumericValue.verify|verify} messages. + * @param message NumericValue message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1alpha.INumericValue, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified NumericValue message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.NumericValue.verify|verify} messages. + * @param message NumericValue message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1alpha.INumericValue, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a NumericValue message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns NumericValue + * @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.analytics.data.v1alpha.NumericValue; + + /** + * Decodes a NumericValue message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns NumericValue + * @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.analytics.data.v1alpha.NumericValue; + + /** + * Verifies a NumericValue 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 NumericValue message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns NumericValue + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.NumericValue; + + /** + * Creates a plain object from a NumericValue message. Also converts values to other types if specified. + * @param message NumericValue + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1alpha.NumericValue, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** - * Converts this MetricOrderBy to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; + /** + * Converts this NumericValue to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; - /** - * Gets the default type url for MetricOrderBy - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } + /** + * Gets the default type url for NumericValue + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } - /** Properties of a DimensionOrderBy. */ - interface IDimensionOrderBy { + /** Properties of a CohortSpec. */ + interface ICohortSpec { - /** DimensionOrderBy dimensionName */ - dimensionName?: (string|null); + /** CohortSpec cohorts */ + cohorts?: (google.analytics.data.v1alpha.ICohort[]|null); - /** DimensionOrderBy orderType */ - orderType?: (google.analytics.data.v1alpha.OrderBy.DimensionOrderBy.OrderType|keyof typeof google.analytics.data.v1alpha.OrderBy.DimensionOrderBy.OrderType|null); - } + /** CohortSpec cohortsRange */ + cohortsRange?: (google.analytics.data.v1alpha.ICohortsRange|null); - /** Represents a DimensionOrderBy. */ - class DimensionOrderBy implements IDimensionOrderBy { + /** CohortSpec cohortReportSettings */ + cohortReportSettings?: (google.analytics.data.v1alpha.ICohortReportSettings|null); + } - /** - * Constructs a new DimensionOrderBy. - * @param [properties] Properties to set - */ - constructor(properties?: google.analytics.data.v1alpha.OrderBy.IDimensionOrderBy); + /** Represents a CohortSpec. */ + class CohortSpec implements ICohortSpec { - /** DimensionOrderBy dimensionName. */ - public dimensionName: string; + /** + * Constructs a new CohortSpec. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1alpha.ICohortSpec); - /** DimensionOrderBy orderType. */ - public orderType: (google.analytics.data.v1alpha.OrderBy.DimensionOrderBy.OrderType|keyof typeof google.analytics.data.v1alpha.OrderBy.DimensionOrderBy.OrderType); + /** CohortSpec cohorts. */ + public cohorts: google.analytics.data.v1alpha.ICohort[]; - /** - * Creates a new DimensionOrderBy instance using the specified properties. - * @param [properties] Properties to set - * @returns DimensionOrderBy instance - */ - public static create(properties?: google.analytics.data.v1alpha.OrderBy.IDimensionOrderBy): google.analytics.data.v1alpha.OrderBy.DimensionOrderBy; + /** CohortSpec cohortsRange. */ + public cohortsRange?: (google.analytics.data.v1alpha.ICohortsRange|null); - /** - * Encodes the specified DimensionOrderBy message. Does not implicitly {@link google.analytics.data.v1alpha.OrderBy.DimensionOrderBy.verify|verify} messages. - * @param message DimensionOrderBy message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.analytics.data.v1alpha.OrderBy.IDimensionOrderBy, writer?: $protobuf.Writer): $protobuf.Writer; + /** CohortSpec cohortReportSettings. */ + public cohortReportSettings?: (google.analytics.data.v1alpha.ICohortReportSettings|null); - /** - * Encodes the specified DimensionOrderBy message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.OrderBy.DimensionOrderBy.verify|verify} messages. - * @param message DimensionOrderBy message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.analytics.data.v1alpha.OrderBy.IDimensionOrderBy, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Creates a new CohortSpec instance using the specified properties. + * @param [properties] Properties to set + * @returns CohortSpec instance + */ + public static create(properties?: google.analytics.data.v1alpha.ICohortSpec): google.analytics.data.v1alpha.CohortSpec; - /** - * Decodes a DimensionOrderBy message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns DimensionOrderBy - * @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.analytics.data.v1alpha.OrderBy.DimensionOrderBy; + /** + * Encodes the specified CohortSpec message. Does not implicitly {@link google.analytics.data.v1alpha.CohortSpec.verify|verify} messages. + * @param message CohortSpec message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1alpha.ICohortSpec, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Decodes a DimensionOrderBy message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns DimensionOrderBy - * @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.analytics.data.v1alpha.OrderBy.DimensionOrderBy; + /** + * Encodes the specified CohortSpec message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.CohortSpec.verify|verify} messages. + * @param message CohortSpec message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1alpha.ICohortSpec, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Verifies a DimensionOrderBy message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** + * Decodes a CohortSpec message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns CohortSpec + * @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.analytics.data.v1alpha.CohortSpec; - /** - * Creates a DimensionOrderBy message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns DimensionOrderBy - */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.OrderBy.DimensionOrderBy; + /** + * Decodes a CohortSpec message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns CohortSpec + * @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.analytics.data.v1alpha.CohortSpec; - /** - * Creates a plain object from a DimensionOrderBy message. Also converts values to other types if specified. - * @param message DimensionOrderBy - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.analytics.data.v1alpha.OrderBy.DimensionOrderBy, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** + * Verifies a CohortSpec 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); - /** - * Converts this DimensionOrderBy to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; + /** + * Creates a CohortSpec message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns CohortSpec + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.CohortSpec; - /** - * Gets the default type url for DimensionOrderBy - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } + /** + * Creates a plain object from a CohortSpec message. Also converts values to other types if specified. + * @param message CohortSpec + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1alpha.CohortSpec, options?: $protobuf.IConversionOptions): { [k: string]: any }; - namespace DimensionOrderBy { + /** + * Converts this CohortSpec to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; - /** OrderType enum. */ - enum OrderType { - ORDER_TYPE_UNSPECIFIED = 0, - ALPHANUMERIC = 1, - CASE_INSENSITIVE_ALPHANUMERIC = 2, - NUMERIC = 3 - } - } + /** + * Gets the default type url for CohortSpec + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a BetweenFilter. */ - interface IBetweenFilter { + /** Properties of a Cohort. */ + interface ICohort { - /** BetweenFilter fromValue */ - fromValue?: (google.analytics.data.v1alpha.INumericValue|null); + /** Cohort name */ + name?: (string|null); - /** BetweenFilter toValue */ - toValue?: (google.analytics.data.v1alpha.INumericValue|null); + /** Cohort dimension */ + dimension?: (string|null); + + /** Cohort dateRange */ + dateRange?: (google.analytics.data.v1alpha.IDateRange|null); } - /** Represents a BetweenFilter. */ - class BetweenFilter implements IBetweenFilter { + /** Represents a Cohort. */ + class Cohort implements ICohort { /** - * Constructs a new BetweenFilter. + * Constructs a new Cohort. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.IBetweenFilter); + constructor(properties?: google.analytics.data.v1alpha.ICohort); - /** BetweenFilter fromValue. */ - public fromValue?: (google.analytics.data.v1alpha.INumericValue|null); + /** Cohort name. */ + public name: string; - /** BetweenFilter toValue. */ - public toValue?: (google.analytics.data.v1alpha.INumericValue|null); + /** Cohort dimension. */ + public dimension: string; + + /** Cohort dateRange. */ + public dateRange?: (google.analytics.data.v1alpha.IDateRange|null); /** - * Creates a new BetweenFilter instance using the specified properties. + * Creates a new Cohort instance using the specified properties. * @param [properties] Properties to set - * @returns BetweenFilter instance + * @returns Cohort instance */ - public static create(properties?: google.analytics.data.v1alpha.IBetweenFilter): google.analytics.data.v1alpha.BetweenFilter; + public static create(properties?: google.analytics.data.v1alpha.ICohort): google.analytics.data.v1alpha.Cohort; /** - * Encodes the specified BetweenFilter message. Does not implicitly {@link google.analytics.data.v1alpha.BetweenFilter.verify|verify} messages. - * @param message BetweenFilter message or plain object to encode + * Encodes the specified Cohort message. Does not implicitly {@link google.analytics.data.v1alpha.Cohort.verify|verify} messages. + * @param message Cohort message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.IBetweenFilter, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.ICohort, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified BetweenFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.BetweenFilter.verify|verify} messages. - * @param message BetweenFilter message or plain object to encode + * Encodes the specified Cohort message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.Cohort.verify|verify} messages. + * @param message Cohort message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IBetweenFilter, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.ICohort, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a BetweenFilter message from the specified reader or buffer. + * Decodes a Cohort message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns BetweenFilter + * @returns Cohort * @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.analytics.data.v1alpha.BetweenFilter; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.Cohort; /** - * Decodes a BetweenFilter message from the specified reader or buffer, length delimited. + * Decodes a Cohort message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns BetweenFilter + * @returns Cohort * @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.analytics.data.v1alpha.BetweenFilter; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.Cohort; /** - * Verifies a BetweenFilter message. + * Verifies a Cohort 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 BetweenFilter message from a plain object. Also converts values to their respective internal types. + * Creates a Cohort message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns BetweenFilter + * @returns Cohort */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.BetweenFilter; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.Cohort; /** - * Creates a plain object from a BetweenFilter message. Also converts values to other types if specified. - * @param message BetweenFilter + * Creates a plain object from a Cohort message. Also converts values to other types if specified. + * @param message Cohort * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.BetweenFilter, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.Cohort, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this BetweenFilter to JSON. + * Converts this Cohort to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for BetweenFilter + * Gets the default type url for Cohort * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of an EmptyFilter. */ - interface IEmptyFilter { + /** Properties of a CohortsRange. */ + interface ICohortsRange { + + /** CohortsRange granularity */ + granularity?: (google.analytics.data.v1alpha.CohortsRange.Granularity|keyof typeof google.analytics.data.v1alpha.CohortsRange.Granularity|null); + + /** CohortsRange startOffset */ + startOffset?: (number|null); + + /** CohortsRange endOffset */ + endOffset?: (number|null); } - /** Represents an EmptyFilter. */ - class EmptyFilter implements IEmptyFilter { + /** Represents a CohortsRange. */ + class CohortsRange implements ICohortsRange { /** - * Constructs a new EmptyFilter. + * Constructs a new CohortsRange. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.IEmptyFilter); + constructor(properties?: google.analytics.data.v1alpha.ICohortsRange); + + /** CohortsRange granularity. */ + public granularity: (google.analytics.data.v1alpha.CohortsRange.Granularity|keyof typeof google.analytics.data.v1alpha.CohortsRange.Granularity); + + /** CohortsRange startOffset. */ + public startOffset: number; + + /** CohortsRange endOffset. */ + public endOffset: number; /** - * Creates a new EmptyFilter instance using the specified properties. + * Creates a new CohortsRange instance using the specified properties. * @param [properties] Properties to set - * @returns EmptyFilter instance + * @returns CohortsRange instance */ - public static create(properties?: google.analytics.data.v1alpha.IEmptyFilter): google.analytics.data.v1alpha.EmptyFilter; + public static create(properties?: google.analytics.data.v1alpha.ICohortsRange): google.analytics.data.v1alpha.CohortsRange; /** - * Encodes the specified EmptyFilter message. Does not implicitly {@link google.analytics.data.v1alpha.EmptyFilter.verify|verify} messages. - * @param message EmptyFilter message or plain object to encode + * Encodes the specified CohortsRange message. Does not implicitly {@link google.analytics.data.v1alpha.CohortsRange.verify|verify} messages. + * @param message CohortsRange message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.IEmptyFilter, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.ICohortsRange, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified EmptyFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.EmptyFilter.verify|verify} messages. - * @param message EmptyFilter message or plain object to encode + * Encodes the specified CohortsRange message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.CohortsRange.verify|verify} messages. + * @param message CohortsRange message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IEmptyFilter, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.ICohortsRange, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes an EmptyFilter message from the specified reader or buffer. + * Decodes a CohortsRange message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns EmptyFilter + * @returns CohortsRange * @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.analytics.data.v1alpha.EmptyFilter; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.CohortsRange; /** - * Decodes an EmptyFilter message from the specified reader or buffer, length delimited. + * Decodes a CohortsRange message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns EmptyFilter + * @returns CohortsRange * @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.analytics.data.v1alpha.EmptyFilter; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.CohortsRange; /** - * Verifies an EmptyFilter message. + * Verifies a CohortsRange 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 EmptyFilter message from a plain object. Also converts values to their respective internal types. + * Creates a CohortsRange message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns EmptyFilter + * @returns CohortsRange */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.EmptyFilter; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.CohortsRange; /** - * Creates a plain object from an EmptyFilter message. Also converts values to other types if specified. - * @param message EmptyFilter + * Creates a plain object from a CohortsRange message. Also converts values to other types if specified. + * @param message CohortsRange * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.EmptyFilter, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.CohortsRange, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this EmptyFilter to JSON. + * Converts this CohortsRange to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for EmptyFilter + * Gets the default type url for CohortsRange * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a NumericValue. */ - interface INumericValue { + namespace CohortsRange { - /** NumericValue int64Value */ - int64Value?: (number|Long|string|null); + /** Granularity enum. */ + enum Granularity { + GRANULARITY_UNSPECIFIED = 0, + DAILY = 1, + WEEKLY = 2, + MONTHLY = 3 + } + } - /** NumericValue doubleValue */ - doubleValue?: (number|null); + /** Properties of a CohortReportSettings. */ + interface ICohortReportSettings { + + /** CohortReportSettings accumulate */ + accumulate?: (boolean|null); } - /** Represents a NumericValue. */ - class NumericValue implements INumericValue { + /** Represents a CohortReportSettings. */ + class CohortReportSettings implements ICohortReportSettings { /** - * Constructs a new NumericValue. + * Constructs a new CohortReportSettings. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.INumericValue); - - /** NumericValue int64Value. */ - public int64Value?: (number|Long|string|null); - - /** NumericValue doubleValue. */ - public doubleValue?: (number|null); + constructor(properties?: google.analytics.data.v1alpha.ICohortReportSettings); - /** NumericValue oneValue. */ - public oneValue?: ("int64Value"|"doubleValue"); + /** CohortReportSettings accumulate. */ + public accumulate: boolean; /** - * Creates a new NumericValue instance using the specified properties. + * Creates a new CohortReportSettings instance using the specified properties. * @param [properties] Properties to set - * @returns NumericValue instance + * @returns CohortReportSettings instance */ - public static create(properties?: google.analytics.data.v1alpha.INumericValue): google.analytics.data.v1alpha.NumericValue; + public static create(properties?: google.analytics.data.v1alpha.ICohortReportSettings): google.analytics.data.v1alpha.CohortReportSettings; /** - * Encodes the specified NumericValue message. Does not implicitly {@link google.analytics.data.v1alpha.NumericValue.verify|verify} messages. - * @param message NumericValue message or plain object to encode + * Encodes the specified CohortReportSettings message. Does not implicitly {@link google.analytics.data.v1alpha.CohortReportSettings.verify|verify} messages. + * @param message CohortReportSettings message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.INumericValue, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.ICohortReportSettings, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified NumericValue message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.NumericValue.verify|verify} messages. - * @param message NumericValue message or plain object to encode + * Encodes the specified CohortReportSettings message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.CohortReportSettings.verify|verify} messages. + * @param message CohortReportSettings message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.INumericValue, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.ICohortReportSettings, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a NumericValue message from the specified reader or buffer. + * Decodes a CohortReportSettings message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns NumericValue + * @returns CohortReportSettings * @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.analytics.data.v1alpha.NumericValue; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.CohortReportSettings; /** - * Decodes a NumericValue message from the specified reader or buffer, length delimited. + * Decodes a CohortReportSettings message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns NumericValue + * @returns CohortReportSettings * @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.analytics.data.v1alpha.NumericValue; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.CohortReportSettings; /** - * Verifies a NumericValue message. + * Verifies a CohortReportSettings 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 NumericValue message from a plain object. Also converts values to their respective internal types. + * Creates a CohortReportSettings message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns NumericValue + * @returns CohortReportSettings */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.NumericValue; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.CohortReportSettings; /** - * Creates a plain object from a NumericValue message. Also converts values to other types if specified. - * @param message NumericValue + * Creates a plain object from a CohortReportSettings message. Also converts values to other types if specified. + * @param message CohortReportSettings * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.NumericValue, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.CohortReportSettings, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this NumericValue to JSON. + * Converts this CohortReportSettings to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for NumericValue + * Gets the default type url for CohortReportSettings * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a CohortSpec. */ - interface ICohortSpec { + /** Section enum. */ + enum Section { + SECTION_UNSPECIFIED = 0, + SECTION_REPORT = 1, + SECTION_ADVERTISING = 2 + } - /** CohortSpec cohorts */ - cohorts?: (google.analytics.data.v1alpha.ICohort[]|null); + /** Properties of a ResponseMetaData. */ + interface IResponseMetaData { - /** CohortSpec cohortsRange */ - cohortsRange?: (google.analytics.data.v1alpha.ICohortsRange|null); + /** ResponseMetaData dataLossFromOtherRow */ + dataLossFromOtherRow?: (boolean|null); - /** CohortSpec cohortReportSettings */ - cohortReportSettings?: (google.analytics.data.v1alpha.ICohortReportSettings|null); + /** ResponseMetaData schemaRestrictionResponse */ + schemaRestrictionResponse?: (google.analytics.data.v1alpha.ResponseMetaData.ISchemaRestrictionResponse|null); + + /** ResponseMetaData currencyCode */ + currencyCode?: (string|null); + + /** ResponseMetaData timeZone */ + timeZone?: (string|null); + + /** ResponseMetaData emptyReason */ + emptyReason?: (string|null); + + /** ResponseMetaData subjectToThresholding */ + subjectToThresholding?: (boolean|null); + + /** ResponseMetaData samplingMetadatas */ + samplingMetadatas?: (google.analytics.data.v1alpha.ISamplingMetadata[]|null); + + /** ResponseMetaData section */ + section?: (google.analytics.data.v1alpha.Section|keyof typeof google.analytics.data.v1alpha.Section|null); } - /** Represents a CohortSpec. */ - class CohortSpec implements ICohortSpec { + /** Represents a ResponseMetaData. */ + class ResponseMetaData implements IResponseMetaData { /** - * Constructs a new CohortSpec. + * Constructs a new ResponseMetaData. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.ICohortSpec); + constructor(properties?: google.analytics.data.v1alpha.IResponseMetaData); - /** CohortSpec cohorts. */ - public cohorts: google.analytics.data.v1alpha.ICohort[]; + /** ResponseMetaData dataLossFromOtherRow. */ + public dataLossFromOtherRow: boolean; + + /** ResponseMetaData schemaRestrictionResponse. */ + public schemaRestrictionResponse?: (google.analytics.data.v1alpha.ResponseMetaData.ISchemaRestrictionResponse|null); + + /** ResponseMetaData currencyCode. */ + public currencyCode?: (string|null); + + /** ResponseMetaData timeZone. */ + public timeZone?: (string|null); + + /** ResponseMetaData emptyReason. */ + public emptyReason?: (string|null); + + /** ResponseMetaData subjectToThresholding. */ + public subjectToThresholding?: (boolean|null); - /** CohortSpec cohortsRange. */ - public cohortsRange?: (google.analytics.data.v1alpha.ICohortsRange|null); + /** ResponseMetaData samplingMetadatas. */ + public samplingMetadatas: google.analytics.data.v1alpha.ISamplingMetadata[]; - /** CohortSpec cohortReportSettings. */ - public cohortReportSettings?: (google.analytics.data.v1alpha.ICohortReportSettings|null); + /** ResponseMetaData section. */ + public section: (google.analytics.data.v1alpha.Section|keyof typeof google.analytics.data.v1alpha.Section); /** - * Creates a new CohortSpec instance using the specified properties. + * Creates a new ResponseMetaData instance using the specified properties. * @param [properties] Properties to set - * @returns CohortSpec instance + * @returns ResponseMetaData instance */ - public static create(properties?: google.analytics.data.v1alpha.ICohortSpec): google.analytics.data.v1alpha.CohortSpec; + public static create(properties?: google.analytics.data.v1alpha.IResponseMetaData): google.analytics.data.v1alpha.ResponseMetaData; /** - * Encodes the specified CohortSpec message. Does not implicitly {@link google.analytics.data.v1alpha.CohortSpec.verify|verify} messages. - * @param message CohortSpec message or plain object to encode + * Encodes the specified ResponseMetaData message. Does not implicitly {@link google.analytics.data.v1alpha.ResponseMetaData.verify|verify} messages. + * @param message ResponseMetaData message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.ICohortSpec, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IResponseMetaData, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified CohortSpec message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.CohortSpec.verify|verify} messages. - * @param message CohortSpec message or plain object to encode + * Encodes the specified ResponseMetaData message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.ResponseMetaData.verify|verify} messages. + * @param message ResponseMetaData message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.ICohortSpec, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IResponseMetaData, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a CohortSpec message from the specified reader or buffer. + * Decodes a ResponseMetaData message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns CohortSpec + * @returns ResponseMetaData * @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.analytics.data.v1alpha.CohortSpec; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.ResponseMetaData; /** - * Decodes a CohortSpec message from the specified reader or buffer, length delimited. + * Decodes a ResponseMetaData message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns CohortSpec + * @returns ResponseMetaData * @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.analytics.data.v1alpha.CohortSpec; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.ResponseMetaData; /** - * Verifies a CohortSpec message. + * Verifies a ResponseMetaData 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 CohortSpec message from a plain object. Also converts values to their respective internal types. + * Creates a ResponseMetaData message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns CohortSpec + * @returns ResponseMetaData */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.CohortSpec; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.ResponseMetaData; /** - * Creates a plain object from a CohortSpec message. Also converts values to other types if specified. - * @param message CohortSpec + * Creates a plain object from a ResponseMetaData message. Also converts values to other types if specified. + * @param message ResponseMetaData * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.CohortSpec, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.ResponseMetaData, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this CohortSpec to JSON. + * Converts this ResponseMetaData to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; - /** - * Gets the default type url for CohortSpec - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; + /** + * Gets the default type url for ResponseMetaData + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + namespace ResponseMetaData { + + /** Properties of a SchemaRestrictionResponse. */ + interface ISchemaRestrictionResponse { + + /** SchemaRestrictionResponse activeMetricRestrictions */ + activeMetricRestrictions?: (google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.IActiveMetricRestriction[]|null); + } + + /** Represents a SchemaRestrictionResponse. */ + class SchemaRestrictionResponse implements ISchemaRestrictionResponse { + + /** + * Constructs a new SchemaRestrictionResponse. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1alpha.ResponseMetaData.ISchemaRestrictionResponse); + + /** SchemaRestrictionResponse activeMetricRestrictions. */ + public activeMetricRestrictions: google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.IActiveMetricRestriction[]; + + /** + * Creates a new SchemaRestrictionResponse instance using the specified properties. + * @param [properties] Properties to set + * @returns SchemaRestrictionResponse instance + */ + public static create(properties?: google.analytics.data.v1alpha.ResponseMetaData.ISchemaRestrictionResponse): google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse; + + /** + * Encodes the specified SchemaRestrictionResponse message. Does not implicitly {@link google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.verify|verify} messages. + * @param message SchemaRestrictionResponse message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1alpha.ResponseMetaData.ISchemaRestrictionResponse, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified SchemaRestrictionResponse message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.verify|verify} messages. + * @param message SchemaRestrictionResponse message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1alpha.ResponseMetaData.ISchemaRestrictionResponse, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a SchemaRestrictionResponse message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns SchemaRestrictionResponse + * @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.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse; + + /** + * Decodes a SchemaRestrictionResponse message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns SchemaRestrictionResponse + * @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.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse; + + /** + * Verifies a SchemaRestrictionResponse 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 SchemaRestrictionResponse message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns SchemaRestrictionResponse + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse; + + /** + * Creates a plain object from a SchemaRestrictionResponse message. Also converts values to other types if specified. + * @param message SchemaRestrictionResponse + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this SchemaRestrictionResponse to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for SchemaRestrictionResponse + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + namespace SchemaRestrictionResponse { + + /** Properties of an ActiveMetricRestriction. */ + interface IActiveMetricRestriction { + + /** ActiveMetricRestriction metricName */ + metricName?: (string|null); + + /** ActiveMetricRestriction restrictedMetricTypes */ + restrictedMetricTypes?: (google.analytics.data.v1alpha.RestrictedMetricType[]|null); + } + + /** Represents an ActiveMetricRestriction. */ + class ActiveMetricRestriction implements IActiveMetricRestriction { + + /** + * Constructs a new ActiveMetricRestriction. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.IActiveMetricRestriction); + + /** ActiveMetricRestriction metricName. */ + public metricName?: (string|null); + + /** ActiveMetricRestriction restrictedMetricTypes. */ + public restrictedMetricTypes: google.analytics.data.v1alpha.RestrictedMetricType[]; + + /** + * Creates a new ActiveMetricRestriction instance using the specified properties. + * @param [properties] Properties to set + * @returns ActiveMetricRestriction instance + */ + public static create(properties?: google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.IActiveMetricRestriction): google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction; + + /** + * Encodes the specified ActiveMetricRestriction message. Does not implicitly {@link google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction.verify|verify} messages. + * @param message ActiveMetricRestriction message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.IActiveMetricRestriction, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ActiveMetricRestriction message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction.verify|verify} messages. + * @param message ActiveMetricRestriction message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.IActiveMetricRestriction, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an ActiveMetricRestriction message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ActiveMetricRestriction + * @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.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction; + + /** + * Decodes an ActiveMetricRestriction message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ActiveMetricRestriction + * @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.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction; + + /** + * Verifies an ActiveMetricRestriction 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 ActiveMetricRestriction message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ActiveMetricRestriction + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction; + + /** + * Creates a plain object from an ActiveMetricRestriction message. Also converts values to other types if specified. + * @param message ActiveMetricRestriction + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ActiveMetricRestriction to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for ActiveMetricRestriction + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + } } - /** Properties of a Cohort. */ - interface ICohort { + /** Properties of a DimensionHeader. */ + interface IDimensionHeader { - /** Cohort name */ + /** DimensionHeader name */ name?: (string|null); - - /** Cohort dimension */ - dimension?: (string|null); - - /** Cohort dateRange */ - dateRange?: (google.analytics.data.v1alpha.IDateRange|null); } - /** Represents a Cohort. */ - class Cohort implements ICohort { + /** Represents a DimensionHeader. */ + class DimensionHeader implements IDimensionHeader { /** - * Constructs a new Cohort. + * Constructs a new DimensionHeader. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.ICohort); + constructor(properties?: google.analytics.data.v1alpha.IDimensionHeader); - /** Cohort name. */ + /** DimensionHeader name. */ public name: string; - /** Cohort dimension. */ - public dimension: string; - - /** Cohort dateRange. */ - public dateRange?: (google.analytics.data.v1alpha.IDateRange|null); - /** - * Creates a new Cohort instance using the specified properties. + * Creates a new DimensionHeader instance using the specified properties. * @param [properties] Properties to set - * @returns Cohort instance + * @returns DimensionHeader instance */ - public static create(properties?: google.analytics.data.v1alpha.ICohort): google.analytics.data.v1alpha.Cohort; + public static create(properties?: google.analytics.data.v1alpha.IDimensionHeader): google.analytics.data.v1alpha.DimensionHeader; /** - * Encodes the specified Cohort message. Does not implicitly {@link google.analytics.data.v1alpha.Cohort.verify|verify} messages. - * @param message Cohort message or plain object to encode + * Encodes the specified DimensionHeader message. Does not implicitly {@link google.analytics.data.v1alpha.DimensionHeader.verify|verify} messages. + * @param message DimensionHeader message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.ICohort, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IDimensionHeader, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified Cohort message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.Cohort.verify|verify} messages. - * @param message Cohort message or plain object to encode + * Encodes the specified DimensionHeader message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.DimensionHeader.verify|verify} messages. + * @param message DimensionHeader message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.ICohort, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IDimensionHeader, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a Cohort message from the specified reader or buffer. + * Decodes a DimensionHeader message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns Cohort + * @returns DimensionHeader * @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.analytics.data.v1alpha.Cohort; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.DimensionHeader; /** - * Decodes a Cohort message from the specified reader or buffer, length delimited. + * Decodes a DimensionHeader message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns Cohort + * @returns DimensionHeader * @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.analytics.data.v1alpha.Cohort; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.DimensionHeader; /** - * Verifies a Cohort message. + * Verifies a DimensionHeader 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 Cohort message from a plain object. Also converts values to their respective internal types. + * Creates a DimensionHeader message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns Cohort + * @returns DimensionHeader */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.Cohort; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.DimensionHeader; /** - * Creates a plain object from a Cohort message. Also converts values to other types if specified. - * @param message Cohort + * Creates a plain object from a DimensionHeader message. Also converts values to other types if specified. + * @param message DimensionHeader * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.Cohort, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.DimensionHeader, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this Cohort to JSON. + * Converts this DimensionHeader to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for Cohort + * Gets the default type url for DimensionHeader * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a CohortsRange. */ - interface ICohortsRange { - - /** CohortsRange granularity */ - granularity?: (google.analytics.data.v1alpha.CohortsRange.Granularity|keyof typeof google.analytics.data.v1alpha.CohortsRange.Granularity|null); + /** Properties of a MetricHeader. */ + interface IMetricHeader { - /** CohortsRange startOffset */ - startOffset?: (number|null); + /** MetricHeader name */ + name?: (string|null); - /** CohortsRange endOffset */ - endOffset?: (number|null); + /** MetricHeader type */ + type?: (google.analytics.data.v1alpha.MetricType|keyof typeof google.analytics.data.v1alpha.MetricType|null); } - /** Represents a CohortsRange. */ - class CohortsRange implements ICohortsRange { + /** Represents a MetricHeader. */ + class MetricHeader implements IMetricHeader { /** - * Constructs a new CohortsRange. + * Constructs a new MetricHeader. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.ICohortsRange); - - /** CohortsRange granularity. */ - public granularity: (google.analytics.data.v1alpha.CohortsRange.Granularity|keyof typeof google.analytics.data.v1alpha.CohortsRange.Granularity); + constructor(properties?: google.analytics.data.v1alpha.IMetricHeader); - /** CohortsRange startOffset. */ - public startOffset: number; + /** MetricHeader name. */ + public name: string; - /** CohortsRange endOffset. */ - public endOffset: number; + /** MetricHeader type. */ + public type: (google.analytics.data.v1alpha.MetricType|keyof typeof google.analytics.data.v1alpha.MetricType); /** - * Creates a new CohortsRange instance using the specified properties. + * Creates a new MetricHeader instance using the specified properties. * @param [properties] Properties to set - * @returns CohortsRange instance + * @returns MetricHeader instance */ - public static create(properties?: google.analytics.data.v1alpha.ICohortsRange): google.analytics.data.v1alpha.CohortsRange; + public static create(properties?: google.analytics.data.v1alpha.IMetricHeader): google.analytics.data.v1alpha.MetricHeader; /** - * Encodes the specified CohortsRange message. Does not implicitly {@link google.analytics.data.v1alpha.CohortsRange.verify|verify} messages. - * @param message CohortsRange message or plain object to encode + * Encodes the specified MetricHeader message. Does not implicitly {@link google.analytics.data.v1alpha.MetricHeader.verify|verify} messages. + * @param message MetricHeader message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.ICohortsRange, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IMetricHeader, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified CohortsRange message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.CohortsRange.verify|verify} messages. - * @param message CohortsRange message or plain object to encode + * Encodes the specified MetricHeader message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.MetricHeader.verify|verify} messages. + * @param message MetricHeader message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.ICohortsRange, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IMetricHeader, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a CohortsRange message from the specified reader or buffer. + * Decodes a MetricHeader message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns CohortsRange + * @returns MetricHeader * @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.analytics.data.v1alpha.CohortsRange; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.MetricHeader; /** - * Decodes a CohortsRange message from the specified reader or buffer, length delimited. + * Decodes a MetricHeader message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns CohortsRange + * @returns MetricHeader * @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.analytics.data.v1alpha.CohortsRange; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.MetricHeader; /** - * Verifies a CohortsRange message. + * Verifies a MetricHeader 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 CohortsRange message from a plain object. Also converts values to their respective internal types. + * Creates a MetricHeader message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns CohortsRange + * @returns MetricHeader */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.CohortsRange; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.MetricHeader; /** - * Creates a plain object from a CohortsRange message. Also converts values to other types if specified. - * @param message CohortsRange + * Creates a plain object from a MetricHeader message. Also converts values to other types if specified. + * @param message MetricHeader * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.CohortsRange, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.MetricHeader, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this CohortsRange to JSON. + * Converts this MetricHeader to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for CohortsRange + * Gets the default type url for MetricHeader * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - namespace CohortsRange { - - /** Granularity enum. */ - enum Granularity { - GRANULARITY_UNSPECIFIED = 0, - DAILY = 1, - WEEKLY = 2, - MONTHLY = 3 - } - } + /** Properties of a Row. */ + interface IRow { - /** Properties of a CohortReportSettings. */ - interface ICohortReportSettings { + /** Row dimensionValues */ + dimensionValues?: (google.analytics.data.v1alpha.IDimensionValue[]|null); - /** CohortReportSettings accumulate */ - accumulate?: (boolean|null); + /** Row metricValues */ + metricValues?: (google.analytics.data.v1alpha.IMetricValue[]|null); } - /** Represents a CohortReportSettings. */ - class CohortReportSettings implements ICohortReportSettings { + /** Represents a Row. */ + class Row implements IRow { /** - * Constructs a new CohortReportSettings. + * Constructs a new Row. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.ICohortReportSettings); + constructor(properties?: google.analytics.data.v1alpha.IRow); - /** CohortReportSettings accumulate. */ - public accumulate: boolean; + /** Row dimensionValues. */ + public dimensionValues: google.analytics.data.v1alpha.IDimensionValue[]; + + /** Row metricValues. */ + public metricValues: google.analytics.data.v1alpha.IMetricValue[]; /** - * Creates a new CohortReportSettings instance using the specified properties. + * Creates a new Row instance using the specified properties. * @param [properties] Properties to set - * @returns CohortReportSettings instance + * @returns Row instance */ - public static create(properties?: google.analytics.data.v1alpha.ICohortReportSettings): google.analytics.data.v1alpha.CohortReportSettings; + public static create(properties?: google.analytics.data.v1alpha.IRow): google.analytics.data.v1alpha.Row; /** - * Encodes the specified CohortReportSettings message. Does not implicitly {@link google.analytics.data.v1alpha.CohortReportSettings.verify|verify} messages. - * @param message CohortReportSettings message or plain object to encode + * Encodes the specified Row message. Does not implicitly {@link google.analytics.data.v1alpha.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.analytics.data.v1alpha.ICohortReportSettings, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IRow, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified CohortReportSettings message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.CohortReportSettings.verify|verify} messages. - * @param message CohortReportSettings message or plain object to encode + * Encodes the specified Row message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.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.analytics.data.v1alpha.ICohortReportSettings, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IRow, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a CohortReportSettings message from the specified reader or buffer. + * 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 CohortReportSettings + * @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.analytics.data.v1alpha.CohortReportSettings; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.Row; /** - * Decodes a CohortReportSettings message from the specified reader or buffer, length delimited. + * Decodes a Row message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns CohortReportSettings + * @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.analytics.data.v1alpha.CohortReportSettings; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.Row; /** - * Verifies a CohortReportSettings message. + * 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 CohortReportSettings message from a plain object. Also converts values to their respective internal types. + * Creates a Row message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns CohortReportSettings + * @returns Row */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.CohortReportSettings; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.Row; /** - * Creates a plain object from a CohortReportSettings message. Also converts values to other types if specified. - * @param message CohortReportSettings + * 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.analytics.data.v1alpha.CohortReportSettings, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.Row, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this CohortReportSettings to JSON. + * Converts this Row to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for CohortReportSettings + * 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 ResponseMetaData. */ - interface IResponseMetaData { - - /** ResponseMetaData dataLossFromOtherRow */ - dataLossFromOtherRow?: (boolean|null); - - /** ResponseMetaData schemaRestrictionResponse */ - schemaRestrictionResponse?: (google.analytics.data.v1alpha.ResponseMetaData.ISchemaRestrictionResponse|null); - - /** ResponseMetaData currencyCode */ - currencyCode?: (string|null); - - /** ResponseMetaData timeZone */ - timeZone?: (string|null); - - /** ResponseMetaData emptyReason */ - emptyReason?: (string|null); - - /** ResponseMetaData subjectToThresholding */ - subjectToThresholding?: (boolean|null); + /** Properties of a DimensionValue. */ + interface IDimensionValue { - /** ResponseMetaData samplingMetadatas */ - samplingMetadatas?: (google.analytics.data.v1alpha.ISamplingMetadata[]|null); + /** DimensionValue value */ + value?: (string|null); } - /** Represents a ResponseMetaData. */ - class ResponseMetaData implements IResponseMetaData { + /** Represents a DimensionValue. */ + class DimensionValue implements IDimensionValue { /** - * Constructs a new ResponseMetaData. + * Constructs a new DimensionValue. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.IResponseMetaData); - - /** ResponseMetaData dataLossFromOtherRow. */ - public dataLossFromOtherRow: boolean; - - /** ResponseMetaData schemaRestrictionResponse. */ - public schemaRestrictionResponse?: (google.analytics.data.v1alpha.ResponseMetaData.ISchemaRestrictionResponse|null); - - /** ResponseMetaData currencyCode. */ - public currencyCode?: (string|null); - - /** ResponseMetaData timeZone. */ - public timeZone?: (string|null); - - /** ResponseMetaData emptyReason. */ - public emptyReason?: (string|null); + constructor(properties?: google.analytics.data.v1alpha.IDimensionValue); - /** ResponseMetaData subjectToThresholding. */ - public subjectToThresholding?: (boolean|null); + /** DimensionValue value. */ + public value?: (string|null); - /** ResponseMetaData samplingMetadatas. */ - public samplingMetadatas: google.analytics.data.v1alpha.ISamplingMetadata[]; + /** DimensionValue oneValue. */ + public oneValue?: "value"; /** - * Creates a new ResponseMetaData instance using the specified properties. + * Creates a new DimensionValue instance using the specified properties. * @param [properties] Properties to set - * @returns ResponseMetaData instance + * @returns DimensionValue instance */ - public static create(properties?: google.analytics.data.v1alpha.IResponseMetaData): google.analytics.data.v1alpha.ResponseMetaData; + public static create(properties?: google.analytics.data.v1alpha.IDimensionValue): google.analytics.data.v1alpha.DimensionValue; /** - * Encodes the specified ResponseMetaData message. Does not implicitly {@link google.analytics.data.v1alpha.ResponseMetaData.verify|verify} messages. - * @param message ResponseMetaData message or plain object to encode + * Encodes the specified DimensionValue message. Does not implicitly {@link google.analytics.data.v1alpha.DimensionValue.verify|verify} messages. + * @param message DimensionValue message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.IResponseMetaData, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IDimensionValue, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified ResponseMetaData message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.ResponseMetaData.verify|verify} messages. - * @param message ResponseMetaData message or plain object to encode + * Encodes the specified DimensionValue message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.DimensionValue.verify|verify} messages. + * @param message DimensionValue message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IResponseMetaData, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IDimensionValue, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a ResponseMetaData message from the specified reader or buffer. + * Decodes a DimensionValue message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns ResponseMetaData + * @returns DimensionValue * @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.analytics.data.v1alpha.ResponseMetaData; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.DimensionValue; /** - * Decodes a ResponseMetaData message from the specified reader or buffer, length delimited. + * Decodes a DimensionValue message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns ResponseMetaData + * @returns DimensionValue * @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.analytics.data.v1alpha.ResponseMetaData; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.DimensionValue; /** - * Verifies a ResponseMetaData message. + * Verifies a DimensionValue 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 ResponseMetaData message from a plain object. Also converts values to their respective internal types. + * Creates a DimensionValue message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns ResponseMetaData + * @returns DimensionValue */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.ResponseMetaData; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.DimensionValue; /** - * Creates a plain object from a ResponseMetaData message. Also converts values to other types if specified. - * @param message ResponseMetaData + * Creates a plain object from a DimensionValue message. Also converts values to other types if specified. + * @param message DimensionValue * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.ResponseMetaData, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.DimensionValue, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this ResponseMetaData to JSON. + * Converts this DimensionValue to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for ResponseMetaData + * Gets the default type url for DimensionValue * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - namespace ResponseMetaData { - - /** Properties of a SchemaRestrictionResponse. */ - interface ISchemaRestrictionResponse { - - /** SchemaRestrictionResponse activeMetricRestrictions */ - activeMetricRestrictions?: (google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.IActiveMetricRestriction[]|null); - } - - /** Represents a SchemaRestrictionResponse. */ - class SchemaRestrictionResponse implements ISchemaRestrictionResponse { - - /** - * Constructs a new SchemaRestrictionResponse. - * @param [properties] Properties to set - */ - constructor(properties?: google.analytics.data.v1alpha.ResponseMetaData.ISchemaRestrictionResponse); - - /** SchemaRestrictionResponse activeMetricRestrictions. */ - public activeMetricRestrictions: google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.IActiveMetricRestriction[]; - - /** - * Creates a new SchemaRestrictionResponse instance using the specified properties. - * @param [properties] Properties to set - * @returns SchemaRestrictionResponse instance - */ - public static create(properties?: google.analytics.data.v1alpha.ResponseMetaData.ISchemaRestrictionResponse): google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse; - - /** - * Encodes the specified SchemaRestrictionResponse message. Does not implicitly {@link google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.verify|verify} messages. - * @param message SchemaRestrictionResponse message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.analytics.data.v1alpha.ResponseMetaData.ISchemaRestrictionResponse, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified SchemaRestrictionResponse message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.verify|verify} messages. - * @param message SchemaRestrictionResponse message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.analytics.data.v1alpha.ResponseMetaData.ISchemaRestrictionResponse, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a SchemaRestrictionResponse message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns SchemaRestrictionResponse - * @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.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse; - - /** - * Decodes a SchemaRestrictionResponse message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns SchemaRestrictionResponse - * @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.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse; - - /** - * Verifies a SchemaRestrictionResponse 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 SchemaRestrictionResponse message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns SchemaRestrictionResponse - */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse; - - /** - * Creates a plain object from a SchemaRestrictionResponse message. Also converts values to other types if specified. - * @param message SchemaRestrictionResponse - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this SchemaRestrictionResponse to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; + /** Properties of a MetricValue. */ + interface IMetricValue { - /** - * Gets the default type url for SchemaRestrictionResponse - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } + /** MetricValue value */ + value?: (string|null); + } - namespace SchemaRestrictionResponse { + /** Represents a MetricValue. */ + class MetricValue implements IMetricValue { - /** Properties of an ActiveMetricRestriction. */ - interface IActiveMetricRestriction { + /** + * Constructs a new MetricValue. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1alpha.IMetricValue); - /** ActiveMetricRestriction metricName */ - metricName?: (string|null); + /** MetricValue value. */ + public value?: (string|null); - /** ActiveMetricRestriction restrictedMetricTypes */ - restrictedMetricTypes?: (google.analytics.data.v1alpha.RestrictedMetricType[]|null); - } + /** MetricValue oneValue. */ + public oneValue?: "value"; - /** Represents an ActiveMetricRestriction. */ - class ActiveMetricRestriction implements IActiveMetricRestriction { + /** + * Creates a new MetricValue instance using the specified properties. + * @param [properties] Properties to set + * @returns MetricValue instance + */ + public static create(properties?: google.analytics.data.v1alpha.IMetricValue): google.analytics.data.v1alpha.MetricValue; - /** - * Constructs a new ActiveMetricRestriction. - * @param [properties] Properties to set - */ - constructor(properties?: google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.IActiveMetricRestriction); + /** + * Encodes the specified MetricValue message. Does not implicitly {@link google.analytics.data.v1alpha.MetricValue.verify|verify} messages. + * @param message MetricValue message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1alpha.IMetricValue, writer?: $protobuf.Writer): $protobuf.Writer; - /** ActiveMetricRestriction metricName. */ - public metricName?: (string|null); + /** + * Encodes the specified MetricValue message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.MetricValue.verify|verify} messages. + * @param message MetricValue message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1alpha.IMetricValue, writer?: $protobuf.Writer): $protobuf.Writer; - /** ActiveMetricRestriction restrictedMetricTypes. */ - public restrictedMetricTypes: google.analytics.data.v1alpha.RestrictedMetricType[]; + /** + * Decodes a MetricValue message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns MetricValue + * @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.analytics.data.v1alpha.MetricValue; - /** - * Creates a new ActiveMetricRestriction instance using the specified properties. - * @param [properties] Properties to set - * @returns ActiveMetricRestriction instance - */ - public static create(properties?: google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.IActiveMetricRestriction): google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction; + /** + * Decodes a MetricValue message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns MetricValue + * @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.analytics.data.v1alpha.MetricValue; - /** - * Encodes the specified ActiveMetricRestriction message. Does not implicitly {@link google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction.verify|verify} messages. - * @param message ActiveMetricRestriction message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.IActiveMetricRestriction, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Verifies a MetricValue message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** - * Encodes the specified ActiveMetricRestriction message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction.verify|verify} messages. - * @param message ActiveMetricRestriction message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.IActiveMetricRestriction, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Creates a MetricValue message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns MetricValue + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.MetricValue; - /** - * Decodes an ActiveMetricRestriction message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns ActiveMetricRestriction - * @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.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction; + /** + * Creates a plain object from a MetricValue message. Also converts values to other types if specified. + * @param message MetricValue + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1alpha.MetricValue, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** - * Decodes an ActiveMetricRestriction message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns ActiveMetricRestriction - * @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.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction; + /** + * Converts this MetricValue to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; - /** - * Verifies an ActiveMetricRestriction 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); + /** + * Gets the default type url for MetricValue + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } - /** - * Creates an ActiveMetricRestriction message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns ActiveMetricRestriction - */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction; + /** Properties of a PropertyQuota. */ + interface IPropertyQuota { - /** - * Creates a plain object from an ActiveMetricRestriction message. Also converts values to other types if specified. - * @param message ActiveMetricRestriction - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** PropertyQuota tokensPerDay */ + tokensPerDay?: (google.analytics.data.v1alpha.IQuotaStatus|null); - /** - * Converts this ActiveMetricRestriction to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; + /** PropertyQuota tokensPerHour */ + tokensPerHour?: (google.analytics.data.v1alpha.IQuotaStatus|null); - /** - * Gets the default type url for ActiveMetricRestriction - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } - } - } + /** PropertyQuota concurrentRequests */ + concurrentRequests?: (google.analytics.data.v1alpha.IQuotaStatus|null); - /** Properties of a DimensionHeader. */ - interface IDimensionHeader { + /** PropertyQuota serverErrorsPerProjectPerHour */ + serverErrorsPerProjectPerHour?: (google.analytics.data.v1alpha.IQuotaStatus|null); - /** DimensionHeader name */ - name?: (string|null); + /** PropertyQuota potentiallyThresholdedRequestsPerHour */ + potentiallyThresholdedRequestsPerHour?: (google.analytics.data.v1alpha.IQuotaStatus|null); + + /** PropertyQuota tokensPerProjectPerHour */ + tokensPerProjectPerHour?: (google.analytics.data.v1alpha.IQuotaStatus|null); } - /** Represents a DimensionHeader. */ - class DimensionHeader implements IDimensionHeader { + /** Represents a PropertyQuota. */ + class PropertyQuota implements IPropertyQuota { /** - * Constructs a new DimensionHeader. + * Constructs a new PropertyQuota. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.IDimensionHeader); + constructor(properties?: google.analytics.data.v1alpha.IPropertyQuota); - /** DimensionHeader name. */ - public name: string; + /** PropertyQuota tokensPerDay. */ + public tokensPerDay?: (google.analytics.data.v1alpha.IQuotaStatus|null); + + /** PropertyQuota tokensPerHour. */ + public tokensPerHour?: (google.analytics.data.v1alpha.IQuotaStatus|null); + + /** PropertyQuota concurrentRequests. */ + public concurrentRequests?: (google.analytics.data.v1alpha.IQuotaStatus|null); + + /** PropertyQuota serverErrorsPerProjectPerHour. */ + public serverErrorsPerProjectPerHour?: (google.analytics.data.v1alpha.IQuotaStatus|null); + + /** PropertyQuota potentiallyThresholdedRequestsPerHour. */ + public potentiallyThresholdedRequestsPerHour?: (google.analytics.data.v1alpha.IQuotaStatus|null); + + /** PropertyQuota tokensPerProjectPerHour. */ + public tokensPerProjectPerHour?: (google.analytics.data.v1alpha.IQuotaStatus|null); /** - * Creates a new DimensionHeader instance using the specified properties. + * Creates a new PropertyQuota instance using the specified properties. * @param [properties] Properties to set - * @returns DimensionHeader instance + * @returns PropertyQuota instance */ - public static create(properties?: google.analytics.data.v1alpha.IDimensionHeader): google.analytics.data.v1alpha.DimensionHeader; + public static create(properties?: google.analytics.data.v1alpha.IPropertyQuota): google.analytics.data.v1alpha.PropertyQuota; /** - * Encodes the specified DimensionHeader message. Does not implicitly {@link google.analytics.data.v1alpha.DimensionHeader.verify|verify} messages. - * @param message DimensionHeader message or plain object to encode + * Encodes the specified PropertyQuota message. Does not implicitly {@link google.analytics.data.v1alpha.PropertyQuota.verify|verify} messages. + * @param message PropertyQuota message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.IDimensionHeader, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IPropertyQuota, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified DimensionHeader message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.DimensionHeader.verify|verify} messages. - * @param message DimensionHeader message or plain object to encode + * Encodes the specified PropertyQuota message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.PropertyQuota.verify|verify} messages. + * @param message PropertyQuota message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IDimensionHeader, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IPropertyQuota, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a DimensionHeader message from the specified reader or buffer. + * Decodes a PropertyQuota message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns DimensionHeader + * @returns PropertyQuota * @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.analytics.data.v1alpha.DimensionHeader; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.PropertyQuota; /** - * Decodes a DimensionHeader message from the specified reader or buffer, length delimited. + * Decodes a PropertyQuota message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns DimensionHeader + * @returns PropertyQuota * @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.analytics.data.v1alpha.DimensionHeader; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.PropertyQuota; /** - * Verifies a DimensionHeader message. + * Verifies a PropertyQuota 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 DimensionHeader message from a plain object. Also converts values to their respective internal types. + * Creates a PropertyQuota message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns DimensionHeader + * @returns PropertyQuota */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.DimensionHeader; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.PropertyQuota; /** - * Creates a plain object from a DimensionHeader message. Also converts values to other types if specified. - * @param message DimensionHeader + * Creates a plain object from a PropertyQuota message. Also converts values to other types if specified. + * @param message PropertyQuota * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.DimensionHeader, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.PropertyQuota, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this DimensionHeader to JSON. + * Converts this PropertyQuota to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for DimensionHeader + * Gets the default type url for PropertyQuota * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a MetricHeader. */ - interface IMetricHeader { + /** Properties of a QuotaStatus. */ + interface IQuotaStatus { - /** MetricHeader name */ - name?: (string|null); + /** QuotaStatus consumed */ + consumed?: (number|null); - /** MetricHeader type */ - type?: (google.analytics.data.v1alpha.MetricType|keyof typeof google.analytics.data.v1alpha.MetricType|null); + /** QuotaStatus remaining */ + remaining?: (number|null); } - /** Represents a MetricHeader. */ - class MetricHeader implements IMetricHeader { + /** Represents a QuotaStatus. */ + class QuotaStatus implements IQuotaStatus { /** - * Constructs a new MetricHeader. + * Constructs a new QuotaStatus. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.IMetricHeader); + constructor(properties?: google.analytics.data.v1alpha.IQuotaStatus); - /** MetricHeader name. */ - public name: string; + /** QuotaStatus consumed. */ + public consumed: number; - /** MetricHeader type. */ - public type: (google.analytics.data.v1alpha.MetricType|keyof typeof google.analytics.data.v1alpha.MetricType); + /** QuotaStatus remaining. */ + public remaining: number; /** - * Creates a new MetricHeader instance using the specified properties. + * Creates a new QuotaStatus instance using the specified properties. * @param [properties] Properties to set - * @returns MetricHeader instance + * @returns QuotaStatus instance */ - public static create(properties?: google.analytics.data.v1alpha.IMetricHeader): google.analytics.data.v1alpha.MetricHeader; + public static create(properties?: google.analytics.data.v1alpha.IQuotaStatus): google.analytics.data.v1alpha.QuotaStatus; /** - * Encodes the specified MetricHeader message. Does not implicitly {@link google.analytics.data.v1alpha.MetricHeader.verify|verify} messages. - * @param message MetricHeader message or plain object to encode + * Encodes the specified QuotaStatus message. Does not implicitly {@link google.analytics.data.v1alpha.QuotaStatus.verify|verify} messages. + * @param message QuotaStatus message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.IMetricHeader, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IQuotaStatus, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified MetricHeader message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.MetricHeader.verify|verify} messages. - * @param message MetricHeader message or plain object to encode + * Encodes the specified QuotaStatus message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.QuotaStatus.verify|verify} messages. + * @param message QuotaStatus message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IMetricHeader, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IQuotaStatus, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a MetricHeader message from the specified reader or buffer. + * Decodes a QuotaStatus message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns MetricHeader + * @returns QuotaStatus * @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.analytics.data.v1alpha.MetricHeader; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.QuotaStatus; /** - * Decodes a MetricHeader message from the specified reader or buffer, length delimited. + * Decodes a QuotaStatus message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns MetricHeader + * @returns QuotaStatus * @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.analytics.data.v1alpha.MetricHeader; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.QuotaStatus; /** - * Verifies a MetricHeader message. + * Verifies a QuotaStatus 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 MetricHeader message from a plain object. Also converts values to their respective internal types. + * Creates a QuotaStatus message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns MetricHeader + * @returns QuotaStatus */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.MetricHeader; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.QuotaStatus; /** - * Creates a plain object from a MetricHeader message. Also converts values to other types if specified. - * @param message MetricHeader + * Creates a plain object from a QuotaStatus message. Also converts values to other types if specified. + * @param message QuotaStatus * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.MetricHeader, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.QuotaStatus, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this MetricHeader to JSON. + * Converts this QuotaStatus to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for MetricHeader + * Gets the default type url for QuotaStatus * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a Row. */ - interface IRow { + /** Properties of a FunnelBreakdown. */ + interface IFunnelBreakdown { - /** Row dimensionValues */ - dimensionValues?: (google.analytics.data.v1alpha.IDimensionValue[]|null); + /** FunnelBreakdown breakdownDimension */ + breakdownDimension?: (google.analytics.data.v1alpha.IDimension|null); - /** Row metricValues */ - metricValues?: (google.analytics.data.v1alpha.IMetricValue[]|null); + /** FunnelBreakdown limit */ + limit?: (number|Long|string|null); } - /** Represents a Row. */ - class Row implements IRow { + /** Represents a FunnelBreakdown. */ + class FunnelBreakdown implements IFunnelBreakdown { /** - * Constructs a new Row. + * Constructs a new FunnelBreakdown. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.IRow); + constructor(properties?: google.analytics.data.v1alpha.IFunnelBreakdown); - /** Row dimensionValues. */ - public dimensionValues: google.analytics.data.v1alpha.IDimensionValue[]; + /** FunnelBreakdown breakdownDimension. */ + public breakdownDimension?: (google.analytics.data.v1alpha.IDimension|null); - /** Row metricValues. */ - public metricValues: google.analytics.data.v1alpha.IMetricValue[]; + /** FunnelBreakdown limit. */ + public limit?: (number|Long|string|null); /** - * Creates a new Row instance using the specified properties. + * Creates a new FunnelBreakdown instance using the specified properties. * @param [properties] Properties to set - * @returns Row instance + * @returns FunnelBreakdown instance */ - public static create(properties?: google.analytics.data.v1alpha.IRow): google.analytics.data.v1alpha.Row; + public static create(properties?: google.analytics.data.v1alpha.IFunnelBreakdown): google.analytics.data.v1alpha.FunnelBreakdown; /** - * Encodes the specified Row message. Does not implicitly {@link google.analytics.data.v1alpha.Row.verify|verify} messages. - * @param message Row message or plain object to encode + * Encodes the specified FunnelBreakdown message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelBreakdown.verify|verify} messages. + * @param message FunnelBreakdown message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.IRow, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IFunnelBreakdown, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified Row message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.Row.verify|verify} messages. - * @param message Row message or plain object to encode + * Encodes the specified FunnelBreakdown message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelBreakdown.verify|verify} messages. + * @param message FunnelBreakdown message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IRow, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IFunnelBreakdown, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a Row message from the specified reader or buffer. + * Decodes a FunnelBreakdown message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns Row + * @returns FunnelBreakdown * @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.analytics.data.v1alpha.Row; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.FunnelBreakdown; /** - * Decodes a Row message from the specified reader or buffer, length delimited. + * Decodes a FunnelBreakdown message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns Row + * @returns FunnelBreakdown * @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.analytics.data.v1alpha.Row; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.FunnelBreakdown; /** - * Verifies a Row message. + * Verifies a FunnelBreakdown 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. + * Creates a FunnelBreakdown message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns Row + * @returns FunnelBreakdown */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.Row; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.FunnelBreakdown; /** - * Creates a plain object from a Row message. Also converts values to other types if specified. - * @param message Row + * Creates a plain object from a FunnelBreakdown message. Also converts values to other types if specified. + * @param message FunnelBreakdown * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.Row, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.FunnelBreakdown, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this Row to JSON. + * Converts this FunnelBreakdown to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for Row + * Gets the default type url for FunnelBreakdown * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a DimensionValue. */ - interface IDimensionValue { + /** Properties of a FunnelNextAction. */ + interface IFunnelNextAction { - /** DimensionValue value */ - value?: (string|null); + /** FunnelNextAction nextActionDimension */ + nextActionDimension?: (google.analytics.data.v1alpha.IDimension|null); + + /** FunnelNextAction limit */ + limit?: (number|Long|string|null); } - /** Represents a DimensionValue. */ - class DimensionValue implements IDimensionValue { + /** Represents a FunnelNextAction. */ + class FunnelNextAction implements IFunnelNextAction { /** - * Constructs a new DimensionValue. + * Constructs a new FunnelNextAction. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.IDimensionValue); + constructor(properties?: google.analytics.data.v1alpha.IFunnelNextAction); - /** DimensionValue value. */ - public value?: (string|null); + /** FunnelNextAction nextActionDimension. */ + public nextActionDimension?: (google.analytics.data.v1alpha.IDimension|null); - /** DimensionValue oneValue. */ - public oneValue?: "value"; + /** FunnelNextAction limit. */ + public limit?: (number|Long|string|null); /** - * Creates a new DimensionValue instance using the specified properties. + * Creates a new FunnelNextAction instance using the specified properties. * @param [properties] Properties to set - * @returns DimensionValue instance + * @returns FunnelNextAction instance */ - public static create(properties?: google.analytics.data.v1alpha.IDimensionValue): google.analytics.data.v1alpha.DimensionValue; + public static create(properties?: google.analytics.data.v1alpha.IFunnelNextAction): google.analytics.data.v1alpha.FunnelNextAction; /** - * Encodes the specified DimensionValue message. Does not implicitly {@link google.analytics.data.v1alpha.DimensionValue.verify|verify} messages. - * @param message DimensionValue message or plain object to encode + * Encodes the specified FunnelNextAction message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelNextAction.verify|verify} messages. + * @param message FunnelNextAction message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.IDimensionValue, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IFunnelNextAction, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified DimensionValue message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.DimensionValue.verify|verify} messages. - * @param message DimensionValue message or plain object to encode + * Encodes the specified FunnelNextAction message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelNextAction.verify|verify} messages. + * @param message FunnelNextAction message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IDimensionValue, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IFunnelNextAction, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a DimensionValue message from the specified reader or buffer. + * Decodes a FunnelNextAction message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns DimensionValue + * @returns FunnelNextAction * @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.analytics.data.v1alpha.DimensionValue; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.FunnelNextAction; /** - * Decodes a DimensionValue message from the specified reader or buffer, length delimited. + * Decodes a FunnelNextAction message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns DimensionValue + * @returns FunnelNextAction * @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.analytics.data.v1alpha.DimensionValue; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.FunnelNextAction; /** - * Verifies a DimensionValue message. + * Verifies a FunnelNextAction 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 DimensionValue message from a plain object. Also converts values to their respective internal types. + * Creates a FunnelNextAction message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns DimensionValue + * @returns FunnelNextAction */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.DimensionValue; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.FunnelNextAction; /** - * Creates a plain object from a DimensionValue message. Also converts values to other types if specified. - * @param message DimensionValue + * Creates a plain object from a FunnelNextAction message. Also converts values to other types if specified. + * @param message FunnelNextAction * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.DimensionValue, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.FunnelNextAction, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this DimensionValue to JSON. + * Converts this FunnelNextAction to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for DimensionValue + * Gets the default type url for FunnelNextAction * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a MetricValue. */ - interface IMetricValue { + /** Properties of a Funnel. */ + interface IFunnel { - /** MetricValue value */ - value?: (string|null); + /** Funnel isOpenFunnel */ + isOpenFunnel?: (boolean|null); + + /** Funnel steps */ + steps?: (google.analytics.data.v1alpha.IFunnelStep[]|null); } - /** Represents a MetricValue. */ - class MetricValue implements IMetricValue { + /** Represents a Funnel. */ + class Funnel implements IFunnel { /** - * Constructs a new MetricValue. + * Constructs a new Funnel. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.IMetricValue); + constructor(properties?: google.analytics.data.v1alpha.IFunnel); - /** MetricValue value. */ - public value?: (string|null); + /** Funnel isOpenFunnel. */ + public isOpenFunnel: boolean; - /** MetricValue oneValue. */ - public oneValue?: "value"; + /** Funnel steps. */ + public steps: google.analytics.data.v1alpha.IFunnelStep[]; /** - * Creates a new MetricValue instance using the specified properties. + * Creates a new Funnel instance using the specified properties. * @param [properties] Properties to set - * @returns MetricValue instance + * @returns Funnel instance */ - public static create(properties?: google.analytics.data.v1alpha.IMetricValue): google.analytics.data.v1alpha.MetricValue; + public static create(properties?: google.analytics.data.v1alpha.IFunnel): google.analytics.data.v1alpha.Funnel; /** - * Encodes the specified MetricValue message. Does not implicitly {@link google.analytics.data.v1alpha.MetricValue.verify|verify} messages. - * @param message MetricValue message or plain object to encode + * Encodes the specified Funnel message. Does not implicitly {@link google.analytics.data.v1alpha.Funnel.verify|verify} messages. + * @param message Funnel message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.IMetricValue, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IFunnel, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified MetricValue message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.MetricValue.verify|verify} messages. - * @param message MetricValue message or plain object to encode + * Encodes the specified Funnel message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.Funnel.verify|verify} messages. + * @param message Funnel message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IMetricValue, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IFunnel, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a MetricValue message from the specified reader or buffer. + * Decodes a Funnel message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns MetricValue + * @returns Funnel * @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.analytics.data.v1alpha.MetricValue; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.Funnel; /** - * Decodes a MetricValue message from the specified reader or buffer, length delimited. + * Decodes a Funnel message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns MetricValue + * @returns Funnel * @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.analytics.data.v1alpha.MetricValue; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.Funnel; /** - * Verifies a MetricValue message. + * Verifies a Funnel 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 MetricValue message from a plain object. Also converts values to their respective internal types. + * Creates a Funnel message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns MetricValue + * @returns Funnel */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.MetricValue; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.Funnel; /** - * Creates a plain object from a MetricValue message. Also converts values to other types if specified. - * @param message MetricValue + * Creates a plain object from a Funnel message. Also converts values to other types if specified. + * @param message Funnel * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.MetricValue, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.Funnel, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this MetricValue to JSON. + * Converts this Funnel to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for MetricValue + * Gets the default type url for Funnel * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a PropertyQuota. */ - interface IPropertyQuota { - - /** PropertyQuota tokensPerDay */ - tokensPerDay?: (google.analytics.data.v1alpha.IQuotaStatus|null); - - /** PropertyQuota tokensPerHour */ - tokensPerHour?: (google.analytics.data.v1alpha.IQuotaStatus|null); + /** Properties of a FunnelStep. */ + interface IFunnelStep { - /** PropertyQuota concurrentRequests */ - concurrentRequests?: (google.analytics.data.v1alpha.IQuotaStatus|null); + /** FunnelStep name */ + name?: (string|null); - /** PropertyQuota serverErrorsPerProjectPerHour */ - serverErrorsPerProjectPerHour?: (google.analytics.data.v1alpha.IQuotaStatus|null); + /** FunnelStep isDirectlyFollowedBy */ + isDirectlyFollowedBy?: (boolean|null); - /** PropertyQuota potentiallyThresholdedRequestsPerHour */ - potentiallyThresholdedRequestsPerHour?: (google.analytics.data.v1alpha.IQuotaStatus|null); + /** FunnelStep withinDurationFromPriorStep */ + withinDurationFromPriorStep?: (google.protobuf.IDuration|null); - /** PropertyQuota tokensPerProjectPerHour */ - tokensPerProjectPerHour?: (google.analytics.data.v1alpha.IQuotaStatus|null); + /** FunnelStep filterExpression */ + filterExpression?: (google.analytics.data.v1alpha.IFunnelFilterExpression|null); } - /** Represents a PropertyQuota. */ - class PropertyQuota implements IPropertyQuota { + /** Represents a FunnelStep. */ + class FunnelStep implements IFunnelStep { /** - * Constructs a new PropertyQuota. + * Constructs a new FunnelStep. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.IPropertyQuota); - - /** PropertyQuota tokensPerDay. */ - public tokensPerDay?: (google.analytics.data.v1alpha.IQuotaStatus|null); - - /** PropertyQuota tokensPerHour. */ - public tokensPerHour?: (google.analytics.data.v1alpha.IQuotaStatus|null); + constructor(properties?: google.analytics.data.v1alpha.IFunnelStep); - /** PropertyQuota concurrentRequests. */ - public concurrentRequests?: (google.analytics.data.v1alpha.IQuotaStatus|null); + /** FunnelStep name. */ + public name: string; - /** PropertyQuota serverErrorsPerProjectPerHour. */ - public serverErrorsPerProjectPerHour?: (google.analytics.data.v1alpha.IQuotaStatus|null); + /** FunnelStep isDirectlyFollowedBy. */ + public isDirectlyFollowedBy: boolean; - /** PropertyQuota potentiallyThresholdedRequestsPerHour. */ - public potentiallyThresholdedRequestsPerHour?: (google.analytics.data.v1alpha.IQuotaStatus|null); + /** FunnelStep withinDurationFromPriorStep. */ + public withinDurationFromPriorStep?: (google.protobuf.IDuration|null); - /** PropertyQuota tokensPerProjectPerHour. */ - public tokensPerProjectPerHour?: (google.analytics.data.v1alpha.IQuotaStatus|null); + /** FunnelStep filterExpression. */ + public filterExpression?: (google.analytics.data.v1alpha.IFunnelFilterExpression|null); /** - * Creates a new PropertyQuota instance using the specified properties. + * Creates a new FunnelStep instance using the specified properties. * @param [properties] Properties to set - * @returns PropertyQuota instance + * @returns FunnelStep instance */ - public static create(properties?: google.analytics.data.v1alpha.IPropertyQuota): google.analytics.data.v1alpha.PropertyQuota; + public static create(properties?: google.analytics.data.v1alpha.IFunnelStep): google.analytics.data.v1alpha.FunnelStep; /** - * Encodes the specified PropertyQuota message. Does not implicitly {@link google.analytics.data.v1alpha.PropertyQuota.verify|verify} messages. - * @param message PropertyQuota message or plain object to encode + * Encodes the specified FunnelStep message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelStep.verify|verify} messages. + * @param message FunnelStep message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.IPropertyQuota, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IFunnelStep, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified PropertyQuota message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.PropertyQuota.verify|verify} messages. - * @param message PropertyQuota message or plain object to encode + * Encodes the specified FunnelStep message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelStep.verify|verify} messages. + * @param message FunnelStep message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IPropertyQuota, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IFunnelStep, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a PropertyQuota message from the specified reader or buffer. + * Decodes a FunnelStep message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns PropertyQuota + * @returns FunnelStep * @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.analytics.data.v1alpha.PropertyQuota; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.FunnelStep; /** - * Decodes a PropertyQuota message from the specified reader or buffer, length delimited. + * Decodes a FunnelStep message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns PropertyQuota + * @returns FunnelStep * @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.analytics.data.v1alpha.PropertyQuota; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.FunnelStep; /** - * Verifies a PropertyQuota message. + * Verifies a FunnelStep 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 PropertyQuota message from a plain object. Also converts values to their respective internal types. + * Creates a FunnelStep message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns PropertyQuota + * @returns FunnelStep */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.PropertyQuota; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.FunnelStep; /** - * Creates a plain object from a PropertyQuota message. Also converts values to other types if specified. - * @param message PropertyQuota + * Creates a plain object from a FunnelStep message. Also converts values to other types if specified. + * @param message FunnelStep * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.PropertyQuota, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.FunnelStep, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this PropertyQuota to JSON. + * Converts this FunnelStep to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for PropertyQuota + * Gets the default type url for FunnelStep * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a QuotaStatus. */ - interface IQuotaStatus { + /** Properties of a FunnelSubReport. */ + interface IFunnelSubReport { - /** QuotaStatus consumed */ - consumed?: (number|null); + /** FunnelSubReport dimensionHeaders */ + dimensionHeaders?: (google.analytics.data.v1alpha.IDimensionHeader[]|null); - /** QuotaStatus remaining */ - remaining?: (number|null); + /** FunnelSubReport metricHeaders */ + metricHeaders?: (google.analytics.data.v1alpha.IMetricHeader[]|null); + + /** FunnelSubReport rows */ + rows?: (google.analytics.data.v1alpha.IRow[]|null); + + /** FunnelSubReport metadata */ + metadata?: (google.analytics.data.v1alpha.IFunnelResponseMetadata|null); } - /** Represents a QuotaStatus. */ - class QuotaStatus implements IQuotaStatus { + /** Represents a FunnelSubReport. */ + class FunnelSubReport implements IFunnelSubReport { /** - * Constructs a new QuotaStatus. + * Constructs a new FunnelSubReport. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.IQuotaStatus); + constructor(properties?: google.analytics.data.v1alpha.IFunnelSubReport); - /** QuotaStatus consumed. */ - public consumed: number; + /** FunnelSubReport dimensionHeaders. */ + public dimensionHeaders: google.analytics.data.v1alpha.IDimensionHeader[]; - /** QuotaStatus remaining. */ - public remaining: number; + /** FunnelSubReport metricHeaders. */ + public metricHeaders: google.analytics.data.v1alpha.IMetricHeader[]; + + /** FunnelSubReport rows. */ + public rows: google.analytics.data.v1alpha.IRow[]; + + /** FunnelSubReport metadata. */ + public metadata?: (google.analytics.data.v1alpha.IFunnelResponseMetadata|null); /** - * Creates a new QuotaStatus instance using the specified properties. + * Creates a new FunnelSubReport instance using the specified properties. * @param [properties] Properties to set - * @returns QuotaStatus instance + * @returns FunnelSubReport instance */ - public static create(properties?: google.analytics.data.v1alpha.IQuotaStatus): google.analytics.data.v1alpha.QuotaStatus; + public static create(properties?: google.analytics.data.v1alpha.IFunnelSubReport): google.analytics.data.v1alpha.FunnelSubReport; /** - * Encodes the specified QuotaStatus message. Does not implicitly {@link google.analytics.data.v1alpha.QuotaStatus.verify|verify} messages. - * @param message QuotaStatus message or plain object to encode + * Encodes the specified FunnelSubReport message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelSubReport.verify|verify} messages. + * @param message FunnelSubReport message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.IQuotaStatus, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IFunnelSubReport, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified QuotaStatus message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.QuotaStatus.verify|verify} messages. - * @param message QuotaStatus message or plain object to encode + * Encodes the specified FunnelSubReport message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelSubReport.verify|verify} messages. + * @param message FunnelSubReport message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IQuotaStatus, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IFunnelSubReport, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a QuotaStatus message from the specified reader or buffer. + * Decodes a FunnelSubReport message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns QuotaStatus + * @returns FunnelSubReport * @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.analytics.data.v1alpha.QuotaStatus; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.FunnelSubReport; /** - * Decodes a QuotaStatus message from the specified reader or buffer, length delimited. + * Decodes a FunnelSubReport message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns QuotaStatus + * @returns FunnelSubReport * @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.analytics.data.v1alpha.QuotaStatus; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.FunnelSubReport; /** - * Verifies a QuotaStatus message. + * Verifies a FunnelSubReport 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 QuotaStatus message from a plain object. Also converts values to their respective internal types. + * Creates a FunnelSubReport message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns QuotaStatus + * @returns FunnelSubReport */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.QuotaStatus; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.FunnelSubReport; /** - * Creates a plain object from a QuotaStatus message. Also converts values to other types if specified. - * @param message QuotaStatus + * Creates a plain object from a FunnelSubReport message. Also converts values to other types if specified. + * @param message FunnelSubReport * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.QuotaStatus, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.FunnelSubReport, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this QuotaStatus to JSON. + * Converts this FunnelSubReport to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for QuotaStatus + * Gets the default type url for FunnelSubReport * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a FunnelBreakdown. */ - interface IFunnelBreakdown { + /** Properties of a UserSegment. */ + interface IUserSegment { - /** FunnelBreakdown breakdownDimension */ - breakdownDimension?: (google.analytics.data.v1alpha.IDimension|null); + /** UserSegment userInclusionCriteria */ + userInclusionCriteria?: (google.analytics.data.v1alpha.IUserSegmentCriteria|null); - /** FunnelBreakdown limit */ - limit?: (number|Long|string|null); + /** UserSegment exclusion */ + exclusion?: (google.analytics.data.v1alpha.IUserSegmentExclusion|null); } - /** Represents a FunnelBreakdown. */ - class FunnelBreakdown implements IFunnelBreakdown { + /** Represents a UserSegment. */ + class UserSegment implements IUserSegment { /** - * Constructs a new FunnelBreakdown. + * Constructs a new UserSegment. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.IFunnelBreakdown); + constructor(properties?: google.analytics.data.v1alpha.IUserSegment); - /** FunnelBreakdown breakdownDimension. */ - public breakdownDimension?: (google.analytics.data.v1alpha.IDimension|null); + /** UserSegment userInclusionCriteria. */ + public userInclusionCriteria?: (google.analytics.data.v1alpha.IUserSegmentCriteria|null); - /** FunnelBreakdown limit. */ - public limit?: (number|Long|string|null); + /** UserSegment exclusion. */ + public exclusion?: (google.analytics.data.v1alpha.IUserSegmentExclusion|null); /** - * Creates a new FunnelBreakdown instance using the specified properties. + * Creates a new UserSegment instance using the specified properties. * @param [properties] Properties to set - * @returns FunnelBreakdown instance + * @returns UserSegment instance */ - public static create(properties?: google.analytics.data.v1alpha.IFunnelBreakdown): google.analytics.data.v1alpha.FunnelBreakdown; + public static create(properties?: google.analytics.data.v1alpha.IUserSegment): google.analytics.data.v1alpha.UserSegment; /** - * Encodes the specified FunnelBreakdown message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelBreakdown.verify|verify} messages. - * @param message FunnelBreakdown message or plain object to encode + * Encodes the specified UserSegment message. Does not implicitly {@link google.analytics.data.v1alpha.UserSegment.verify|verify} messages. + * @param message UserSegment message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.IFunnelBreakdown, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IUserSegment, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified FunnelBreakdown message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelBreakdown.verify|verify} messages. - * @param message FunnelBreakdown message or plain object to encode + * Encodes the specified UserSegment message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.UserSegment.verify|verify} messages. + * @param message UserSegment message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IFunnelBreakdown, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IUserSegment, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a FunnelBreakdown message from the specified reader or buffer. + * Decodes a UserSegment message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns FunnelBreakdown + * @returns UserSegment * @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.analytics.data.v1alpha.FunnelBreakdown; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.UserSegment; /** - * Decodes a FunnelBreakdown message from the specified reader or buffer, length delimited. + * Decodes a UserSegment message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns FunnelBreakdown + * @returns UserSegment * @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.analytics.data.v1alpha.FunnelBreakdown; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.UserSegment; /** - * Verifies a FunnelBreakdown message. + * Verifies a UserSegment 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 FunnelBreakdown message from a plain object. Also converts values to their respective internal types. + * Creates a UserSegment message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns FunnelBreakdown + * @returns UserSegment */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.FunnelBreakdown; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.UserSegment; /** - * Creates a plain object from a FunnelBreakdown message. Also converts values to other types if specified. - * @param message FunnelBreakdown + * Creates a plain object from a UserSegment message. Also converts values to other types if specified. + * @param message UserSegment * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.FunnelBreakdown, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.UserSegment, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this FunnelBreakdown to JSON. + * Converts this UserSegment to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for FunnelBreakdown + * Gets the default type url for UserSegment * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a FunnelNextAction. */ - interface IFunnelNextAction { + /** Properties of a UserSegmentCriteria. */ + interface IUserSegmentCriteria { - /** FunnelNextAction nextActionDimension */ - nextActionDimension?: (google.analytics.data.v1alpha.IDimension|null); + /** UserSegmentCriteria andConditionGroups */ + andConditionGroups?: (google.analytics.data.v1alpha.IUserSegmentConditionGroup[]|null); - /** FunnelNextAction limit */ - limit?: (number|Long|string|null); + /** UserSegmentCriteria andSequenceGroups */ + andSequenceGroups?: (google.analytics.data.v1alpha.IUserSegmentSequenceGroup[]|null); } - /** Represents a FunnelNextAction. */ - class FunnelNextAction implements IFunnelNextAction { + /** Represents a UserSegmentCriteria. */ + class UserSegmentCriteria implements IUserSegmentCriteria { /** - * Constructs a new FunnelNextAction. + * Constructs a new UserSegmentCriteria. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.IFunnelNextAction); + constructor(properties?: google.analytics.data.v1alpha.IUserSegmentCriteria); - /** FunnelNextAction nextActionDimension. */ - public nextActionDimension?: (google.analytics.data.v1alpha.IDimension|null); + /** UserSegmentCriteria andConditionGroups. */ + public andConditionGroups: google.analytics.data.v1alpha.IUserSegmentConditionGroup[]; - /** FunnelNextAction limit. */ - public limit?: (number|Long|string|null); + /** UserSegmentCriteria andSequenceGroups. */ + public andSequenceGroups: google.analytics.data.v1alpha.IUserSegmentSequenceGroup[]; /** - * Creates a new FunnelNextAction instance using the specified properties. + * Creates a new UserSegmentCriteria instance using the specified properties. * @param [properties] Properties to set - * @returns FunnelNextAction instance + * @returns UserSegmentCriteria instance */ - public static create(properties?: google.analytics.data.v1alpha.IFunnelNextAction): google.analytics.data.v1alpha.FunnelNextAction; + public static create(properties?: google.analytics.data.v1alpha.IUserSegmentCriteria): google.analytics.data.v1alpha.UserSegmentCriteria; /** - * Encodes the specified FunnelNextAction message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelNextAction.verify|verify} messages. - * @param message FunnelNextAction message or plain object to encode + * Encodes the specified UserSegmentCriteria message. Does not implicitly {@link google.analytics.data.v1alpha.UserSegmentCriteria.verify|verify} messages. + * @param message UserSegmentCriteria message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.IFunnelNextAction, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IUserSegmentCriteria, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified FunnelNextAction message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelNextAction.verify|verify} messages. - * @param message FunnelNextAction message or plain object to encode + * Encodes the specified UserSegmentCriteria message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.UserSegmentCriteria.verify|verify} messages. + * @param message UserSegmentCriteria message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IFunnelNextAction, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IUserSegmentCriteria, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a FunnelNextAction message from the specified reader or buffer. + * Decodes a UserSegmentCriteria message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns FunnelNextAction + * @returns UserSegmentCriteria * @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.analytics.data.v1alpha.FunnelNextAction; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.UserSegmentCriteria; /** - * Decodes a FunnelNextAction message from the specified reader or buffer, length delimited. + * Decodes a UserSegmentCriteria message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns FunnelNextAction + * @returns UserSegmentCriteria * @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.analytics.data.v1alpha.FunnelNextAction; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.UserSegmentCriteria; /** - * Verifies a FunnelNextAction message. + * Verifies a UserSegmentCriteria 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 FunnelNextAction message from a plain object. Also converts values to their respective internal types. + * Creates a UserSegmentCriteria message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns FunnelNextAction + * @returns UserSegmentCriteria */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.FunnelNextAction; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.UserSegmentCriteria; /** - * Creates a plain object from a FunnelNextAction message. Also converts values to other types if specified. - * @param message FunnelNextAction + * Creates a plain object from a UserSegmentCriteria message. Also converts values to other types if specified. + * @param message UserSegmentCriteria * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.FunnelNextAction, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.UserSegmentCriteria, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this FunnelNextAction to JSON. + * Converts this UserSegmentCriteria to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for FunnelNextAction + * Gets the default type url for UserSegmentCriteria * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a Funnel. */ - interface IFunnel { + /** UserCriteriaScoping enum. */ + enum UserCriteriaScoping { + USER_CRITERIA_SCOPING_UNSPECIFIED = 0, + USER_CRITERIA_WITHIN_SAME_EVENT = 1, + USER_CRITERIA_WITHIN_SAME_SESSION = 2, + USER_CRITERIA_ACROSS_ALL_SESSIONS = 3 + } - /** Funnel isOpenFunnel */ - isOpenFunnel?: (boolean|null); + /** Properties of a UserSegmentConditionGroup. */ + interface IUserSegmentConditionGroup { - /** Funnel steps */ - steps?: (google.analytics.data.v1alpha.IFunnelStep[]|null); + /** UserSegmentConditionGroup conditionScoping */ + conditionScoping?: (google.analytics.data.v1alpha.UserCriteriaScoping|keyof typeof google.analytics.data.v1alpha.UserCriteriaScoping|null); + + /** UserSegmentConditionGroup segmentFilterExpression */ + segmentFilterExpression?: (google.analytics.data.v1alpha.ISegmentFilterExpression|null); } - /** Represents a Funnel. */ - class Funnel implements IFunnel { + /** Represents a UserSegmentConditionGroup. */ + class UserSegmentConditionGroup implements IUserSegmentConditionGroup { /** - * Constructs a new Funnel. + * Constructs a new UserSegmentConditionGroup. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.IFunnel); + constructor(properties?: google.analytics.data.v1alpha.IUserSegmentConditionGroup); - /** Funnel isOpenFunnel. */ - public isOpenFunnel: boolean; + /** UserSegmentConditionGroup conditionScoping. */ + public conditionScoping: (google.analytics.data.v1alpha.UserCriteriaScoping|keyof typeof google.analytics.data.v1alpha.UserCriteriaScoping); - /** Funnel steps. */ - public steps: google.analytics.data.v1alpha.IFunnelStep[]; + /** UserSegmentConditionGroup segmentFilterExpression. */ + public segmentFilterExpression?: (google.analytics.data.v1alpha.ISegmentFilterExpression|null); /** - * Creates a new Funnel instance using the specified properties. + * Creates a new UserSegmentConditionGroup instance using the specified properties. * @param [properties] Properties to set - * @returns Funnel instance + * @returns UserSegmentConditionGroup instance */ - public static create(properties?: google.analytics.data.v1alpha.IFunnel): google.analytics.data.v1alpha.Funnel; + public static create(properties?: google.analytics.data.v1alpha.IUserSegmentConditionGroup): google.analytics.data.v1alpha.UserSegmentConditionGroup; /** - * Encodes the specified Funnel message. Does not implicitly {@link google.analytics.data.v1alpha.Funnel.verify|verify} messages. - * @param message Funnel message or plain object to encode + * Encodes the specified UserSegmentConditionGroup message. Does not implicitly {@link google.analytics.data.v1alpha.UserSegmentConditionGroup.verify|verify} messages. + * @param message UserSegmentConditionGroup message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.IFunnel, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IUserSegmentConditionGroup, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified Funnel message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.Funnel.verify|verify} messages. - * @param message Funnel message or plain object to encode + * Encodes the specified UserSegmentConditionGroup message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.UserSegmentConditionGroup.verify|verify} messages. + * @param message UserSegmentConditionGroup message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IFunnel, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IUserSegmentConditionGroup, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a Funnel message from the specified reader or buffer. + * Decodes a UserSegmentConditionGroup message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns Funnel + * @returns UserSegmentConditionGroup * @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.analytics.data.v1alpha.Funnel; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.UserSegmentConditionGroup; /** - * Decodes a Funnel message from the specified reader or buffer, length delimited. + * Decodes a UserSegmentConditionGroup message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns Funnel + * @returns UserSegmentConditionGroup * @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.analytics.data.v1alpha.Funnel; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.UserSegmentConditionGroup; /** - * Verifies a Funnel message. + * Verifies a UserSegmentConditionGroup 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 Funnel message from a plain object. Also converts values to their respective internal types. + * Creates a UserSegmentConditionGroup message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns Funnel + * @returns UserSegmentConditionGroup */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.Funnel; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.UserSegmentConditionGroup; /** - * Creates a plain object from a Funnel message. Also converts values to other types if specified. - * @param message Funnel + * Creates a plain object from a UserSegmentConditionGroup message. Also converts values to other types if specified. + * @param message UserSegmentConditionGroup * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.Funnel, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.UserSegmentConditionGroup, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this Funnel to JSON. + * Converts this UserSegmentConditionGroup to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for Funnel + * Gets the default type url for UserSegmentConditionGroup * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a FunnelStep. */ - interface IFunnelStep { - - /** FunnelStep name */ - name?: (string|null); + /** Properties of a UserSegmentSequenceGroup. */ + interface IUserSegmentSequenceGroup { - /** FunnelStep isDirectlyFollowedBy */ - isDirectlyFollowedBy?: (boolean|null); + /** UserSegmentSequenceGroup sequenceScoping */ + sequenceScoping?: (google.analytics.data.v1alpha.UserCriteriaScoping|keyof typeof google.analytics.data.v1alpha.UserCriteriaScoping|null); - /** FunnelStep withinDurationFromPriorStep */ - withinDurationFromPriorStep?: (google.protobuf.IDuration|null); + /** UserSegmentSequenceGroup sequenceMaximumDuration */ + sequenceMaximumDuration?: (google.protobuf.IDuration|null); - /** FunnelStep filterExpression */ - filterExpression?: (google.analytics.data.v1alpha.IFunnelFilterExpression|null); + /** UserSegmentSequenceGroup userSequenceSteps */ + userSequenceSteps?: (google.analytics.data.v1alpha.IUserSequenceStep[]|null); } - /** Represents a FunnelStep. */ - class FunnelStep implements IFunnelStep { + /** Represents a UserSegmentSequenceGroup. */ + class UserSegmentSequenceGroup implements IUserSegmentSequenceGroup { /** - * Constructs a new FunnelStep. + * Constructs a new UserSegmentSequenceGroup. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.IFunnelStep); - - /** FunnelStep name. */ - public name: string; + constructor(properties?: google.analytics.data.v1alpha.IUserSegmentSequenceGroup); - /** FunnelStep isDirectlyFollowedBy. */ - public isDirectlyFollowedBy: boolean; + /** UserSegmentSequenceGroup sequenceScoping. */ + public sequenceScoping: (google.analytics.data.v1alpha.UserCriteriaScoping|keyof typeof google.analytics.data.v1alpha.UserCriteriaScoping); - /** FunnelStep withinDurationFromPriorStep. */ - public withinDurationFromPriorStep?: (google.protobuf.IDuration|null); + /** UserSegmentSequenceGroup sequenceMaximumDuration. */ + public sequenceMaximumDuration?: (google.protobuf.IDuration|null); - /** FunnelStep filterExpression. */ - public filterExpression?: (google.analytics.data.v1alpha.IFunnelFilterExpression|null); + /** UserSegmentSequenceGroup userSequenceSteps. */ + public userSequenceSteps: google.analytics.data.v1alpha.IUserSequenceStep[]; /** - * Creates a new FunnelStep instance using the specified properties. + * Creates a new UserSegmentSequenceGroup instance using the specified properties. * @param [properties] Properties to set - * @returns FunnelStep instance + * @returns UserSegmentSequenceGroup instance */ - public static create(properties?: google.analytics.data.v1alpha.IFunnelStep): google.analytics.data.v1alpha.FunnelStep; + public static create(properties?: google.analytics.data.v1alpha.IUserSegmentSequenceGroup): google.analytics.data.v1alpha.UserSegmentSequenceGroup; /** - * Encodes the specified FunnelStep message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelStep.verify|verify} messages. - * @param message FunnelStep message or plain object to encode + * Encodes the specified UserSegmentSequenceGroup message. Does not implicitly {@link google.analytics.data.v1alpha.UserSegmentSequenceGroup.verify|verify} messages. + * @param message UserSegmentSequenceGroup message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.IFunnelStep, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IUserSegmentSequenceGroup, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified FunnelStep message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelStep.verify|verify} messages. - * @param message FunnelStep message or plain object to encode + * Encodes the specified UserSegmentSequenceGroup message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.UserSegmentSequenceGroup.verify|verify} messages. + * @param message UserSegmentSequenceGroup message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IFunnelStep, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IUserSegmentSequenceGroup, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a FunnelStep message from the specified reader or buffer. + * Decodes a UserSegmentSequenceGroup message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns FunnelStep + * @returns UserSegmentSequenceGroup * @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.analytics.data.v1alpha.FunnelStep; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.UserSegmentSequenceGroup; /** - * Decodes a FunnelStep message from the specified reader or buffer, length delimited. + * Decodes a UserSegmentSequenceGroup message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns FunnelStep + * @returns UserSegmentSequenceGroup * @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.analytics.data.v1alpha.FunnelStep; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.UserSegmentSequenceGroup; /** - * Verifies a FunnelStep message. + * Verifies a UserSegmentSequenceGroup 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 FunnelStep message from a plain object. Also converts values to their respective internal types. + * Creates a UserSegmentSequenceGroup message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns FunnelStep + * @returns UserSegmentSequenceGroup */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.FunnelStep; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.UserSegmentSequenceGroup; /** - * Creates a plain object from a FunnelStep message. Also converts values to other types if specified. - * @param message FunnelStep + * Creates a plain object from a UserSegmentSequenceGroup message. Also converts values to other types if specified. + * @param message UserSegmentSequenceGroup * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.FunnelStep, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.UserSegmentSequenceGroup, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this FunnelStep to JSON. + * Converts this UserSegmentSequenceGroup to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for FunnelStep + * Gets the default type url for UserSegmentSequenceGroup * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a FunnelSubReport. */ - interface IFunnelSubReport { - - /** FunnelSubReport dimensionHeaders */ - dimensionHeaders?: (google.analytics.data.v1alpha.IDimensionHeader[]|null); + /** Properties of a UserSequenceStep. */ + interface IUserSequenceStep { - /** FunnelSubReport metricHeaders */ - metricHeaders?: (google.analytics.data.v1alpha.IMetricHeader[]|null); + /** UserSequenceStep isDirectlyFollowedBy */ + isDirectlyFollowedBy?: (boolean|null); - /** FunnelSubReport rows */ - rows?: (google.analytics.data.v1alpha.IRow[]|null); + /** UserSequenceStep stepScoping */ + stepScoping?: (google.analytics.data.v1alpha.UserCriteriaScoping|keyof typeof google.analytics.data.v1alpha.UserCriteriaScoping|null); - /** FunnelSubReport metadata */ - metadata?: (google.analytics.data.v1alpha.IFunnelResponseMetadata|null); + /** UserSequenceStep segmentFilterExpression */ + segmentFilterExpression?: (google.analytics.data.v1alpha.ISegmentFilterExpression|null); } - /** Represents a FunnelSubReport. */ - class FunnelSubReport implements IFunnelSubReport { + /** Represents a UserSequenceStep. */ + class UserSequenceStep implements IUserSequenceStep { /** - * Constructs a new FunnelSubReport. + * Constructs a new UserSequenceStep. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.IFunnelSubReport); - - /** FunnelSubReport dimensionHeaders. */ - public dimensionHeaders: google.analytics.data.v1alpha.IDimensionHeader[]; + constructor(properties?: google.analytics.data.v1alpha.IUserSequenceStep); - /** FunnelSubReport metricHeaders. */ - public metricHeaders: google.analytics.data.v1alpha.IMetricHeader[]; + /** UserSequenceStep isDirectlyFollowedBy. */ + public isDirectlyFollowedBy: boolean; - /** FunnelSubReport rows. */ - public rows: google.analytics.data.v1alpha.IRow[]; + /** UserSequenceStep stepScoping. */ + public stepScoping: (google.analytics.data.v1alpha.UserCriteriaScoping|keyof typeof google.analytics.data.v1alpha.UserCriteriaScoping); - /** FunnelSubReport metadata. */ - public metadata?: (google.analytics.data.v1alpha.IFunnelResponseMetadata|null); + /** UserSequenceStep segmentFilterExpression. */ + public segmentFilterExpression?: (google.analytics.data.v1alpha.ISegmentFilterExpression|null); /** - * Creates a new FunnelSubReport instance using the specified properties. + * Creates a new UserSequenceStep instance using the specified properties. * @param [properties] Properties to set - * @returns FunnelSubReport instance + * @returns UserSequenceStep instance */ - public static create(properties?: google.analytics.data.v1alpha.IFunnelSubReport): google.analytics.data.v1alpha.FunnelSubReport; + public static create(properties?: google.analytics.data.v1alpha.IUserSequenceStep): google.analytics.data.v1alpha.UserSequenceStep; /** - * Encodes the specified FunnelSubReport message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelSubReport.verify|verify} messages. - * @param message FunnelSubReport message or plain object to encode + * Encodes the specified UserSequenceStep message. Does not implicitly {@link google.analytics.data.v1alpha.UserSequenceStep.verify|verify} messages. + * @param message UserSequenceStep message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.IFunnelSubReport, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IUserSequenceStep, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified FunnelSubReport message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelSubReport.verify|verify} messages. - * @param message FunnelSubReport message or plain object to encode + * Encodes the specified UserSequenceStep message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.UserSequenceStep.verify|verify} messages. + * @param message UserSequenceStep message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IFunnelSubReport, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IUserSequenceStep, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a FunnelSubReport message from the specified reader or buffer. + * Decodes a UserSequenceStep message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns FunnelSubReport + * @returns UserSequenceStep * @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.analytics.data.v1alpha.FunnelSubReport; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.UserSequenceStep; /** - * Decodes a FunnelSubReport message from the specified reader or buffer, length delimited. + * Decodes a UserSequenceStep message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns FunnelSubReport + * @returns UserSequenceStep * @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.analytics.data.v1alpha.FunnelSubReport; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.UserSequenceStep; /** - * Verifies a FunnelSubReport message. + * Verifies a UserSequenceStep 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 FunnelSubReport message from a plain object. Also converts values to their respective internal types. + * Creates a UserSequenceStep message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns FunnelSubReport + * @returns UserSequenceStep */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.FunnelSubReport; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.UserSequenceStep; /** - * Creates a plain object from a FunnelSubReport message. Also converts values to other types if specified. - * @param message FunnelSubReport + * Creates a plain object from a UserSequenceStep message. Also converts values to other types if specified. + * @param message UserSequenceStep * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.FunnelSubReport, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.UserSequenceStep, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this FunnelSubReport to JSON. + * Converts this UserSequenceStep to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for FunnelSubReport + * Gets the default type url for UserSequenceStep * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a UserSegment. */ - interface IUserSegment { + /** Properties of a UserSegmentExclusion. */ + interface IUserSegmentExclusion { - /** UserSegment userInclusionCriteria */ - userInclusionCriteria?: (google.analytics.data.v1alpha.IUserSegmentCriteria|null); + /** UserSegmentExclusion userExclusionDuration */ + userExclusionDuration?: (google.analytics.data.v1alpha.UserExclusionDuration|keyof typeof google.analytics.data.v1alpha.UserExclusionDuration|null); - /** UserSegment exclusion */ - exclusion?: (google.analytics.data.v1alpha.IUserSegmentExclusion|null); + /** UserSegmentExclusion userExclusionCriteria */ + userExclusionCriteria?: (google.analytics.data.v1alpha.IUserSegmentCriteria|null); } - /** Represents a UserSegment. */ - class UserSegment implements IUserSegment { + /** Represents a UserSegmentExclusion. */ + class UserSegmentExclusion implements IUserSegmentExclusion { /** - * Constructs a new UserSegment. + * Constructs a new UserSegmentExclusion. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.IUserSegment); + constructor(properties?: google.analytics.data.v1alpha.IUserSegmentExclusion); - /** UserSegment userInclusionCriteria. */ - public userInclusionCriteria?: (google.analytics.data.v1alpha.IUserSegmentCriteria|null); + /** UserSegmentExclusion userExclusionDuration. */ + public userExclusionDuration: (google.analytics.data.v1alpha.UserExclusionDuration|keyof typeof google.analytics.data.v1alpha.UserExclusionDuration); - /** UserSegment exclusion. */ - public exclusion?: (google.analytics.data.v1alpha.IUserSegmentExclusion|null); + /** UserSegmentExclusion userExclusionCriteria. */ + public userExclusionCriteria?: (google.analytics.data.v1alpha.IUserSegmentCriteria|null); /** - * Creates a new UserSegment instance using the specified properties. + * Creates a new UserSegmentExclusion instance using the specified properties. * @param [properties] Properties to set - * @returns UserSegment instance + * @returns UserSegmentExclusion instance */ - public static create(properties?: google.analytics.data.v1alpha.IUserSegment): google.analytics.data.v1alpha.UserSegment; + public static create(properties?: google.analytics.data.v1alpha.IUserSegmentExclusion): google.analytics.data.v1alpha.UserSegmentExclusion; /** - * Encodes the specified UserSegment message. Does not implicitly {@link google.analytics.data.v1alpha.UserSegment.verify|verify} messages. - * @param message UserSegment message or plain object to encode + * Encodes the specified UserSegmentExclusion message. Does not implicitly {@link google.analytics.data.v1alpha.UserSegmentExclusion.verify|verify} messages. + * @param message UserSegmentExclusion message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.IUserSegment, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IUserSegmentExclusion, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified UserSegment message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.UserSegment.verify|verify} messages. - * @param message UserSegment message or plain object to encode + * Encodes the specified UserSegmentExclusion message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.UserSegmentExclusion.verify|verify} messages. + * @param message UserSegmentExclusion message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IUserSegment, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IUserSegmentExclusion, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a UserSegment message from the specified reader or buffer. + * Decodes a UserSegmentExclusion message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns UserSegment + * @returns UserSegmentExclusion * @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.analytics.data.v1alpha.UserSegment; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.UserSegmentExclusion; /** - * Decodes a UserSegment message from the specified reader or buffer, length delimited. + * Decodes a UserSegmentExclusion message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns UserSegment + * @returns UserSegmentExclusion * @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.analytics.data.v1alpha.UserSegment; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.UserSegmentExclusion; /** - * Verifies a UserSegment message. + * Verifies a UserSegmentExclusion 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 UserSegment message from a plain object. Also converts values to their respective internal types. + * Creates a UserSegmentExclusion message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns UserSegment + * @returns UserSegmentExclusion */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.UserSegment; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.UserSegmentExclusion; /** - * Creates a plain object from a UserSegment message. Also converts values to other types if specified. - * @param message UserSegment + * Creates a plain object from a UserSegmentExclusion message. Also converts values to other types if specified. + * @param message UserSegmentExclusion * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.UserSegment, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.UserSegmentExclusion, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this UserSegment to JSON. + * Converts this UserSegmentExclusion to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for UserSegment + * Gets the default type url for UserSegmentExclusion * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a UserSegmentCriteria. */ - interface IUserSegmentCriteria { + /** UserExclusionDuration enum. */ + enum UserExclusionDuration { + USER_EXCLUSION_DURATION_UNSPECIFIED = 0, + USER_EXCLUSION_TEMPORARY = 1, + USER_EXCLUSION_PERMANENT = 2 + } - /** UserSegmentCriteria andConditionGroups */ - andConditionGroups?: (google.analytics.data.v1alpha.IUserSegmentConditionGroup[]|null); + /** Properties of a SessionSegment. */ + interface ISessionSegment { - /** UserSegmentCriteria andSequenceGroups */ - andSequenceGroups?: (google.analytics.data.v1alpha.IUserSegmentSequenceGroup[]|null); + /** SessionSegment sessionInclusionCriteria */ + sessionInclusionCriteria?: (google.analytics.data.v1alpha.ISessionSegmentCriteria|null); + + /** SessionSegment exclusion */ + exclusion?: (google.analytics.data.v1alpha.ISessionSegmentExclusion|null); } - /** Represents a UserSegmentCriteria. */ - class UserSegmentCriteria implements IUserSegmentCriteria { + /** Represents a SessionSegment. */ + class SessionSegment implements ISessionSegment { /** - * Constructs a new UserSegmentCriteria. + * Constructs a new SessionSegment. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.IUserSegmentCriteria); + constructor(properties?: google.analytics.data.v1alpha.ISessionSegment); - /** UserSegmentCriteria andConditionGroups. */ - public andConditionGroups: google.analytics.data.v1alpha.IUserSegmentConditionGroup[]; + /** SessionSegment sessionInclusionCriteria. */ + public sessionInclusionCriteria?: (google.analytics.data.v1alpha.ISessionSegmentCriteria|null); - /** UserSegmentCriteria andSequenceGroups. */ - public andSequenceGroups: google.analytics.data.v1alpha.IUserSegmentSequenceGroup[]; + /** SessionSegment exclusion. */ + public exclusion?: (google.analytics.data.v1alpha.ISessionSegmentExclusion|null); /** - * Creates a new UserSegmentCriteria instance using the specified properties. + * Creates a new SessionSegment instance using the specified properties. * @param [properties] Properties to set - * @returns UserSegmentCriteria instance + * @returns SessionSegment instance */ - public static create(properties?: google.analytics.data.v1alpha.IUserSegmentCriteria): google.analytics.data.v1alpha.UserSegmentCriteria; + public static create(properties?: google.analytics.data.v1alpha.ISessionSegment): google.analytics.data.v1alpha.SessionSegment; /** - * Encodes the specified UserSegmentCriteria message. Does not implicitly {@link google.analytics.data.v1alpha.UserSegmentCriteria.verify|verify} messages. - * @param message UserSegmentCriteria message or plain object to encode + * Encodes the specified SessionSegment message. Does not implicitly {@link google.analytics.data.v1alpha.SessionSegment.verify|verify} messages. + * @param message SessionSegment message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.IUserSegmentCriteria, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.ISessionSegment, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified UserSegmentCriteria message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.UserSegmentCriteria.verify|verify} messages. - * @param message UserSegmentCriteria message or plain object to encode + * Encodes the specified SessionSegment message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SessionSegment.verify|verify} messages. + * @param message SessionSegment message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IUserSegmentCriteria, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.ISessionSegment, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a UserSegmentCriteria message from the specified reader or buffer. + * Decodes a SessionSegment message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns UserSegmentCriteria + * @returns SessionSegment * @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.analytics.data.v1alpha.UserSegmentCriteria; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.SessionSegment; /** - * Decodes a UserSegmentCriteria message from the specified reader or buffer, length delimited. + * Decodes a SessionSegment message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns UserSegmentCriteria + * @returns SessionSegment * @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.analytics.data.v1alpha.UserSegmentCriteria; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.SessionSegment; /** - * Verifies a UserSegmentCriteria message. + * Verifies a SessionSegment 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 UserSegmentCriteria message from a plain object. Also converts values to their respective internal types. + * Creates a SessionSegment message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns UserSegmentCriteria + * @returns SessionSegment */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.UserSegmentCriteria; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.SessionSegment; /** - * Creates a plain object from a UserSegmentCriteria message. Also converts values to other types if specified. - * @param message UserSegmentCriteria + * Creates a plain object from a SessionSegment message. Also converts values to other types if specified. + * @param message SessionSegment * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.UserSegmentCriteria, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.SessionSegment, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this UserSegmentCriteria to JSON. + * Converts this SessionSegment to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for UserSegmentCriteria + * Gets the default type url for SessionSegment * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** UserCriteriaScoping enum. */ - enum UserCriteriaScoping { - USER_CRITERIA_SCOPING_UNSPECIFIED = 0, - USER_CRITERIA_WITHIN_SAME_EVENT = 1, - USER_CRITERIA_WITHIN_SAME_SESSION = 2, - USER_CRITERIA_ACROSS_ALL_SESSIONS = 3 - } - - /** Properties of a UserSegmentConditionGroup. */ - interface IUserSegmentConditionGroup { - - /** UserSegmentConditionGroup conditionScoping */ - conditionScoping?: (google.analytics.data.v1alpha.UserCriteriaScoping|keyof typeof google.analytics.data.v1alpha.UserCriteriaScoping|null); + /** Properties of a SessionSegmentCriteria. */ + interface ISessionSegmentCriteria { - /** UserSegmentConditionGroup segmentFilterExpression */ - segmentFilterExpression?: (google.analytics.data.v1alpha.ISegmentFilterExpression|null); + /** SessionSegmentCriteria andConditionGroups */ + andConditionGroups?: (google.analytics.data.v1alpha.ISessionSegmentConditionGroup[]|null); } - /** Represents a UserSegmentConditionGroup. */ - class UserSegmentConditionGroup implements IUserSegmentConditionGroup { + /** Represents a SessionSegmentCriteria. */ + class SessionSegmentCriteria implements ISessionSegmentCriteria { /** - * Constructs a new UserSegmentConditionGroup. + * Constructs a new SessionSegmentCriteria. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.IUserSegmentConditionGroup); - - /** UserSegmentConditionGroup conditionScoping. */ - public conditionScoping: (google.analytics.data.v1alpha.UserCriteriaScoping|keyof typeof google.analytics.data.v1alpha.UserCriteriaScoping); + constructor(properties?: google.analytics.data.v1alpha.ISessionSegmentCriteria); - /** UserSegmentConditionGroup segmentFilterExpression. */ - public segmentFilterExpression?: (google.analytics.data.v1alpha.ISegmentFilterExpression|null); + /** SessionSegmentCriteria andConditionGroups. */ + public andConditionGroups: google.analytics.data.v1alpha.ISessionSegmentConditionGroup[]; /** - * Creates a new UserSegmentConditionGroup instance using the specified properties. + * Creates a new SessionSegmentCriteria instance using the specified properties. * @param [properties] Properties to set - * @returns UserSegmentConditionGroup instance + * @returns SessionSegmentCriteria instance */ - public static create(properties?: google.analytics.data.v1alpha.IUserSegmentConditionGroup): google.analytics.data.v1alpha.UserSegmentConditionGroup; + public static create(properties?: google.analytics.data.v1alpha.ISessionSegmentCriteria): google.analytics.data.v1alpha.SessionSegmentCriteria; /** - * Encodes the specified UserSegmentConditionGroup message. Does not implicitly {@link google.analytics.data.v1alpha.UserSegmentConditionGroup.verify|verify} messages. - * @param message UserSegmentConditionGroup message or plain object to encode + * Encodes the specified SessionSegmentCriteria message. Does not implicitly {@link google.analytics.data.v1alpha.SessionSegmentCriteria.verify|verify} messages. + * @param message SessionSegmentCriteria message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.IUserSegmentConditionGroup, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.ISessionSegmentCriteria, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified UserSegmentConditionGroup message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.UserSegmentConditionGroup.verify|verify} messages. - * @param message UserSegmentConditionGroup message or plain object to encode + * Encodes the specified SessionSegmentCriteria message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SessionSegmentCriteria.verify|verify} messages. + * @param message SessionSegmentCriteria message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IUserSegmentConditionGroup, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.ISessionSegmentCriteria, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a UserSegmentConditionGroup message from the specified reader or buffer. + * Decodes a SessionSegmentCriteria message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns UserSegmentConditionGroup + * @returns SessionSegmentCriteria * @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.analytics.data.v1alpha.UserSegmentConditionGroup; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.SessionSegmentCriteria; /** - * Decodes a UserSegmentConditionGroup message from the specified reader or buffer, length delimited. + * Decodes a SessionSegmentCriteria message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns UserSegmentConditionGroup + * @returns SessionSegmentCriteria * @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.analytics.data.v1alpha.UserSegmentConditionGroup; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.SessionSegmentCriteria; /** - * Verifies a UserSegmentConditionGroup message. + * Verifies a SessionSegmentCriteria 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 UserSegmentConditionGroup message from a plain object. Also converts values to their respective internal types. + * Creates a SessionSegmentCriteria message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns UserSegmentConditionGroup + * @returns SessionSegmentCriteria */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.UserSegmentConditionGroup; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.SessionSegmentCriteria; /** - * Creates a plain object from a UserSegmentConditionGroup message. Also converts values to other types if specified. - * @param message UserSegmentConditionGroup + * Creates a plain object from a SessionSegmentCriteria message. Also converts values to other types if specified. + * @param message SessionSegmentCriteria * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.UserSegmentConditionGroup, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.SessionSegmentCriteria, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this UserSegmentConditionGroup to JSON. + * Converts this SessionSegmentCriteria to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for UserSegmentConditionGroup + * Gets the default type url for SessionSegmentCriteria * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a UserSegmentSequenceGroup. */ - interface IUserSegmentSequenceGroup { + /** SessionCriteriaScoping enum. */ + enum SessionCriteriaScoping { + SESSION_CRITERIA_SCOPING_UNSPECIFIED = 0, + SESSION_CRITERIA_WITHIN_SAME_EVENT = 1, + SESSION_CRITERIA_WITHIN_SAME_SESSION = 2 + } - /** UserSegmentSequenceGroup sequenceScoping */ - sequenceScoping?: (google.analytics.data.v1alpha.UserCriteriaScoping|keyof typeof google.analytics.data.v1alpha.UserCriteriaScoping|null); + /** Properties of a SessionSegmentConditionGroup. */ + interface ISessionSegmentConditionGroup { - /** UserSegmentSequenceGroup sequenceMaximumDuration */ - sequenceMaximumDuration?: (google.protobuf.IDuration|null); + /** SessionSegmentConditionGroup conditionScoping */ + conditionScoping?: (google.analytics.data.v1alpha.SessionCriteriaScoping|keyof typeof google.analytics.data.v1alpha.SessionCriteriaScoping|null); - /** UserSegmentSequenceGroup userSequenceSteps */ - userSequenceSteps?: (google.analytics.data.v1alpha.IUserSequenceStep[]|null); + /** SessionSegmentConditionGroup segmentFilterExpression */ + segmentFilterExpression?: (google.analytics.data.v1alpha.ISegmentFilterExpression|null); } - /** Represents a UserSegmentSequenceGroup. */ - class UserSegmentSequenceGroup implements IUserSegmentSequenceGroup { + /** Represents a SessionSegmentConditionGroup. */ + class SessionSegmentConditionGroup implements ISessionSegmentConditionGroup { /** - * Constructs a new UserSegmentSequenceGroup. + * Constructs a new SessionSegmentConditionGroup. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.IUserSegmentSequenceGroup); - - /** UserSegmentSequenceGroup sequenceScoping. */ - public sequenceScoping: (google.analytics.data.v1alpha.UserCriteriaScoping|keyof typeof google.analytics.data.v1alpha.UserCriteriaScoping); + constructor(properties?: google.analytics.data.v1alpha.ISessionSegmentConditionGroup); - /** UserSegmentSequenceGroup sequenceMaximumDuration. */ - public sequenceMaximumDuration?: (google.protobuf.IDuration|null); + /** SessionSegmentConditionGroup conditionScoping. */ + public conditionScoping: (google.analytics.data.v1alpha.SessionCriteriaScoping|keyof typeof google.analytics.data.v1alpha.SessionCriteriaScoping); - /** UserSegmentSequenceGroup userSequenceSteps. */ - public userSequenceSteps: google.analytics.data.v1alpha.IUserSequenceStep[]; + /** SessionSegmentConditionGroup segmentFilterExpression. */ + public segmentFilterExpression?: (google.analytics.data.v1alpha.ISegmentFilterExpression|null); /** - * Creates a new UserSegmentSequenceGroup instance using the specified properties. + * Creates a new SessionSegmentConditionGroup instance using the specified properties. * @param [properties] Properties to set - * @returns UserSegmentSequenceGroup instance + * @returns SessionSegmentConditionGroup instance */ - public static create(properties?: google.analytics.data.v1alpha.IUserSegmentSequenceGroup): google.analytics.data.v1alpha.UserSegmentSequenceGroup; + public static create(properties?: google.analytics.data.v1alpha.ISessionSegmentConditionGroup): google.analytics.data.v1alpha.SessionSegmentConditionGroup; /** - * Encodes the specified UserSegmentSequenceGroup message. Does not implicitly {@link google.analytics.data.v1alpha.UserSegmentSequenceGroup.verify|verify} messages. - * @param message UserSegmentSequenceGroup message or plain object to encode + * Encodes the specified SessionSegmentConditionGroup message. Does not implicitly {@link google.analytics.data.v1alpha.SessionSegmentConditionGroup.verify|verify} messages. + * @param message SessionSegmentConditionGroup message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.IUserSegmentSequenceGroup, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.ISessionSegmentConditionGroup, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified UserSegmentSequenceGroup message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.UserSegmentSequenceGroup.verify|verify} messages. - * @param message UserSegmentSequenceGroup message or plain object to encode + * Encodes the specified SessionSegmentConditionGroup message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SessionSegmentConditionGroup.verify|verify} messages. + * @param message SessionSegmentConditionGroup message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IUserSegmentSequenceGroup, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.ISessionSegmentConditionGroup, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a UserSegmentSequenceGroup message from the specified reader or buffer. + * Decodes a SessionSegmentConditionGroup message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns UserSegmentSequenceGroup + * @returns SessionSegmentConditionGroup * @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.analytics.data.v1alpha.UserSegmentSequenceGroup; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.SessionSegmentConditionGroup; /** - * Decodes a UserSegmentSequenceGroup message from the specified reader or buffer, length delimited. + * Decodes a SessionSegmentConditionGroup message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns UserSegmentSequenceGroup + * @returns SessionSegmentConditionGroup * @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.analytics.data.v1alpha.UserSegmentSequenceGroup; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.SessionSegmentConditionGroup; /** - * Verifies a UserSegmentSequenceGroup message. + * Verifies a SessionSegmentConditionGroup 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 UserSegmentSequenceGroup message from a plain object. Also converts values to their respective internal types. + * Creates a SessionSegmentConditionGroup message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns UserSegmentSequenceGroup + * @returns SessionSegmentConditionGroup */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.UserSegmentSequenceGroup; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.SessionSegmentConditionGroup; /** - * Creates a plain object from a UserSegmentSequenceGroup message. Also converts values to other types if specified. - * @param message UserSegmentSequenceGroup + * Creates a plain object from a SessionSegmentConditionGroup message. Also converts values to other types if specified. + * @param message SessionSegmentConditionGroup * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.UserSegmentSequenceGroup, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.SessionSegmentConditionGroup, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this UserSegmentSequenceGroup to JSON. + * Converts this SessionSegmentConditionGroup to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for UserSegmentSequenceGroup + * Gets the default type url for SessionSegmentConditionGroup * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a UserSequenceStep. */ - interface IUserSequenceStep { - - /** UserSequenceStep isDirectlyFollowedBy */ - isDirectlyFollowedBy?: (boolean|null); + /** Properties of a SessionSegmentExclusion. */ + interface ISessionSegmentExclusion { - /** UserSequenceStep stepScoping */ - stepScoping?: (google.analytics.data.v1alpha.UserCriteriaScoping|keyof typeof google.analytics.data.v1alpha.UserCriteriaScoping|null); + /** SessionSegmentExclusion sessionExclusionDuration */ + sessionExclusionDuration?: (google.analytics.data.v1alpha.SessionExclusionDuration|keyof typeof google.analytics.data.v1alpha.SessionExclusionDuration|null); - /** UserSequenceStep segmentFilterExpression */ - segmentFilterExpression?: (google.analytics.data.v1alpha.ISegmentFilterExpression|null); + /** SessionSegmentExclusion sessionExclusionCriteria */ + sessionExclusionCriteria?: (google.analytics.data.v1alpha.ISessionSegmentCriteria|null); } - /** Represents a UserSequenceStep. */ - class UserSequenceStep implements IUserSequenceStep { + /** Represents a SessionSegmentExclusion. */ + class SessionSegmentExclusion implements ISessionSegmentExclusion { /** - * Constructs a new UserSequenceStep. + * Constructs a new SessionSegmentExclusion. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.IUserSequenceStep); - - /** UserSequenceStep isDirectlyFollowedBy. */ - public isDirectlyFollowedBy: boolean; + constructor(properties?: google.analytics.data.v1alpha.ISessionSegmentExclusion); - /** UserSequenceStep stepScoping. */ - public stepScoping: (google.analytics.data.v1alpha.UserCriteriaScoping|keyof typeof google.analytics.data.v1alpha.UserCriteriaScoping); + /** SessionSegmentExclusion sessionExclusionDuration. */ + public sessionExclusionDuration: (google.analytics.data.v1alpha.SessionExclusionDuration|keyof typeof google.analytics.data.v1alpha.SessionExclusionDuration); - /** UserSequenceStep segmentFilterExpression. */ - public segmentFilterExpression?: (google.analytics.data.v1alpha.ISegmentFilterExpression|null); + /** SessionSegmentExclusion sessionExclusionCriteria. */ + public sessionExclusionCriteria?: (google.analytics.data.v1alpha.ISessionSegmentCriteria|null); /** - * Creates a new UserSequenceStep instance using the specified properties. + * Creates a new SessionSegmentExclusion instance using the specified properties. * @param [properties] Properties to set - * @returns UserSequenceStep instance + * @returns SessionSegmentExclusion instance */ - public static create(properties?: google.analytics.data.v1alpha.IUserSequenceStep): google.analytics.data.v1alpha.UserSequenceStep; + public static create(properties?: google.analytics.data.v1alpha.ISessionSegmentExclusion): google.analytics.data.v1alpha.SessionSegmentExclusion; /** - * Encodes the specified UserSequenceStep message. Does not implicitly {@link google.analytics.data.v1alpha.UserSequenceStep.verify|verify} messages. - * @param message UserSequenceStep message or plain object to encode + * Encodes the specified SessionSegmentExclusion message. Does not implicitly {@link google.analytics.data.v1alpha.SessionSegmentExclusion.verify|verify} messages. + * @param message SessionSegmentExclusion message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.IUserSequenceStep, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.ISessionSegmentExclusion, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified UserSequenceStep message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.UserSequenceStep.verify|verify} messages. - * @param message UserSequenceStep message or plain object to encode + * Encodes the specified SessionSegmentExclusion message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SessionSegmentExclusion.verify|verify} messages. + * @param message SessionSegmentExclusion message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IUserSequenceStep, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.ISessionSegmentExclusion, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a UserSequenceStep message from the specified reader or buffer. + * Decodes a SessionSegmentExclusion message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns UserSequenceStep + * @returns SessionSegmentExclusion * @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.analytics.data.v1alpha.UserSequenceStep; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.SessionSegmentExclusion; /** - * Decodes a UserSequenceStep message from the specified reader or buffer, length delimited. + * Decodes a SessionSegmentExclusion message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns UserSequenceStep + * @returns SessionSegmentExclusion * @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.analytics.data.v1alpha.UserSequenceStep; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.SessionSegmentExclusion; /** - * Verifies a UserSequenceStep message. + * Verifies a SessionSegmentExclusion 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 UserSequenceStep message from a plain object. Also converts values to their respective internal types. + * Creates a SessionSegmentExclusion message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns UserSequenceStep + * @returns SessionSegmentExclusion */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.UserSequenceStep; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.SessionSegmentExclusion; /** - * Creates a plain object from a UserSequenceStep message. Also converts values to other types if specified. - * @param message UserSequenceStep + * Creates a plain object from a SessionSegmentExclusion message. Also converts values to other types if specified. + * @param message SessionSegmentExclusion * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.UserSequenceStep, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.SessionSegmentExclusion, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this UserSequenceStep to JSON. + * Converts this SessionSegmentExclusion to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for UserSequenceStep + * Gets the default type url for SessionSegmentExclusion * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a UserSegmentExclusion. */ - interface IUserSegmentExclusion { + /** SessionExclusionDuration enum. */ + enum SessionExclusionDuration { + SESSION_EXCLUSION_DURATION_UNSPECIFIED = 0, + SESSION_EXCLUSION_TEMPORARY = 1, + SESSION_EXCLUSION_PERMANENT = 2 + } + + /** Properties of an EventSegment. */ + interface IEventSegment { - /** UserSegmentExclusion userExclusionDuration */ - userExclusionDuration?: (google.analytics.data.v1alpha.UserExclusionDuration|keyof typeof google.analytics.data.v1alpha.UserExclusionDuration|null); + /** EventSegment eventInclusionCriteria */ + eventInclusionCriteria?: (google.analytics.data.v1alpha.IEventSegmentCriteria|null); - /** UserSegmentExclusion userExclusionCriteria */ - userExclusionCriteria?: (google.analytics.data.v1alpha.IUserSegmentCriteria|null); + /** EventSegment exclusion */ + exclusion?: (google.analytics.data.v1alpha.IEventSegmentExclusion|null); } - /** Represents a UserSegmentExclusion. */ - class UserSegmentExclusion implements IUserSegmentExclusion { + /** Represents an EventSegment. */ + class EventSegment implements IEventSegment { /** - * Constructs a new UserSegmentExclusion. + * Constructs a new EventSegment. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.IUserSegmentExclusion); + constructor(properties?: google.analytics.data.v1alpha.IEventSegment); - /** UserSegmentExclusion userExclusionDuration. */ - public userExclusionDuration: (google.analytics.data.v1alpha.UserExclusionDuration|keyof typeof google.analytics.data.v1alpha.UserExclusionDuration); + /** EventSegment eventInclusionCriteria. */ + public eventInclusionCriteria?: (google.analytics.data.v1alpha.IEventSegmentCriteria|null); - /** UserSegmentExclusion userExclusionCriteria. */ - public userExclusionCriteria?: (google.analytics.data.v1alpha.IUserSegmentCriteria|null); + /** EventSegment exclusion. */ + public exclusion?: (google.analytics.data.v1alpha.IEventSegmentExclusion|null); /** - * Creates a new UserSegmentExclusion instance using the specified properties. + * Creates a new EventSegment instance using the specified properties. * @param [properties] Properties to set - * @returns UserSegmentExclusion instance + * @returns EventSegment instance */ - public static create(properties?: google.analytics.data.v1alpha.IUserSegmentExclusion): google.analytics.data.v1alpha.UserSegmentExclusion; + public static create(properties?: google.analytics.data.v1alpha.IEventSegment): google.analytics.data.v1alpha.EventSegment; /** - * Encodes the specified UserSegmentExclusion message. Does not implicitly {@link google.analytics.data.v1alpha.UserSegmentExclusion.verify|verify} messages. - * @param message UserSegmentExclusion message or plain object to encode + * Encodes the specified EventSegment message. Does not implicitly {@link google.analytics.data.v1alpha.EventSegment.verify|verify} messages. + * @param message EventSegment message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.IUserSegmentExclusion, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IEventSegment, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified UserSegmentExclusion message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.UserSegmentExclusion.verify|verify} messages. - * @param message UserSegmentExclusion message or plain object to encode + * Encodes the specified EventSegment message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.EventSegment.verify|verify} messages. + * @param message EventSegment message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IUserSegmentExclusion, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IEventSegment, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a UserSegmentExclusion message from the specified reader or buffer. + * Decodes an EventSegment message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns UserSegmentExclusion + * @returns EventSegment * @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.analytics.data.v1alpha.UserSegmentExclusion; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.EventSegment; /** - * Decodes a UserSegmentExclusion message from the specified reader or buffer, length delimited. + * Decodes an EventSegment message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns UserSegmentExclusion + * @returns EventSegment * @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.analytics.data.v1alpha.UserSegmentExclusion; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.EventSegment; /** - * Verifies a UserSegmentExclusion message. + * Verifies an EventSegment 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 UserSegmentExclusion message from a plain object. Also converts values to their respective internal types. + * Creates an EventSegment message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns UserSegmentExclusion + * @returns EventSegment */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.UserSegmentExclusion; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.EventSegment; /** - * Creates a plain object from a UserSegmentExclusion message. Also converts values to other types if specified. - * @param message UserSegmentExclusion + * Creates a plain object from an EventSegment message. Also converts values to other types if specified. + * @param message EventSegment * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.UserSegmentExclusion, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.EventSegment, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this UserSegmentExclusion to JSON. + * Converts this EventSegment to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for UserSegmentExclusion + * Gets the default type url for EventSegment * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** UserExclusionDuration enum. */ - enum UserExclusionDuration { - USER_EXCLUSION_DURATION_UNSPECIFIED = 0, - USER_EXCLUSION_TEMPORARY = 1, - USER_EXCLUSION_PERMANENT = 2 - } - - /** Properties of a SessionSegment. */ - interface ISessionSegment { - - /** SessionSegment sessionInclusionCriteria */ - sessionInclusionCriteria?: (google.analytics.data.v1alpha.ISessionSegmentCriteria|null); + /** Properties of an EventSegmentCriteria. */ + interface IEventSegmentCriteria { - /** SessionSegment exclusion */ - exclusion?: (google.analytics.data.v1alpha.ISessionSegmentExclusion|null); + /** EventSegmentCriteria andConditionGroups */ + andConditionGroups?: (google.analytics.data.v1alpha.IEventSegmentConditionGroup[]|null); } - /** Represents a SessionSegment. */ - class SessionSegment implements ISessionSegment { + /** Represents an EventSegmentCriteria. */ + class EventSegmentCriteria implements IEventSegmentCriteria { /** - * Constructs a new SessionSegment. + * Constructs a new EventSegmentCriteria. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.ISessionSegment); - - /** SessionSegment sessionInclusionCriteria. */ - public sessionInclusionCriteria?: (google.analytics.data.v1alpha.ISessionSegmentCriteria|null); + constructor(properties?: google.analytics.data.v1alpha.IEventSegmentCriteria); - /** SessionSegment exclusion. */ - public exclusion?: (google.analytics.data.v1alpha.ISessionSegmentExclusion|null); + /** EventSegmentCriteria andConditionGroups. */ + public andConditionGroups: google.analytics.data.v1alpha.IEventSegmentConditionGroup[]; /** - * Creates a new SessionSegment instance using the specified properties. + * Creates a new EventSegmentCriteria instance using the specified properties. * @param [properties] Properties to set - * @returns SessionSegment instance + * @returns EventSegmentCriteria instance */ - public static create(properties?: google.analytics.data.v1alpha.ISessionSegment): google.analytics.data.v1alpha.SessionSegment; + public static create(properties?: google.analytics.data.v1alpha.IEventSegmentCriteria): google.analytics.data.v1alpha.EventSegmentCriteria; /** - * Encodes the specified SessionSegment message. Does not implicitly {@link google.analytics.data.v1alpha.SessionSegment.verify|verify} messages. - * @param message SessionSegment message or plain object to encode + * Encodes the specified EventSegmentCriteria message. Does not implicitly {@link google.analytics.data.v1alpha.EventSegmentCriteria.verify|verify} messages. + * @param message EventSegmentCriteria message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.ISessionSegment, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IEventSegmentCriteria, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified SessionSegment message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SessionSegment.verify|verify} messages. - * @param message SessionSegment message or plain object to encode + * Encodes the specified EventSegmentCriteria message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.EventSegmentCriteria.verify|verify} messages. + * @param message EventSegmentCriteria message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.ISessionSegment, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IEventSegmentCriteria, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a SessionSegment message from the specified reader or buffer. + * Decodes an EventSegmentCriteria message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns SessionSegment + * @returns EventSegmentCriteria * @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.analytics.data.v1alpha.SessionSegment; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.EventSegmentCriteria; /** - * Decodes a SessionSegment message from the specified reader or buffer, length delimited. + * Decodes an EventSegmentCriteria message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns SessionSegment + * @returns EventSegmentCriteria * @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.analytics.data.v1alpha.SessionSegment; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.EventSegmentCriteria; /** - * Verifies a SessionSegment message. + * Verifies an EventSegmentCriteria 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 SessionSegment message from a plain object. Also converts values to their respective internal types. + * Creates an EventSegmentCriteria message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns SessionSegment + * @returns EventSegmentCriteria */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.SessionSegment; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.EventSegmentCriteria; /** - * Creates a plain object from a SessionSegment message. Also converts values to other types if specified. - * @param message SessionSegment + * Creates a plain object from an EventSegmentCriteria message. Also converts values to other types if specified. + * @param message EventSegmentCriteria * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.SessionSegment, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.EventSegmentCriteria, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this SessionSegment to JSON. + * Converts this EventSegmentCriteria to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for SessionSegment + * Gets the default type url for EventSegmentCriteria * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a SessionSegmentCriteria. */ - interface ISessionSegmentCriteria { + /** EventCriteriaScoping enum. */ + enum EventCriteriaScoping { + EVENT_CRITERIA_SCOPING_UNSPECIFIED = 0, + EVENT_CRITERIA_WITHIN_SAME_EVENT = 1 + } - /** SessionSegmentCriteria andConditionGroups */ - andConditionGroups?: (google.analytics.data.v1alpha.ISessionSegmentConditionGroup[]|null); + /** Properties of an EventSegmentConditionGroup. */ + interface IEventSegmentConditionGroup { + + /** EventSegmentConditionGroup conditionScoping */ + conditionScoping?: (google.analytics.data.v1alpha.EventCriteriaScoping|keyof typeof google.analytics.data.v1alpha.EventCriteriaScoping|null); + + /** EventSegmentConditionGroup segmentFilterExpression */ + segmentFilterExpression?: (google.analytics.data.v1alpha.ISegmentFilterExpression|null); } - /** Represents a SessionSegmentCriteria. */ - class SessionSegmentCriteria implements ISessionSegmentCriteria { + /** Represents an EventSegmentConditionGroup. */ + class EventSegmentConditionGroup implements IEventSegmentConditionGroup { /** - * Constructs a new SessionSegmentCriteria. + * Constructs a new EventSegmentConditionGroup. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.ISessionSegmentCriteria); + constructor(properties?: google.analytics.data.v1alpha.IEventSegmentConditionGroup); - /** SessionSegmentCriteria andConditionGroups. */ - public andConditionGroups: google.analytics.data.v1alpha.ISessionSegmentConditionGroup[]; + /** EventSegmentConditionGroup conditionScoping. */ + public conditionScoping: (google.analytics.data.v1alpha.EventCriteriaScoping|keyof typeof google.analytics.data.v1alpha.EventCriteriaScoping); + + /** EventSegmentConditionGroup segmentFilterExpression. */ + public segmentFilterExpression?: (google.analytics.data.v1alpha.ISegmentFilterExpression|null); /** - * Creates a new SessionSegmentCriteria instance using the specified properties. + * Creates a new EventSegmentConditionGroup instance using the specified properties. * @param [properties] Properties to set - * @returns SessionSegmentCriteria instance + * @returns EventSegmentConditionGroup instance */ - public static create(properties?: google.analytics.data.v1alpha.ISessionSegmentCriteria): google.analytics.data.v1alpha.SessionSegmentCriteria; + public static create(properties?: google.analytics.data.v1alpha.IEventSegmentConditionGroup): google.analytics.data.v1alpha.EventSegmentConditionGroup; /** - * Encodes the specified SessionSegmentCriteria message. Does not implicitly {@link google.analytics.data.v1alpha.SessionSegmentCriteria.verify|verify} messages. - * @param message SessionSegmentCriteria message or plain object to encode + * Encodes the specified EventSegmentConditionGroup message. Does not implicitly {@link google.analytics.data.v1alpha.EventSegmentConditionGroup.verify|verify} messages. + * @param message EventSegmentConditionGroup message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.ISessionSegmentCriteria, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IEventSegmentConditionGroup, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified SessionSegmentCriteria message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SessionSegmentCriteria.verify|verify} messages. - * @param message SessionSegmentCriteria message or plain object to encode + * Encodes the specified EventSegmentConditionGroup message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.EventSegmentConditionGroup.verify|verify} messages. + * @param message EventSegmentConditionGroup message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.ISessionSegmentCriteria, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IEventSegmentConditionGroup, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a SessionSegmentCriteria message from the specified reader or buffer. + * Decodes an EventSegmentConditionGroup message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns SessionSegmentCriteria + * @returns EventSegmentConditionGroup * @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.analytics.data.v1alpha.SessionSegmentCriteria; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.EventSegmentConditionGroup; /** - * Decodes a SessionSegmentCriteria message from the specified reader or buffer, length delimited. + * Decodes an EventSegmentConditionGroup message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns SessionSegmentCriteria + * @returns EventSegmentConditionGroup * @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.analytics.data.v1alpha.SessionSegmentCriteria; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.EventSegmentConditionGroup; /** - * Verifies a SessionSegmentCriteria message. + * Verifies an EventSegmentConditionGroup 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 SessionSegmentCriteria message from a plain object. Also converts values to their respective internal types. + * Creates an EventSegmentConditionGroup message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns SessionSegmentCriteria + * @returns EventSegmentConditionGroup */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.SessionSegmentCriteria; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.EventSegmentConditionGroup; /** - * Creates a plain object from a SessionSegmentCriteria message. Also converts values to other types if specified. - * @param message SessionSegmentCriteria + * Creates a plain object from an EventSegmentConditionGroup message. Also converts values to other types if specified. + * @param message EventSegmentConditionGroup * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.SessionSegmentCriteria, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.EventSegmentConditionGroup, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this SessionSegmentCriteria to JSON. + * Converts this EventSegmentConditionGroup to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for SessionSegmentCriteria + * Gets the default type url for EventSegmentConditionGroup * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** SessionCriteriaScoping enum. */ - enum SessionCriteriaScoping { - SESSION_CRITERIA_SCOPING_UNSPECIFIED = 0, - SESSION_CRITERIA_WITHIN_SAME_EVENT = 1, - SESSION_CRITERIA_WITHIN_SAME_SESSION = 2 - } - - /** Properties of a SessionSegmentConditionGroup. */ - interface ISessionSegmentConditionGroup { - - /** SessionSegmentConditionGroup conditionScoping */ - conditionScoping?: (google.analytics.data.v1alpha.SessionCriteriaScoping|keyof typeof google.analytics.data.v1alpha.SessionCriteriaScoping|null); + /** Properties of an EventSegmentExclusion. */ + interface IEventSegmentExclusion { - /** SessionSegmentConditionGroup segmentFilterExpression */ - segmentFilterExpression?: (google.analytics.data.v1alpha.ISegmentFilterExpression|null); + /** EventSegmentExclusion eventExclusionDuration */ + eventExclusionDuration?: (google.analytics.data.v1alpha.EventExclusionDuration|keyof typeof google.analytics.data.v1alpha.EventExclusionDuration|null); + + /** EventSegmentExclusion eventExclusionCriteria */ + eventExclusionCriteria?: (google.analytics.data.v1alpha.IEventSegmentCriteria|null); } - /** Represents a SessionSegmentConditionGroup. */ - class SessionSegmentConditionGroup implements ISessionSegmentConditionGroup { + /** Represents an EventSegmentExclusion. */ + class EventSegmentExclusion implements IEventSegmentExclusion { /** - * Constructs a new SessionSegmentConditionGroup. + * Constructs a new EventSegmentExclusion. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.ISessionSegmentConditionGroup); + constructor(properties?: google.analytics.data.v1alpha.IEventSegmentExclusion); - /** SessionSegmentConditionGroup conditionScoping. */ - public conditionScoping: (google.analytics.data.v1alpha.SessionCriteriaScoping|keyof typeof google.analytics.data.v1alpha.SessionCriteriaScoping); + /** EventSegmentExclusion eventExclusionDuration. */ + public eventExclusionDuration: (google.analytics.data.v1alpha.EventExclusionDuration|keyof typeof google.analytics.data.v1alpha.EventExclusionDuration); - /** SessionSegmentConditionGroup segmentFilterExpression. */ - public segmentFilterExpression?: (google.analytics.data.v1alpha.ISegmentFilterExpression|null); + /** EventSegmentExclusion eventExclusionCriteria. */ + public eventExclusionCriteria?: (google.analytics.data.v1alpha.IEventSegmentCriteria|null); /** - * Creates a new SessionSegmentConditionGroup instance using the specified properties. + * Creates a new EventSegmentExclusion instance using the specified properties. * @param [properties] Properties to set - * @returns SessionSegmentConditionGroup instance + * @returns EventSegmentExclusion instance */ - public static create(properties?: google.analytics.data.v1alpha.ISessionSegmentConditionGroup): google.analytics.data.v1alpha.SessionSegmentConditionGroup; + public static create(properties?: google.analytics.data.v1alpha.IEventSegmentExclusion): google.analytics.data.v1alpha.EventSegmentExclusion; /** - * Encodes the specified SessionSegmentConditionGroup message. Does not implicitly {@link google.analytics.data.v1alpha.SessionSegmentConditionGroup.verify|verify} messages. - * @param message SessionSegmentConditionGroup message or plain object to encode + * Encodes the specified EventSegmentExclusion message. Does not implicitly {@link google.analytics.data.v1alpha.EventSegmentExclusion.verify|verify} messages. + * @param message EventSegmentExclusion message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.ISessionSegmentConditionGroup, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IEventSegmentExclusion, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified SessionSegmentConditionGroup message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SessionSegmentConditionGroup.verify|verify} messages. - * @param message SessionSegmentConditionGroup message or plain object to encode + * Encodes the specified EventSegmentExclusion message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.EventSegmentExclusion.verify|verify} messages. + * @param message EventSegmentExclusion message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.ISessionSegmentConditionGroup, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IEventSegmentExclusion, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a SessionSegmentConditionGroup message from the specified reader or buffer. + * Decodes an EventSegmentExclusion message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns SessionSegmentConditionGroup + * @returns EventSegmentExclusion * @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.analytics.data.v1alpha.SessionSegmentConditionGroup; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.EventSegmentExclusion; /** - * Decodes a SessionSegmentConditionGroup message from the specified reader or buffer, length delimited. + * Decodes an EventSegmentExclusion message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns SessionSegmentConditionGroup + * @returns EventSegmentExclusion * @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.analytics.data.v1alpha.SessionSegmentConditionGroup; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.EventSegmentExclusion; /** - * Verifies a SessionSegmentConditionGroup message. + * Verifies an EventSegmentExclusion 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 SessionSegmentConditionGroup message from a plain object. Also converts values to their respective internal types. + * Creates an EventSegmentExclusion message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns SessionSegmentConditionGroup + * @returns EventSegmentExclusion */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.SessionSegmentConditionGroup; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.EventSegmentExclusion; /** - * Creates a plain object from a SessionSegmentConditionGroup message. Also converts values to other types if specified. - * @param message SessionSegmentConditionGroup + * Creates a plain object from an EventSegmentExclusion message. Also converts values to other types if specified. + * @param message EventSegmentExclusion * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.SessionSegmentConditionGroup, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.EventSegmentExclusion, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this SessionSegmentConditionGroup to JSON. + * Converts this EventSegmentExclusion to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for SessionSegmentConditionGroup + * Gets the default type url for EventSegmentExclusion * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a SessionSegmentExclusion. */ - interface ISessionSegmentExclusion { + /** EventExclusionDuration enum. */ + enum EventExclusionDuration { + EVENT_EXCLUSION_DURATION_UNSPECIFIED = 0, + EVENT_EXCLUSION_PERMANENT = 1 + } - /** SessionSegmentExclusion sessionExclusionDuration */ - sessionExclusionDuration?: (google.analytics.data.v1alpha.SessionExclusionDuration|keyof typeof google.analytics.data.v1alpha.SessionExclusionDuration|null); + /** Properties of a Segment. */ + interface ISegment { - /** SessionSegmentExclusion sessionExclusionCriteria */ - sessionExclusionCriteria?: (google.analytics.data.v1alpha.ISessionSegmentCriteria|null); + /** Segment name */ + name?: (string|null); + + /** Segment userSegment */ + userSegment?: (google.analytics.data.v1alpha.IUserSegment|null); + + /** Segment sessionSegment */ + sessionSegment?: (google.analytics.data.v1alpha.ISessionSegment|null); + + /** Segment eventSegment */ + eventSegment?: (google.analytics.data.v1alpha.IEventSegment|null); } - /** Represents a SessionSegmentExclusion. */ - class SessionSegmentExclusion implements ISessionSegmentExclusion { + /** Represents a Segment. */ + class Segment implements ISegment { /** - * Constructs a new SessionSegmentExclusion. + * Constructs a new Segment. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.ISessionSegmentExclusion); + constructor(properties?: google.analytics.data.v1alpha.ISegment); - /** SessionSegmentExclusion sessionExclusionDuration. */ - public sessionExclusionDuration: (google.analytics.data.v1alpha.SessionExclusionDuration|keyof typeof google.analytics.data.v1alpha.SessionExclusionDuration); + /** Segment name. */ + public name: string; - /** SessionSegmentExclusion sessionExclusionCriteria. */ - public sessionExclusionCriteria?: (google.analytics.data.v1alpha.ISessionSegmentCriteria|null); + /** Segment userSegment. */ + public userSegment?: (google.analytics.data.v1alpha.IUserSegment|null); + + /** Segment sessionSegment. */ + public sessionSegment?: (google.analytics.data.v1alpha.ISessionSegment|null); + + /** Segment eventSegment. */ + public eventSegment?: (google.analytics.data.v1alpha.IEventSegment|null); + + /** Segment oneSegmentScope. */ + public oneSegmentScope?: ("userSegment"|"sessionSegment"|"eventSegment"); /** - * Creates a new SessionSegmentExclusion instance using the specified properties. + * Creates a new Segment instance using the specified properties. * @param [properties] Properties to set - * @returns SessionSegmentExclusion instance + * @returns Segment instance */ - public static create(properties?: google.analytics.data.v1alpha.ISessionSegmentExclusion): google.analytics.data.v1alpha.SessionSegmentExclusion; + public static create(properties?: google.analytics.data.v1alpha.ISegment): google.analytics.data.v1alpha.Segment; /** - * Encodes the specified SessionSegmentExclusion message. Does not implicitly {@link google.analytics.data.v1alpha.SessionSegmentExclusion.verify|verify} messages. - * @param message SessionSegmentExclusion message or plain object to encode + * Encodes the specified Segment message. Does not implicitly {@link google.analytics.data.v1alpha.Segment.verify|verify} messages. + * @param message Segment message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.ISessionSegmentExclusion, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.ISegment, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified SessionSegmentExclusion message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SessionSegmentExclusion.verify|verify} messages. - * @param message SessionSegmentExclusion message or plain object to encode + * Encodes the specified Segment message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.Segment.verify|verify} messages. + * @param message Segment message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.ISessionSegmentExclusion, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.ISegment, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a SessionSegmentExclusion message from the specified reader or buffer. + * Decodes a Segment message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns SessionSegmentExclusion + * @returns Segment * @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.analytics.data.v1alpha.SessionSegmentExclusion; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.Segment; /** - * Decodes a SessionSegmentExclusion message from the specified reader or buffer, length delimited. + * Decodes a Segment message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns SessionSegmentExclusion + * @returns Segment * @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.analytics.data.v1alpha.SessionSegmentExclusion; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.Segment; /** - * Verifies a SessionSegmentExclusion message. + * Verifies a Segment 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 SessionSegmentExclusion message from a plain object. Also converts values to their respective internal types. + * Creates a Segment message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns SessionSegmentExclusion + * @returns Segment */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.SessionSegmentExclusion; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.Segment; /** - * Creates a plain object from a SessionSegmentExclusion message. Also converts values to other types if specified. - * @param message SessionSegmentExclusion + * Creates a plain object from a Segment message. Also converts values to other types if specified. + * @param message Segment * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.SessionSegmentExclusion, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.Segment, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this SessionSegmentExclusion to JSON. + * Converts this Segment to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for SessionSegmentExclusion + * Gets the default type url for Segment * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** SessionExclusionDuration enum. */ - enum SessionExclusionDuration { - SESSION_EXCLUSION_DURATION_UNSPECIFIED = 0, - SESSION_EXCLUSION_TEMPORARY = 1, - SESSION_EXCLUSION_PERMANENT = 2 - } + /** Properties of a SegmentFilterExpression. */ + interface ISegmentFilterExpression { - /** Properties of an EventSegment. */ - interface IEventSegment { + /** SegmentFilterExpression andGroup */ + andGroup?: (google.analytics.data.v1alpha.ISegmentFilterExpressionList|null); - /** EventSegment eventInclusionCriteria */ - eventInclusionCriteria?: (google.analytics.data.v1alpha.IEventSegmentCriteria|null); + /** SegmentFilterExpression orGroup */ + orGroup?: (google.analytics.data.v1alpha.ISegmentFilterExpressionList|null); - /** EventSegment exclusion */ - exclusion?: (google.analytics.data.v1alpha.IEventSegmentExclusion|null); + /** SegmentFilterExpression notExpression */ + notExpression?: (google.analytics.data.v1alpha.ISegmentFilterExpression|null); + + /** SegmentFilterExpression segmentFilter */ + segmentFilter?: (google.analytics.data.v1alpha.ISegmentFilter|null); + + /** SegmentFilterExpression segmentEventFilter */ + segmentEventFilter?: (google.analytics.data.v1alpha.ISegmentEventFilter|null); } - /** Represents an EventSegment. */ - class EventSegment implements IEventSegment { + /** Represents a SegmentFilterExpression. */ + class SegmentFilterExpression implements ISegmentFilterExpression { /** - * Constructs a new EventSegment. + * Constructs a new SegmentFilterExpression. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.IEventSegment); + constructor(properties?: google.analytics.data.v1alpha.ISegmentFilterExpression); - /** EventSegment eventInclusionCriteria. */ - public eventInclusionCriteria?: (google.analytics.data.v1alpha.IEventSegmentCriteria|null); + /** SegmentFilterExpression andGroup. */ + public andGroup?: (google.analytics.data.v1alpha.ISegmentFilterExpressionList|null); - /** EventSegment exclusion. */ - public exclusion?: (google.analytics.data.v1alpha.IEventSegmentExclusion|null); + /** SegmentFilterExpression orGroup. */ + public orGroup?: (google.analytics.data.v1alpha.ISegmentFilterExpressionList|null); + + /** SegmentFilterExpression notExpression. */ + public notExpression?: (google.analytics.data.v1alpha.ISegmentFilterExpression|null); + + /** SegmentFilterExpression segmentFilter. */ + public segmentFilter?: (google.analytics.data.v1alpha.ISegmentFilter|null); + + /** SegmentFilterExpression segmentEventFilter. */ + public segmentEventFilter?: (google.analytics.data.v1alpha.ISegmentEventFilter|null); + + /** SegmentFilterExpression expr. */ + public expr?: ("andGroup"|"orGroup"|"notExpression"|"segmentFilter"|"segmentEventFilter"); /** - * Creates a new EventSegment instance using the specified properties. + * Creates a new SegmentFilterExpression instance using the specified properties. * @param [properties] Properties to set - * @returns EventSegment instance + * @returns SegmentFilterExpression instance */ - public static create(properties?: google.analytics.data.v1alpha.IEventSegment): google.analytics.data.v1alpha.EventSegment; + public static create(properties?: google.analytics.data.v1alpha.ISegmentFilterExpression): google.analytics.data.v1alpha.SegmentFilterExpression; /** - * Encodes the specified EventSegment message. Does not implicitly {@link google.analytics.data.v1alpha.EventSegment.verify|verify} messages. - * @param message EventSegment message or plain object to encode + * Encodes the specified SegmentFilterExpression message. Does not implicitly {@link google.analytics.data.v1alpha.SegmentFilterExpression.verify|verify} messages. + * @param message SegmentFilterExpression message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.IEventSegment, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.ISegmentFilterExpression, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified EventSegment message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.EventSegment.verify|verify} messages. - * @param message EventSegment message or plain object to encode + * Encodes the specified SegmentFilterExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SegmentFilterExpression.verify|verify} messages. + * @param message SegmentFilterExpression message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IEventSegment, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.ISegmentFilterExpression, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes an EventSegment message from the specified reader or buffer. + * Decodes a SegmentFilterExpression message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns EventSegment + * @returns SegmentFilterExpression * @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.analytics.data.v1alpha.EventSegment; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.SegmentFilterExpression; /** - * Decodes an EventSegment message from the specified reader or buffer, length delimited. + * Decodes a SegmentFilterExpression message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns EventSegment + * @returns SegmentFilterExpression * @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.analytics.data.v1alpha.EventSegment; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.SegmentFilterExpression; /** - * Verifies an EventSegment message. + * Verifies a SegmentFilterExpression 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 EventSegment message from a plain object. Also converts values to their respective internal types. + * Creates a SegmentFilterExpression message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns EventSegment + * @returns SegmentFilterExpression */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.EventSegment; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.SegmentFilterExpression; /** - * Creates a plain object from an EventSegment message. Also converts values to other types if specified. - * @param message EventSegment + * Creates a plain object from a SegmentFilterExpression message. Also converts values to other types if specified. + * @param message SegmentFilterExpression * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.EventSegment, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.SegmentFilterExpression, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this EventSegment to JSON. + * Converts this SegmentFilterExpression to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for EventSegment + * Gets the default type url for SegmentFilterExpression * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of an EventSegmentCriteria. */ - interface IEventSegmentCriteria { + /** Properties of a SegmentFilterExpressionList. */ + interface ISegmentFilterExpressionList { - /** EventSegmentCriteria andConditionGroups */ - andConditionGroups?: (google.analytics.data.v1alpha.IEventSegmentConditionGroup[]|null); + /** SegmentFilterExpressionList expressions */ + expressions?: (google.analytics.data.v1alpha.ISegmentFilterExpression[]|null); } - /** Represents an EventSegmentCriteria. */ - class EventSegmentCriteria implements IEventSegmentCriteria { + /** Represents a SegmentFilterExpressionList. */ + class SegmentFilterExpressionList implements ISegmentFilterExpressionList { /** - * Constructs a new EventSegmentCriteria. + * Constructs a new SegmentFilterExpressionList. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.IEventSegmentCriteria); + constructor(properties?: google.analytics.data.v1alpha.ISegmentFilterExpressionList); - /** EventSegmentCriteria andConditionGroups. */ - public andConditionGroups: google.analytics.data.v1alpha.IEventSegmentConditionGroup[]; + /** SegmentFilterExpressionList expressions. */ + public expressions: google.analytics.data.v1alpha.ISegmentFilterExpression[]; /** - * Creates a new EventSegmentCriteria instance using the specified properties. + * Creates a new SegmentFilterExpressionList instance using the specified properties. * @param [properties] Properties to set - * @returns EventSegmentCriteria instance + * @returns SegmentFilterExpressionList instance */ - public static create(properties?: google.analytics.data.v1alpha.IEventSegmentCriteria): google.analytics.data.v1alpha.EventSegmentCriteria; + public static create(properties?: google.analytics.data.v1alpha.ISegmentFilterExpressionList): google.analytics.data.v1alpha.SegmentFilterExpressionList; /** - * Encodes the specified EventSegmentCriteria message. Does not implicitly {@link google.analytics.data.v1alpha.EventSegmentCriteria.verify|verify} messages. - * @param message EventSegmentCriteria message or plain object to encode + * Encodes the specified SegmentFilterExpressionList message. Does not implicitly {@link google.analytics.data.v1alpha.SegmentFilterExpressionList.verify|verify} messages. + * @param message SegmentFilterExpressionList message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.IEventSegmentCriteria, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.ISegmentFilterExpressionList, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified EventSegmentCriteria message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.EventSegmentCriteria.verify|verify} messages. - * @param message EventSegmentCriteria message or plain object to encode + * Encodes the specified SegmentFilterExpressionList message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SegmentFilterExpressionList.verify|verify} messages. + * @param message SegmentFilterExpressionList message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IEventSegmentCriteria, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.ISegmentFilterExpressionList, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes an EventSegmentCriteria message from the specified reader or buffer. + * Decodes a SegmentFilterExpressionList message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns EventSegmentCriteria + * @returns SegmentFilterExpressionList * @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.analytics.data.v1alpha.EventSegmentCriteria; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.SegmentFilterExpressionList; /** - * Decodes an EventSegmentCriteria message from the specified reader or buffer, length delimited. + * Decodes a SegmentFilterExpressionList message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns EventSegmentCriteria + * @returns SegmentFilterExpressionList * @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.analytics.data.v1alpha.EventSegmentCriteria; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.SegmentFilterExpressionList; /** - * Verifies an EventSegmentCriteria message. + * Verifies a SegmentFilterExpressionList 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 EventSegmentCriteria message from a plain object. Also converts values to their respective internal types. + * Creates a SegmentFilterExpressionList message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns EventSegmentCriteria + * @returns SegmentFilterExpressionList */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.EventSegmentCriteria; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.SegmentFilterExpressionList; /** - * Creates a plain object from an EventSegmentCriteria message. Also converts values to other types if specified. - * @param message EventSegmentCriteria + * Creates a plain object from a SegmentFilterExpressionList message. Also converts values to other types if specified. + * @param message SegmentFilterExpressionList * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.EventSegmentCriteria, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.SegmentFilterExpressionList, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this EventSegmentCriteria to JSON. + * Converts this SegmentFilterExpressionList to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for EventSegmentCriteria + * Gets the default type url for SegmentFilterExpressionList * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** EventCriteriaScoping enum. */ - enum EventCriteriaScoping { - EVENT_CRITERIA_SCOPING_UNSPECIFIED = 0, - EVENT_CRITERIA_WITHIN_SAME_EVENT = 1 - } + /** Properties of a SegmentFilter. */ + interface ISegmentFilter { - /** Properties of an EventSegmentConditionGroup. */ - interface IEventSegmentConditionGroup { + /** SegmentFilter fieldName */ + fieldName?: (string|null); - /** EventSegmentConditionGroup conditionScoping */ - conditionScoping?: (google.analytics.data.v1alpha.EventCriteriaScoping|keyof typeof google.analytics.data.v1alpha.EventCriteriaScoping|null); + /** SegmentFilter stringFilter */ + stringFilter?: (google.analytics.data.v1alpha.IStringFilter|null); - /** EventSegmentConditionGroup segmentFilterExpression */ - segmentFilterExpression?: (google.analytics.data.v1alpha.ISegmentFilterExpression|null); + /** SegmentFilter inListFilter */ + inListFilter?: (google.analytics.data.v1alpha.IInListFilter|null); + + /** SegmentFilter numericFilter */ + numericFilter?: (google.analytics.data.v1alpha.INumericFilter|null); + + /** SegmentFilter betweenFilter */ + betweenFilter?: (google.analytics.data.v1alpha.IBetweenFilter|null); + + /** SegmentFilter filterScoping */ + filterScoping?: (google.analytics.data.v1alpha.ISegmentFilterScoping|null); } - /** Represents an EventSegmentConditionGroup. */ - class EventSegmentConditionGroup implements IEventSegmentConditionGroup { + /** Represents a SegmentFilter. */ + class SegmentFilter implements ISegmentFilter { /** - * Constructs a new EventSegmentConditionGroup. + * Constructs a new SegmentFilter. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.IEventSegmentConditionGroup); + constructor(properties?: google.analytics.data.v1alpha.ISegmentFilter); - /** EventSegmentConditionGroup conditionScoping. */ - public conditionScoping: (google.analytics.data.v1alpha.EventCriteriaScoping|keyof typeof google.analytics.data.v1alpha.EventCriteriaScoping); + /** SegmentFilter fieldName. */ + public fieldName: string; - /** EventSegmentConditionGroup segmentFilterExpression. */ - public segmentFilterExpression?: (google.analytics.data.v1alpha.ISegmentFilterExpression|null); + /** SegmentFilter stringFilter. */ + public stringFilter?: (google.analytics.data.v1alpha.IStringFilter|null); + + /** SegmentFilter inListFilter. */ + public inListFilter?: (google.analytics.data.v1alpha.IInListFilter|null); + + /** SegmentFilter numericFilter. */ + public numericFilter?: (google.analytics.data.v1alpha.INumericFilter|null); + + /** SegmentFilter betweenFilter. */ + public betweenFilter?: (google.analytics.data.v1alpha.IBetweenFilter|null); + + /** SegmentFilter filterScoping. */ + public filterScoping?: (google.analytics.data.v1alpha.ISegmentFilterScoping|null); + + /** SegmentFilter oneFilter. */ + public oneFilter?: ("stringFilter"|"inListFilter"|"numericFilter"|"betweenFilter"); /** - * Creates a new EventSegmentConditionGroup instance using the specified properties. + * Creates a new SegmentFilter instance using the specified properties. * @param [properties] Properties to set - * @returns EventSegmentConditionGroup instance + * @returns SegmentFilter instance */ - public static create(properties?: google.analytics.data.v1alpha.IEventSegmentConditionGroup): google.analytics.data.v1alpha.EventSegmentConditionGroup; + public static create(properties?: google.analytics.data.v1alpha.ISegmentFilter): google.analytics.data.v1alpha.SegmentFilter; /** - * Encodes the specified EventSegmentConditionGroup message. Does not implicitly {@link google.analytics.data.v1alpha.EventSegmentConditionGroup.verify|verify} messages. - * @param message EventSegmentConditionGroup message or plain object to encode + * Encodes the specified SegmentFilter message. Does not implicitly {@link google.analytics.data.v1alpha.SegmentFilter.verify|verify} messages. + * @param message SegmentFilter message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.IEventSegmentConditionGroup, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.ISegmentFilter, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified EventSegmentConditionGroup message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.EventSegmentConditionGroup.verify|verify} messages. - * @param message EventSegmentConditionGroup message or plain object to encode + * Encodes the specified SegmentFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SegmentFilter.verify|verify} messages. + * @param message SegmentFilter message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IEventSegmentConditionGroup, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.ISegmentFilter, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes an EventSegmentConditionGroup message from the specified reader or buffer. + * Decodes a SegmentFilter message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns EventSegmentConditionGroup + * @returns SegmentFilter * @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.analytics.data.v1alpha.EventSegmentConditionGroup; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.SegmentFilter; /** - * Decodes an EventSegmentConditionGroup message from the specified reader or buffer, length delimited. + * Decodes a SegmentFilter message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns EventSegmentConditionGroup + * @returns SegmentFilter * @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.analytics.data.v1alpha.EventSegmentConditionGroup; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.SegmentFilter; /** - * Verifies an EventSegmentConditionGroup message. + * Verifies a SegmentFilter 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 EventSegmentConditionGroup message from a plain object. Also converts values to their respective internal types. + * Creates a SegmentFilter message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns EventSegmentConditionGroup + * @returns SegmentFilter */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.EventSegmentConditionGroup; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.SegmentFilter; /** - * Creates a plain object from an EventSegmentConditionGroup message. Also converts values to other types if specified. - * @param message EventSegmentConditionGroup + * Creates a plain object from a SegmentFilter message. Also converts values to other types if specified. + * @param message SegmentFilter * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.EventSegmentConditionGroup, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.SegmentFilter, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this EventSegmentConditionGroup to JSON. + * Converts this SegmentFilter to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for EventSegmentConditionGroup + * Gets the default type url for SegmentFilter * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of an EventSegmentExclusion. */ - interface IEventSegmentExclusion { - - /** EventSegmentExclusion eventExclusionDuration */ - eventExclusionDuration?: (google.analytics.data.v1alpha.EventExclusionDuration|keyof typeof google.analytics.data.v1alpha.EventExclusionDuration|null); + /** Properties of a SegmentFilterScoping. */ + interface ISegmentFilterScoping { - /** EventSegmentExclusion eventExclusionCriteria */ - eventExclusionCriteria?: (google.analytics.data.v1alpha.IEventSegmentCriteria|null); + /** SegmentFilterScoping atAnyPointInTime */ + atAnyPointInTime?: (boolean|null); } - /** Represents an EventSegmentExclusion. */ - class EventSegmentExclusion implements IEventSegmentExclusion { + /** Represents a SegmentFilterScoping. */ + class SegmentFilterScoping implements ISegmentFilterScoping { /** - * Constructs a new EventSegmentExclusion. + * Constructs a new SegmentFilterScoping. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.IEventSegmentExclusion); - - /** EventSegmentExclusion eventExclusionDuration. */ - public eventExclusionDuration: (google.analytics.data.v1alpha.EventExclusionDuration|keyof typeof google.analytics.data.v1alpha.EventExclusionDuration); + constructor(properties?: google.analytics.data.v1alpha.ISegmentFilterScoping); - /** EventSegmentExclusion eventExclusionCriteria. */ - public eventExclusionCriteria?: (google.analytics.data.v1alpha.IEventSegmentCriteria|null); + /** SegmentFilterScoping atAnyPointInTime. */ + public atAnyPointInTime?: (boolean|null); /** - * Creates a new EventSegmentExclusion instance using the specified properties. + * Creates a new SegmentFilterScoping instance using the specified properties. * @param [properties] Properties to set - * @returns EventSegmentExclusion instance + * @returns SegmentFilterScoping instance */ - public static create(properties?: google.analytics.data.v1alpha.IEventSegmentExclusion): google.analytics.data.v1alpha.EventSegmentExclusion; + public static create(properties?: google.analytics.data.v1alpha.ISegmentFilterScoping): google.analytics.data.v1alpha.SegmentFilterScoping; /** - * Encodes the specified EventSegmentExclusion message. Does not implicitly {@link google.analytics.data.v1alpha.EventSegmentExclusion.verify|verify} messages. - * @param message EventSegmentExclusion message or plain object to encode + * Encodes the specified SegmentFilterScoping message. Does not implicitly {@link google.analytics.data.v1alpha.SegmentFilterScoping.verify|verify} messages. + * @param message SegmentFilterScoping message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.IEventSegmentExclusion, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.ISegmentFilterScoping, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified EventSegmentExclusion message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.EventSegmentExclusion.verify|verify} messages. - * @param message EventSegmentExclusion message or plain object to encode + * Encodes the specified SegmentFilterScoping message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SegmentFilterScoping.verify|verify} messages. + * @param message SegmentFilterScoping message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IEventSegmentExclusion, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.ISegmentFilterScoping, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes an EventSegmentExclusion message from the specified reader or buffer. + * Decodes a SegmentFilterScoping message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns EventSegmentExclusion + * @returns SegmentFilterScoping * @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.analytics.data.v1alpha.EventSegmentExclusion; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.SegmentFilterScoping; /** - * Decodes an EventSegmentExclusion message from the specified reader or buffer, length delimited. + * Decodes a SegmentFilterScoping message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns EventSegmentExclusion + * @returns SegmentFilterScoping * @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.analytics.data.v1alpha.EventSegmentExclusion; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.SegmentFilterScoping; /** - * Verifies an EventSegmentExclusion message. + * Verifies a SegmentFilterScoping 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 EventSegmentExclusion message from a plain object. Also converts values to their respective internal types. + * Creates a SegmentFilterScoping message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns EventSegmentExclusion + * @returns SegmentFilterScoping */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.EventSegmentExclusion; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.SegmentFilterScoping; - /** - * Creates a plain object from an EventSegmentExclusion message. Also converts values to other types if specified. - * @param message EventSegmentExclusion + /** + * Creates a plain object from a SegmentFilterScoping message. Also converts values to other types if specified. + * @param message SegmentFilterScoping * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.EventSegmentExclusion, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.SegmentFilterScoping, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this EventSegmentExclusion to JSON. + * Converts this SegmentFilterScoping to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for EventSegmentExclusion + * Gets the default type url for SegmentFilterScoping * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** EventExclusionDuration enum. */ - enum EventExclusionDuration { - EVENT_EXCLUSION_DURATION_UNSPECIFIED = 0, - EVENT_EXCLUSION_PERMANENT = 1 - } - - /** Properties of a Segment. */ - interface ISegment { - - /** Segment name */ - name?: (string|null); - - /** Segment userSegment */ - userSegment?: (google.analytics.data.v1alpha.IUserSegment|null); + /** Properties of a SegmentEventFilter. */ + interface ISegmentEventFilter { - /** Segment sessionSegment */ - sessionSegment?: (google.analytics.data.v1alpha.ISessionSegment|null); + /** SegmentEventFilter eventName */ + eventName?: (string|null); - /** Segment eventSegment */ - eventSegment?: (google.analytics.data.v1alpha.IEventSegment|null); + /** SegmentEventFilter segmentParameterFilterExpression */ + segmentParameterFilterExpression?: (google.analytics.data.v1alpha.ISegmentParameterFilterExpression|null); } - /** Represents a Segment. */ - class Segment implements ISegment { + /** Represents a SegmentEventFilter. */ + class SegmentEventFilter implements ISegmentEventFilter { /** - * Constructs a new Segment. + * Constructs a new SegmentEventFilter. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.ISegment); - - /** Segment name. */ - public name: string; - - /** Segment userSegment. */ - public userSegment?: (google.analytics.data.v1alpha.IUserSegment|null); - - /** Segment sessionSegment. */ - public sessionSegment?: (google.analytics.data.v1alpha.ISessionSegment|null); + constructor(properties?: google.analytics.data.v1alpha.ISegmentEventFilter); - /** Segment eventSegment. */ - public eventSegment?: (google.analytics.data.v1alpha.IEventSegment|null); + /** SegmentEventFilter eventName. */ + public eventName?: (string|null); - /** Segment oneSegmentScope. */ - public oneSegmentScope?: ("userSegment"|"sessionSegment"|"eventSegment"); + /** SegmentEventFilter segmentParameterFilterExpression. */ + public segmentParameterFilterExpression?: (google.analytics.data.v1alpha.ISegmentParameterFilterExpression|null); /** - * Creates a new Segment instance using the specified properties. + * Creates a new SegmentEventFilter instance using the specified properties. * @param [properties] Properties to set - * @returns Segment instance + * @returns SegmentEventFilter instance */ - public static create(properties?: google.analytics.data.v1alpha.ISegment): google.analytics.data.v1alpha.Segment; + public static create(properties?: google.analytics.data.v1alpha.ISegmentEventFilter): google.analytics.data.v1alpha.SegmentEventFilter; /** - * Encodes the specified Segment message. Does not implicitly {@link google.analytics.data.v1alpha.Segment.verify|verify} messages. - * @param message Segment message or plain object to encode + * Encodes the specified SegmentEventFilter message. Does not implicitly {@link google.analytics.data.v1alpha.SegmentEventFilter.verify|verify} messages. + * @param message SegmentEventFilter message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.ISegment, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.ISegmentEventFilter, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified Segment message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.Segment.verify|verify} messages. - * @param message Segment message or plain object to encode + * Encodes the specified SegmentEventFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SegmentEventFilter.verify|verify} messages. + * @param message SegmentEventFilter message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.ISegment, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.ISegmentEventFilter, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a Segment message from the specified reader or buffer. + * Decodes a SegmentEventFilter message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns Segment + * @returns SegmentEventFilter * @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.analytics.data.v1alpha.Segment; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.SegmentEventFilter; /** - * Decodes a Segment message from the specified reader or buffer, length delimited. + * Decodes a SegmentEventFilter message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns Segment + * @returns SegmentEventFilter * @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.analytics.data.v1alpha.Segment; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.SegmentEventFilter; /** - * Verifies a Segment message. + * Verifies a SegmentEventFilter 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 Segment message from a plain object. Also converts values to their respective internal types. + * Creates a SegmentEventFilter message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns Segment + * @returns SegmentEventFilter */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.Segment; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.SegmentEventFilter; /** - * Creates a plain object from a Segment message. Also converts values to other types if specified. - * @param message Segment + * Creates a plain object from a SegmentEventFilter message. Also converts values to other types if specified. + * @param message SegmentEventFilter * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.Segment, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.SegmentEventFilter, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this Segment to JSON. + * Converts this SegmentEventFilter to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for Segment + * Gets the default type url for SegmentEventFilter * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a SegmentFilterExpression. */ - interface ISegmentFilterExpression { - - /** SegmentFilterExpression andGroup */ - andGroup?: (google.analytics.data.v1alpha.ISegmentFilterExpressionList|null); + /** Properties of a SegmentParameterFilterExpression. */ + interface ISegmentParameterFilterExpression { - /** SegmentFilterExpression orGroup */ - orGroup?: (google.analytics.data.v1alpha.ISegmentFilterExpressionList|null); + /** SegmentParameterFilterExpression andGroup */ + andGroup?: (google.analytics.data.v1alpha.ISegmentParameterFilterExpressionList|null); - /** SegmentFilterExpression notExpression */ - notExpression?: (google.analytics.data.v1alpha.ISegmentFilterExpression|null); + /** SegmentParameterFilterExpression orGroup */ + orGroup?: (google.analytics.data.v1alpha.ISegmentParameterFilterExpressionList|null); - /** SegmentFilterExpression segmentFilter */ - segmentFilter?: (google.analytics.data.v1alpha.ISegmentFilter|null); + /** SegmentParameterFilterExpression notExpression */ + notExpression?: (google.analytics.data.v1alpha.ISegmentParameterFilterExpression|null); - /** SegmentFilterExpression segmentEventFilter */ - segmentEventFilter?: (google.analytics.data.v1alpha.ISegmentEventFilter|null); + /** SegmentParameterFilterExpression segmentParameterFilter */ + segmentParameterFilter?: (google.analytics.data.v1alpha.ISegmentParameterFilter|null); } - /** Represents a SegmentFilterExpression. */ - class SegmentFilterExpression implements ISegmentFilterExpression { + /** Represents a SegmentParameterFilterExpression. */ + class SegmentParameterFilterExpression implements ISegmentParameterFilterExpression { /** - * Constructs a new SegmentFilterExpression. + * Constructs a new SegmentParameterFilterExpression. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.ISegmentFilterExpression); - - /** SegmentFilterExpression andGroup. */ - public andGroup?: (google.analytics.data.v1alpha.ISegmentFilterExpressionList|null); + constructor(properties?: google.analytics.data.v1alpha.ISegmentParameterFilterExpression); - /** SegmentFilterExpression orGroup. */ - public orGroup?: (google.analytics.data.v1alpha.ISegmentFilterExpressionList|null); + /** SegmentParameterFilterExpression andGroup. */ + public andGroup?: (google.analytics.data.v1alpha.ISegmentParameterFilterExpressionList|null); - /** SegmentFilterExpression notExpression. */ - public notExpression?: (google.analytics.data.v1alpha.ISegmentFilterExpression|null); + /** SegmentParameterFilterExpression orGroup. */ + public orGroup?: (google.analytics.data.v1alpha.ISegmentParameterFilterExpressionList|null); - /** SegmentFilterExpression segmentFilter. */ - public segmentFilter?: (google.analytics.data.v1alpha.ISegmentFilter|null); + /** SegmentParameterFilterExpression notExpression. */ + public notExpression?: (google.analytics.data.v1alpha.ISegmentParameterFilterExpression|null); - /** SegmentFilterExpression segmentEventFilter. */ - public segmentEventFilter?: (google.analytics.data.v1alpha.ISegmentEventFilter|null); + /** SegmentParameterFilterExpression segmentParameterFilter. */ + public segmentParameterFilter?: (google.analytics.data.v1alpha.ISegmentParameterFilter|null); - /** SegmentFilterExpression expr. */ - public expr?: ("andGroup"|"orGroup"|"notExpression"|"segmentFilter"|"segmentEventFilter"); + /** SegmentParameterFilterExpression expr. */ + public expr?: ("andGroup"|"orGroup"|"notExpression"|"segmentParameterFilter"); /** - * Creates a new SegmentFilterExpression instance using the specified properties. + * Creates a new SegmentParameterFilterExpression instance using the specified properties. * @param [properties] Properties to set - * @returns SegmentFilterExpression instance + * @returns SegmentParameterFilterExpression instance */ - public static create(properties?: google.analytics.data.v1alpha.ISegmentFilterExpression): google.analytics.data.v1alpha.SegmentFilterExpression; + public static create(properties?: google.analytics.data.v1alpha.ISegmentParameterFilterExpression): google.analytics.data.v1alpha.SegmentParameterFilterExpression; /** - * Encodes the specified SegmentFilterExpression message. Does not implicitly {@link google.analytics.data.v1alpha.SegmentFilterExpression.verify|verify} messages. - * @param message SegmentFilterExpression message or plain object to encode + * Encodes the specified SegmentParameterFilterExpression message. Does not implicitly {@link google.analytics.data.v1alpha.SegmentParameterFilterExpression.verify|verify} messages. + * @param message SegmentParameterFilterExpression message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.ISegmentFilterExpression, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.ISegmentParameterFilterExpression, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified SegmentFilterExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SegmentFilterExpression.verify|verify} messages. - * @param message SegmentFilterExpression message or plain object to encode + * Encodes the specified SegmentParameterFilterExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SegmentParameterFilterExpression.verify|verify} messages. + * @param message SegmentParameterFilterExpression message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.ISegmentFilterExpression, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.ISegmentParameterFilterExpression, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a SegmentFilterExpression message from the specified reader or buffer. + * Decodes a SegmentParameterFilterExpression message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns SegmentFilterExpression + * @returns SegmentParameterFilterExpression * @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.analytics.data.v1alpha.SegmentFilterExpression; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.SegmentParameterFilterExpression; /** - * Decodes a SegmentFilterExpression message from the specified reader or buffer, length delimited. + * Decodes a SegmentParameterFilterExpression message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns SegmentFilterExpression + * @returns SegmentParameterFilterExpression * @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.analytics.data.v1alpha.SegmentFilterExpression; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.SegmentParameterFilterExpression; /** - * Verifies a SegmentFilterExpression message. + * Verifies a SegmentParameterFilterExpression 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 SegmentFilterExpression message from a plain object. Also converts values to their respective internal types. + * Creates a SegmentParameterFilterExpression message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns SegmentFilterExpression + * @returns SegmentParameterFilterExpression */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.SegmentFilterExpression; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.SegmentParameterFilterExpression; /** - * Creates a plain object from a SegmentFilterExpression message. Also converts values to other types if specified. - * @param message SegmentFilterExpression + * Creates a plain object from a SegmentParameterFilterExpression message. Also converts values to other types if specified. + * @param message SegmentParameterFilterExpression * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.SegmentFilterExpression, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.SegmentParameterFilterExpression, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this SegmentFilterExpression to JSON. + * Converts this SegmentParameterFilterExpression to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for SegmentFilterExpression + * Gets the default type url for SegmentParameterFilterExpression * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a SegmentFilterExpressionList. */ - interface ISegmentFilterExpressionList { + /** Properties of a SegmentParameterFilterExpressionList. */ + interface ISegmentParameterFilterExpressionList { - /** SegmentFilterExpressionList expressions */ - expressions?: (google.analytics.data.v1alpha.ISegmentFilterExpression[]|null); + /** SegmentParameterFilterExpressionList expressions */ + expressions?: (google.analytics.data.v1alpha.ISegmentParameterFilterExpression[]|null); } - /** Represents a SegmentFilterExpressionList. */ - class SegmentFilterExpressionList implements ISegmentFilterExpressionList { + /** Represents a SegmentParameterFilterExpressionList. */ + class SegmentParameterFilterExpressionList implements ISegmentParameterFilterExpressionList { /** - * Constructs a new SegmentFilterExpressionList. + * Constructs a new SegmentParameterFilterExpressionList. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.ISegmentFilterExpressionList); + constructor(properties?: google.analytics.data.v1alpha.ISegmentParameterFilterExpressionList); - /** SegmentFilterExpressionList expressions. */ - public expressions: google.analytics.data.v1alpha.ISegmentFilterExpression[]; + /** SegmentParameterFilterExpressionList expressions. */ + public expressions: google.analytics.data.v1alpha.ISegmentParameterFilterExpression[]; /** - * Creates a new SegmentFilterExpressionList instance using the specified properties. + * Creates a new SegmentParameterFilterExpressionList instance using the specified properties. * @param [properties] Properties to set - * @returns SegmentFilterExpressionList instance + * @returns SegmentParameterFilterExpressionList instance */ - public static create(properties?: google.analytics.data.v1alpha.ISegmentFilterExpressionList): google.analytics.data.v1alpha.SegmentFilterExpressionList; + public static create(properties?: google.analytics.data.v1alpha.ISegmentParameterFilterExpressionList): google.analytics.data.v1alpha.SegmentParameterFilterExpressionList; /** - * Encodes the specified SegmentFilterExpressionList message. Does not implicitly {@link google.analytics.data.v1alpha.SegmentFilterExpressionList.verify|verify} messages. - * @param message SegmentFilterExpressionList message or plain object to encode + * Encodes the specified SegmentParameterFilterExpressionList message. Does not implicitly {@link google.analytics.data.v1alpha.SegmentParameterFilterExpressionList.verify|verify} messages. + * @param message SegmentParameterFilterExpressionList message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.ISegmentFilterExpressionList, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.ISegmentParameterFilterExpressionList, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified SegmentFilterExpressionList message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SegmentFilterExpressionList.verify|verify} messages. - * @param message SegmentFilterExpressionList message or plain object to encode + * Encodes the specified SegmentParameterFilterExpressionList message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SegmentParameterFilterExpressionList.verify|verify} messages. + * @param message SegmentParameterFilterExpressionList message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.ISegmentFilterExpressionList, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.ISegmentParameterFilterExpressionList, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a SegmentFilterExpressionList message from the specified reader or buffer. + * Decodes a SegmentParameterFilterExpressionList message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns SegmentFilterExpressionList + * @returns SegmentParameterFilterExpressionList * @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.analytics.data.v1alpha.SegmentFilterExpressionList; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.SegmentParameterFilterExpressionList; /** - * Decodes a SegmentFilterExpressionList message from the specified reader or buffer, length delimited. + * Decodes a SegmentParameterFilterExpressionList message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns SegmentFilterExpressionList + * @returns SegmentParameterFilterExpressionList * @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.analytics.data.v1alpha.SegmentFilterExpressionList; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.SegmentParameterFilterExpressionList; /** - * Verifies a SegmentFilterExpressionList message. + * Verifies a SegmentParameterFilterExpressionList 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 SegmentFilterExpressionList message from a plain object. Also converts values to their respective internal types. + * Creates a SegmentParameterFilterExpressionList message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns SegmentFilterExpressionList + * @returns SegmentParameterFilterExpressionList */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.SegmentFilterExpressionList; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.SegmentParameterFilterExpressionList; /** - * Creates a plain object from a SegmentFilterExpressionList message. Also converts values to other types if specified. - * @param message SegmentFilterExpressionList + * Creates a plain object from a SegmentParameterFilterExpressionList message. Also converts values to other types if specified. + * @param message SegmentParameterFilterExpressionList * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.SegmentFilterExpressionList, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.SegmentParameterFilterExpressionList, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this SegmentFilterExpressionList to JSON. + * Converts this SegmentParameterFilterExpressionList to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for SegmentFilterExpressionList + * Gets the default type url for SegmentParameterFilterExpressionList * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a SegmentFilter. */ - interface ISegmentFilter { + /** Properties of a SegmentParameterFilter. */ + interface ISegmentParameterFilter { - /** SegmentFilter fieldName */ - fieldName?: (string|null); + /** SegmentParameterFilter eventParameterName */ + eventParameterName?: (string|null); - /** SegmentFilter stringFilter */ + /** SegmentParameterFilter itemParameterName */ + itemParameterName?: (string|null); + + /** SegmentParameterFilter stringFilter */ stringFilter?: (google.analytics.data.v1alpha.IStringFilter|null); - /** SegmentFilter inListFilter */ + /** SegmentParameterFilter inListFilter */ inListFilter?: (google.analytics.data.v1alpha.IInListFilter|null); - /** SegmentFilter numericFilter */ + /** SegmentParameterFilter numericFilter */ numericFilter?: (google.analytics.data.v1alpha.INumericFilter|null); - /** SegmentFilter betweenFilter */ + /** SegmentParameterFilter betweenFilter */ betweenFilter?: (google.analytics.data.v1alpha.IBetweenFilter|null); - /** SegmentFilter filterScoping */ - filterScoping?: (google.analytics.data.v1alpha.ISegmentFilterScoping|null); + /** SegmentParameterFilter filterScoping */ + filterScoping?: (google.analytics.data.v1alpha.ISegmentParameterFilterScoping|null); } - /** Represents a SegmentFilter. */ - class SegmentFilter implements ISegmentFilter { + /** Represents a SegmentParameterFilter. */ + class SegmentParameterFilter implements ISegmentParameterFilter { /** - * Constructs a new SegmentFilter. + * Constructs a new SegmentParameterFilter. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.ISegmentFilter); + constructor(properties?: google.analytics.data.v1alpha.ISegmentParameterFilter); - /** SegmentFilter fieldName. */ - public fieldName: string; + /** SegmentParameterFilter eventParameterName. */ + public eventParameterName?: (string|null); - /** SegmentFilter stringFilter. */ + /** SegmentParameterFilter itemParameterName. */ + public itemParameterName?: (string|null); + + /** SegmentParameterFilter stringFilter. */ public stringFilter?: (google.analytics.data.v1alpha.IStringFilter|null); - /** SegmentFilter inListFilter. */ + /** SegmentParameterFilter inListFilter. */ public inListFilter?: (google.analytics.data.v1alpha.IInListFilter|null); - /** SegmentFilter numericFilter. */ + /** SegmentParameterFilter numericFilter. */ public numericFilter?: (google.analytics.data.v1alpha.INumericFilter|null); - /** SegmentFilter betweenFilter. */ + /** SegmentParameterFilter betweenFilter. */ public betweenFilter?: (google.analytics.data.v1alpha.IBetweenFilter|null); - /** SegmentFilter filterScoping. */ - public filterScoping?: (google.analytics.data.v1alpha.ISegmentFilterScoping|null); + /** SegmentParameterFilter filterScoping. */ + public filterScoping?: (google.analytics.data.v1alpha.ISegmentParameterFilterScoping|null); - /** SegmentFilter oneFilter. */ + /** SegmentParameterFilter oneParameter. */ + public oneParameter?: ("eventParameterName"|"itemParameterName"); + + /** SegmentParameterFilter oneFilter. */ public oneFilter?: ("stringFilter"|"inListFilter"|"numericFilter"|"betweenFilter"); /** - * Creates a new SegmentFilter instance using the specified properties. + * Creates a new SegmentParameterFilter instance using the specified properties. * @param [properties] Properties to set - * @returns SegmentFilter instance + * @returns SegmentParameterFilter instance */ - public static create(properties?: google.analytics.data.v1alpha.ISegmentFilter): google.analytics.data.v1alpha.SegmentFilter; + public static create(properties?: google.analytics.data.v1alpha.ISegmentParameterFilter): google.analytics.data.v1alpha.SegmentParameterFilter; /** - * Encodes the specified SegmentFilter message. Does not implicitly {@link google.analytics.data.v1alpha.SegmentFilter.verify|verify} messages. - * @param message SegmentFilter message or plain object to encode + * Encodes the specified SegmentParameterFilter message. Does not implicitly {@link google.analytics.data.v1alpha.SegmentParameterFilter.verify|verify} messages. + * @param message SegmentParameterFilter message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.ISegmentFilter, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.ISegmentParameterFilter, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified SegmentFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SegmentFilter.verify|verify} messages. - * @param message SegmentFilter message or plain object to encode + * Encodes the specified SegmentParameterFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SegmentParameterFilter.verify|verify} messages. + * @param message SegmentParameterFilter message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.ISegmentFilter, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.ISegmentParameterFilter, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a SegmentFilter message from the specified reader or buffer. + * Decodes a SegmentParameterFilter message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns SegmentFilter + * @returns SegmentParameterFilter * @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.analytics.data.v1alpha.SegmentFilter; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.SegmentParameterFilter; /** - * Decodes a SegmentFilter message from the specified reader or buffer, length delimited. + * Decodes a SegmentParameterFilter message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns SegmentFilter + * @returns SegmentParameterFilter * @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.analytics.data.v1alpha.SegmentFilter; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.SegmentParameterFilter; /** - * Verifies a SegmentFilter message. + * Verifies a SegmentParameterFilter 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 SegmentFilter message from a plain object. Also converts values to their respective internal types. + * Creates a SegmentParameterFilter message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns SegmentFilter + * @returns SegmentParameterFilter */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.SegmentFilter; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.SegmentParameterFilter; /** - * Creates a plain object from a SegmentFilter message. Also converts values to other types if specified. - * @param message SegmentFilter + * Creates a plain object from a SegmentParameterFilter message. Also converts values to other types if specified. + * @param message SegmentParameterFilter * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.SegmentFilter, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.SegmentParameterFilter, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this SegmentFilter to JSON. + * Converts this SegmentParameterFilter to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for SegmentFilter + * Gets the default type url for SegmentParameterFilter * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a SegmentFilterScoping. */ - interface ISegmentFilterScoping { + /** Properties of a SegmentParameterFilterScoping. */ + interface ISegmentParameterFilterScoping { - /** SegmentFilterScoping atAnyPointInTime */ - atAnyPointInTime?: (boolean|null); + /** SegmentParameterFilterScoping inAnyNDayPeriod */ + inAnyNDayPeriod?: (number|Long|string|null); } - /** Represents a SegmentFilterScoping. */ - class SegmentFilterScoping implements ISegmentFilterScoping { + /** Represents a SegmentParameterFilterScoping. */ + class SegmentParameterFilterScoping implements ISegmentParameterFilterScoping { /** - * Constructs a new SegmentFilterScoping. + * Constructs a new SegmentParameterFilterScoping. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.ISegmentFilterScoping); + constructor(properties?: google.analytics.data.v1alpha.ISegmentParameterFilterScoping); - /** SegmentFilterScoping atAnyPointInTime. */ - public atAnyPointInTime?: (boolean|null); + /** SegmentParameterFilterScoping inAnyNDayPeriod. */ + public inAnyNDayPeriod?: (number|Long|string|null); /** - * Creates a new SegmentFilterScoping instance using the specified properties. + * Creates a new SegmentParameterFilterScoping instance using the specified properties. * @param [properties] Properties to set - * @returns SegmentFilterScoping instance + * @returns SegmentParameterFilterScoping instance */ - public static create(properties?: google.analytics.data.v1alpha.ISegmentFilterScoping): google.analytics.data.v1alpha.SegmentFilterScoping; + public static create(properties?: google.analytics.data.v1alpha.ISegmentParameterFilterScoping): google.analytics.data.v1alpha.SegmentParameterFilterScoping; /** - * Encodes the specified SegmentFilterScoping message. Does not implicitly {@link google.analytics.data.v1alpha.SegmentFilterScoping.verify|verify} messages. - * @param message SegmentFilterScoping message or plain object to encode + * Encodes the specified SegmentParameterFilterScoping message. Does not implicitly {@link google.analytics.data.v1alpha.SegmentParameterFilterScoping.verify|verify} messages. + * @param message SegmentParameterFilterScoping message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.ISegmentFilterScoping, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.ISegmentParameterFilterScoping, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified SegmentFilterScoping message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SegmentFilterScoping.verify|verify} messages. - * @param message SegmentFilterScoping message or plain object to encode + * Encodes the specified SegmentParameterFilterScoping message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SegmentParameterFilterScoping.verify|verify} messages. + * @param message SegmentParameterFilterScoping message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.ISegmentFilterScoping, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.ISegmentParameterFilterScoping, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a SegmentFilterScoping message from the specified reader or buffer. + * Decodes a SegmentParameterFilterScoping message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns SegmentFilterScoping + * @returns SegmentParameterFilterScoping * @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.analytics.data.v1alpha.SegmentFilterScoping; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.SegmentParameterFilterScoping; /** - * Decodes a SegmentFilterScoping message from the specified reader or buffer, length delimited. + * Decodes a SegmentParameterFilterScoping message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns SegmentFilterScoping + * @returns SegmentParameterFilterScoping * @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.analytics.data.v1alpha.SegmentFilterScoping; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.SegmentParameterFilterScoping; /** - * Verifies a SegmentFilterScoping message. + * Verifies a SegmentParameterFilterScoping 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 SegmentFilterScoping message from a plain object. Also converts values to their respective internal types. + * Creates a SegmentParameterFilterScoping message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns SegmentFilterScoping + * @returns SegmentParameterFilterScoping */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.SegmentFilterScoping; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.SegmentParameterFilterScoping; /** - * Creates a plain object from a SegmentFilterScoping message. Also converts values to other types if specified. - * @param message SegmentFilterScoping + * Creates a plain object from a SegmentParameterFilterScoping message. Also converts values to other types if specified. + * @param message SegmentParameterFilterScoping * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.SegmentFilterScoping, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.SegmentParameterFilterScoping, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this SegmentFilterScoping to JSON. + * Converts this SegmentParameterFilterScoping to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for SegmentFilterScoping + * Gets the default type url for SegmentParameterFilterScoping * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a SegmentEventFilter. */ - interface ISegmentEventFilter { + /** Properties of a FunnelFilterExpression. */ + interface IFunnelFilterExpression { - /** SegmentEventFilter eventName */ - eventName?: (string|null); + /** FunnelFilterExpression andGroup */ + andGroup?: (google.analytics.data.v1alpha.IFunnelFilterExpressionList|null); - /** SegmentEventFilter segmentParameterFilterExpression */ - segmentParameterFilterExpression?: (google.analytics.data.v1alpha.ISegmentParameterFilterExpression|null); + /** FunnelFilterExpression orGroup */ + orGroup?: (google.analytics.data.v1alpha.IFunnelFilterExpressionList|null); + + /** FunnelFilterExpression notExpression */ + notExpression?: (google.analytics.data.v1alpha.IFunnelFilterExpression|null); + + /** FunnelFilterExpression funnelFieldFilter */ + funnelFieldFilter?: (google.analytics.data.v1alpha.IFunnelFieldFilter|null); + + /** FunnelFilterExpression funnelEventFilter */ + funnelEventFilter?: (google.analytics.data.v1alpha.IFunnelEventFilter|null); } - /** Represents a SegmentEventFilter. */ - class SegmentEventFilter implements ISegmentEventFilter { + /** Represents a FunnelFilterExpression. */ + class FunnelFilterExpression implements IFunnelFilterExpression { /** - * Constructs a new SegmentEventFilter. + * Constructs a new FunnelFilterExpression. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.ISegmentEventFilter); + constructor(properties?: google.analytics.data.v1alpha.IFunnelFilterExpression); - /** SegmentEventFilter eventName. */ - public eventName?: (string|null); + /** FunnelFilterExpression andGroup. */ + public andGroup?: (google.analytics.data.v1alpha.IFunnelFilterExpressionList|null); - /** SegmentEventFilter segmentParameterFilterExpression. */ - public segmentParameterFilterExpression?: (google.analytics.data.v1alpha.ISegmentParameterFilterExpression|null); + /** FunnelFilterExpression orGroup. */ + public orGroup?: (google.analytics.data.v1alpha.IFunnelFilterExpressionList|null); + + /** FunnelFilterExpression notExpression. */ + public notExpression?: (google.analytics.data.v1alpha.IFunnelFilterExpression|null); + + /** FunnelFilterExpression funnelFieldFilter. */ + public funnelFieldFilter?: (google.analytics.data.v1alpha.IFunnelFieldFilter|null); + + /** FunnelFilterExpression funnelEventFilter. */ + public funnelEventFilter?: (google.analytics.data.v1alpha.IFunnelEventFilter|null); + + /** FunnelFilterExpression expr. */ + public expr?: ("andGroup"|"orGroup"|"notExpression"|"funnelFieldFilter"|"funnelEventFilter"); /** - * Creates a new SegmentEventFilter instance using the specified properties. + * Creates a new FunnelFilterExpression instance using the specified properties. * @param [properties] Properties to set - * @returns SegmentEventFilter instance + * @returns FunnelFilterExpression instance */ - public static create(properties?: google.analytics.data.v1alpha.ISegmentEventFilter): google.analytics.data.v1alpha.SegmentEventFilter; + public static create(properties?: google.analytics.data.v1alpha.IFunnelFilterExpression): google.analytics.data.v1alpha.FunnelFilterExpression; /** - * Encodes the specified SegmentEventFilter message. Does not implicitly {@link google.analytics.data.v1alpha.SegmentEventFilter.verify|verify} messages. - * @param message SegmentEventFilter message or plain object to encode + * Encodes the specified FunnelFilterExpression message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelFilterExpression.verify|verify} messages. + * @param message FunnelFilterExpression message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.ISegmentEventFilter, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IFunnelFilterExpression, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified SegmentEventFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SegmentEventFilter.verify|verify} messages. - * @param message SegmentEventFilter message or plain object to encode + * Encodes the specified FunnelFilterExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelFilterExpression.verify|verify} messages. + * @param message FunnelFilterExpression message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.ISegmentEventFilter, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IFunnelFilterExpression, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a SegmentEventFilter message from the specified reader or buffer. + * Decodes a FunnelFilterExpression message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns SegmentEventFilter + * @returns FunnelFilterExpression * @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.analytics.data.v1alpha.SegmentEventFilter; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.FunnelFilterExpression; /** - * Decodes a SegmentEventFilter message from the specified reader or buffer, length delimited. + * Decodes a FunnelFilterExpression message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns SegmentEventFilter + * @returns FunnelFilterExpression * @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.analytics.data.v1alpha.SegmentEventFilter; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.FunnelFilterExpression; /** - * Verifies a SegmentEventFilter message. + * Verifies a FunnelFilterExpression 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 SegmentEventFilter message from a plain object. Also converts values to their respective internal types. + * Creates a FunnelFilterExpression message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns SegmentEventFilter + * @returns FunnelFilterExpression */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.SegmentEventFilter; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.FunnelFilterExpression; /** - * Creates a plain object from a SegmentEventFilter message. Also converts values to other types if specified. - * @param message SegmentEventFilter + * Creates a plain object from a FunnelFilterExpression message. Also converts values to other types if specified. + * @param message FunnelFilterExpression * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.SegmentEventFilter, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.FunnelFilterExpression, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this SegmentEventFilter to JSON. + * Converts this FunnelFilterExpression to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for SegmentEventFilter + * Gets the default type url for FunnelFilterExpression * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a SegmentParameterFilterExpression. */ - interface ISegmentParameterFilterExpression { - - /** SegmentParameterFilterExpression andGroup */ - andGroup?: (google.analytics.data.v1alpha.ISegmentParameterFilterExpressionList|null); - - /** SegmentParameterFilterExpression orGroup */ - orGroup?: (google.analytics.data.v1alpha.ISegmentParameterFilterExpressionList|null); - - /** SegmentParameterFilterExpression notExpression */ - notExpression?: (google.analytics.data.v1alpha.ISegmentParameterFilterExpression|null); + /** Properties of a FunnelFilterExpressionList. */ + interface IFunnelFilterExpressionList { - /** SegmentParameterFilterExpression segmentParameterFilter */ - segmentParameterFilter?: (google.analytics.data.v1alpha.ISegmentParameterFilter|null); + /** FunnelFilterExpressionList expressions */ + expressions?: (google.analytics.data.v1alpha.IFunnelFilterExpression[]|null); } - /** Represents a SegmentParameterFilterExpression. */ - class SegmentParameterFilterExpression implements ISegmentParameterFilterExpression { + /** Represents a FunnelFilterExpressionList. */ + class FunnelFilterExpressionList implements IFunnelFilterExpressionList { /** - * Constructs a new SegmentParameterFilterExpression. + * Constructs a new FunnelFilterExpressionList. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.ISegmentParameterFilterExpression); - - /** SegmentParameterFilterExpression andGroup. */ - public andGroup?: (google.analytics.data.v1alpha.ISegmentParameterFilterExpressionList|null); - - /** SegmentParameterFilterExpression orGroup. */ - public orGroup?: (google.analytics.data.v1alpha.ISegmentParameterFilterExpressionList|null); - - /** SegmentParameterFilterExpression notExpression. */ - public notExpression?: (google.analytics.data.v1alpha.ISegmentParameterFilterExpression|null); - - /** SegmentParameterFilterExpression segmentParameterFilter. */ - public segmentParameterFilter?: (google.analytics.data.v1alpha.ISegmentParameterFilter|null); + constructor(properties?: google.analytics.data.v1alpha.IFunnelFilterExpressionList); - /** SegmentParameterFilterExpression expr. */ - public expr?: ("andGroup"|"orGroup"|"notExpression"|"segmentParameterFilter"); + /** FunnelFilterExpressionList expressions. */ + public expressions: google.analytics.data.v1alpha.IFunnelFilterExpression[]; /** - * Creates a new SegmentParameterFilterExpression instance using the specified properties. + * Creates a new FunnelFilterExpressionList instance using the specified properties. * @param [properties] Properties to set - * @returns SegmentParameterFilterExpression instance + * @returns FunnelFilterExpressionList instance */ - public static create(properties?: google.analytics.data.v1alpha.ISegmentParameterFilterExpression): google.analytics.data.v1alpha.SegmentParameterFilterExpression; + public static create(properties?: google.analytics.data.v1alpha.IFunnelFilterExpressionList): google.analytics.data.v1alpha.FunnelFilterExpressionList; /** - * Encodes the specified SegmentParameterFilterExpression message. Does not implicitly {@link google.analytics.data.v1alpha.SegmentParameterFilterExpression.verify|verify} messages. - * @param message SegmentParameterFilterExpression message or plain object to encode + * Encodes the specified FunnelFilterExpressionList message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelFilterExpressionList.verify|verify} messages. + * @param message FunnelFilterExpressionList message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.ISegmentParameterFilterExpression, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IFunnelFilterExpressionList, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified SegmentParameterFilterExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SegmentParameterFilterExpression.verify|verify} messages. - * @param message SegmentParameterFilterExpression message or plain object to encode + * Encodes the specified FunnelFilterExpressionList message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelFilterExpressionList.verify|verify} messages. + * @param message FunnelFilterExpressionList message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.ISegmentParameterFilterExpression, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IFunnelFilterExpressionList, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a SegmentParameterFilterExpression message from the specified reader or buffer. + * Decodes a FunnelFilterExpressionList message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns SegmentParameterFilterExpression + * @returns FunnelFilterExpressionList * @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.analytics.data.v1alpha.SegmentParameterFilterExpression; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.FunnelFilterExpressionList; /** - * Decodes a SegmentParameterFilterExpression message from the specified reader or buffer, length delimited. + * Decodes a FunnelFilterExpressionList message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns SegmentParameterFilterExpression + * @returns FunnelFilterExpressionList * @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.analytics.data.v1alpha.SegmentParameterFilterExpression; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.FunnelFilterExpressionList; /** - * Verifies a SegmentParameterFilterExpression message. + * Verifies a FunnelFilterExpressionList 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 SegmentParameterFilterExpression message from a plain object. Also converts values to their respective internal types. + * Creates a FunnelFilterExpressionList message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns SegmentParameterFilterExpression + * @returns FunnelFilterExpressionList */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.SegmentParameterFilterExpression; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.FunnelFilterExpressionList; /** - * Creates a plain object from a SegmentParameterFilterExpression message. Also converts values to other types if specified. - * @param message SegmentParameterFilterExpression + * Creates a plain object from a FunnelFilterExpressionList message. Also converts values to other types if specified. + * @param message FunnelFilterExpressionList * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.SegmentParameterFilterExpression, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.FunnelFilterExpressionList, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this SegmentParameterFilterExpression to JSON. + * Converts this FunnelFilterExpressionList to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for SegmentParameterFilterExpression + * Gets the default type url for FunnelFilterExpressionList * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a SegmentParameterFilterExpressionList. */ - interface ISegmentParameterFilterExpressionList { + /** Properties of a FunnelFieldFilter. */ + interface IFunnelFieldFilter { - /** SegmentParameterFilterExpressionList expressions */ - expressions?: (google.analytics.data.v1alpha.ISegmentParameterFilterExpression[]|null); + /** FunnelFieldFilter fieldName */ + fieldName?: (string|null); + + /** FunnelFieldFilter stringFilter */ + stringFilter?: (google.analytics.data.v1alpha.IStringFilter|null); + + /** FunnelFieldFilter inListFilter */ + inListFilter?: (google.analytics.data.v1alpha.IInListFilter|null); + + /** FunnelFieldFilter numericFilter */ + numericFilter?: (google.analytics.data.v1alpha.INumericFilter|null); + + /** FunnelFieldFilter betweenFilter */ + betweenFilter?: (google.analytics.data.v1alpha.IBetweenFilter|null); } - /** Represents a SegmentParameterFilterExpressionList. */ - class SegmentParameterFilterExpressionList implements ISegmentParameterFilterExpressionList { + /** Represents a FunnelFieldFilter. */ + class FunnelFieldFilter implements IFunnelFieldFilter { /** - * Constructs a new SegmentParameterFilterExpressionList. + * Constructs a new FunnelFieldFilter. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.ISegmentParameterFilterExpressionList); + constructor(properties?: google.analytics.data.v1alpha.IFunnelFieldFilter); - /** SegmentParameterFilterExpressionList expressions. */ - public expressions: google.analytics.data.v1alpha.ISegmentParameterFilterExpression[]; + /** FunnelFieldFilter fieldName. */ + public fieldName: string; + + /** FunnelFieldFilter stringFilter. */ + public stringFilter?: (google.analytics.data.v1alpha.IStringFilter|null); + + /** FunnelFieldFilter inListFilter. */ + public inListFilter?: (google.analytics.data.v1alpha.IInListFilter|null); + + /** FunnelFieldFilter numericFilter. */ + public numericFilter?: (google.analytics.data.v1alpha.INumericFilter|null); + + /** FunnelFieldFilter betweenFilter. */ + public betweenFilter?: (google.analytics.data.v1alpha.IBetweenFilter|null); + + /** FunnelFieldFilter oneFilter. */ + public oneFilter?: ("stringFilter"|"inListFilter"|"numericFilter"|"betweenFilter"); /** - * Creates a new SegmentParameterFilterExpressionList instance using the specified properties. + * Creates a new FunnelFieldFilter instance using the specified properties. * @param [properties] Properties to set - * @returns SegmentParameterFilterExpressionList instance + * @returns FunnelFieldFilter instance */ - public static create(properties?: google.analytics.data.v1alpha.ISegmentParameterFilterExpressionList): google.analytics.data.v1alpha.SegmentParameterFilterExpressionList; + public static create(properties?: google.analytics.data.v1alpha.IFunnelFieldFilter): google.analytics.data.v1alpha.FunnelFieldFilter; /** - * Encodes the specified SegmentParameterFilterExpressionList message. Does not implicitly {@link google.analytics.data.v1alpha.SegmentParameterFilterExpressionList.verify|verify} messages. - * @param message SegmentParameterFilterExpressionList message or plain object to encode + * Encodes the specified FunnelFieldFilter message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelFieldFilter.verify|verify} messages. + * @param message FunnelFieldFilter message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.ISegmentParameterFilterExpressionList, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IFunnelFieldFilter, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified SegmentParameterFilterExpressionList message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SegmentParameterFilterExpressionList.verify|verify} messages. - * @param message SegmentParameterFilterExpressionList message or plain object to encode + * Encodes the specified FunnelFieldFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelFieldFilter.verify|verify} messages. + * @param message FunnelFieldFilter message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.ISegmentParameterFilterExpressionList, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IFunnelFieldFilter, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a SegmentParameterFilterExpressionList message from the specified reader or buffer. + * Decodes a FunnelFieldFilter message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns SegmentParameterFilterExpressionList + * @returns FunnelFieldFilter * @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.analytics.data.v1alpha.SegmentParameterFilterExpressionList; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.FunnelFieldFilter; /** - * Decodes a SegmentParameterFilterExpressionList message from the specified reader or buffer, length delimited. + * Decodes a FunnelFieldFilter message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns SegmentParameterFilterExpressionList + * @returns FunnelFieldFilter * @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.analytics.data.v1alpha.SegmentParameterFilterExpressionList; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.FunnelFieldFilter; /** - * Verifies a SegmentParameterFilterExpressionList message. + * Verifies a FunnelFieldFilter 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 SegmentParameterFilterExpressionList message from a plain object. Also converts values to their respective internal types. + * Creates a FunnelFieldFilter message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns SegmentParameterFilterExpressionList - */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.SegmentParameterFilterExpressionList; - - /** - * Creates a plain object from a SegmentParameterFilterExpressionList message. Also converts values to other types if specified. - * @param message SegmentParameterFilterExpressionList - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.analytics.data.v1alpha.SegmentParameterFilterExpressionList, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this SegmentParameterFilterExpressionList to JSON. - * @returns JSON object + * @returns FunnelFieldFilter */ - public toJSON(): { [k: string]: any }; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.FunnelFieldFilter; /** - * Gets the default type url for SegmentParameterFilterExpressionList - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } - - /** Properties of a SegmentParameterFilter. */ - interface ISegmentParameterFilter { - - /** SegmentParameterFilter eventParameterName */ - eventParameterName?: (string|null); - - /** SegmentParameterFilter itemParameterName */ - itemParameterName?: (string|null); - - /** SegmentParameterFilter stringFilter */ - stringFilter?: (google.analytics.data.v1alpha.IStringFilter|null); - - /** SegmentParameterFilter inListFilter */ - inListFilter?: (google.analytics.data.v1alpha.IInListFilter|null); - - /** SegmentParameterFilter numericFilter */ - numericFilter?: (google.analytics.data.v1alpha.INumericFilter|null); - - /** SegmentParameterFilter betweenFilter */ - betweenFilter?: (google.analytics.data.v1alpha.IBetweenFilter|null); - - /** SegmentParameterFilter filterScoping */ - filterScoping?: (google.analytics.data.v1alpha.ISegmentParameterFilterScoping|null); - } - - /** Represents a SegmentParameterFilter. */ - class SegmentParameterFilter implements ISegmentParameterFilter { + * Creates a plain object from a FunnelFieldFilter message. Also converts values to other types if specified. + * @param message FunnelFieldFilter + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1alpha.FunnelFieldFilter, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Constructs a new SegmentParameterFilter. - * @param [properties] Properties to set + * Converts this FunnelFieldFilter to JSON. + * @returns JSON object */ - constructor(properties?: google.analytics.data.v1alpha.ISegmentParameterFilter); - - /** SegmentParameterFilter eventParameterName. */ - public eventParameterName?: (string|null); + public toJSON(): { [k: string]: any }; - /** SegmentParameterFilter itemParameterName. */ - public itemParameterName?: (string|null); + /** + * Gets the default type url for FunnelFieldFilter + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } - /** SegmentParameterFilter stringFilter. */ - public stringFilter?: (google.analytics.data.v1alpha.IStringFilter|null); + /** Properties of a FunnelEventFilter. */ + interface IFunnelEventFilter { - /** SegmentParameterFilter inListFilter. */ - public inListFilter?: (google.analytics.data.v1alpha.IInListFilter|null); + /** FunnelEventFilter eventName */ + eventName?: (string|null); - /** SegmentParameterFilter numericFilter. */ - public numericFilter?: (google.analytics.data.v1alpha.INumericFilter|null); + /** FunnelEventFilter funnelParameterFilterExpression */ + funnelParameterFilterExpression?: (google.analytics.data.v1alpha.IFunnelParameterFilterExpression|null); + } - /** SegmentParameterFilter betweenFilter. */ - public betweenFilter?: (google.analytics.data.v1alpha.IBetweenFilter|null); + /** Represents a FunnelEventFilter. */ + class FunnelEventFilter implements IFunnelEventFilter { - /** SegmentParameterFilter filterScoping. */ - public filterScoping?: (google.analytics.data.v1alpha.ISegmentParameterFilterScoping|null); + /** + * Constructs a new FunnelEventFilter. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1alpha.IFunnelEventFilter); - /** SegmentParameterFilter oneParameter. */ - public oneParameter?: ("eventParameterName"|"itemParameterName"); + /** FunnelEventFilter eventName. */ + public eventName?: (string|null); - /** SegmentParameterFilter oneFilter. */ - public oneFilter?: ("stringFilter"|"inListFilter"|"numericFilter"|"betweenFilter"); + /** FunnelEventFilter funnelParameterFilterExpression. */ + public funnelParameterFilterExpression?: (google.analytics.data.v1alpha.IFunnelParameterFilterExpression|null); /** - * Creates a new SegmentParameterFilter instance using the specified properties. + * Creates a new FunnelEventFilter instance using the specified properties. * @param [properties] Properties to set - * @returns SegmentParameterFilter instance + * @returns FunnelEventFilter instance */ - public static create(properties?: google.analytics.data.v1alpha.ISegmentParameterFilter): google.analytics.data.v1alpha.SegmentParameterFilter; + public static create(properties?: google.analytics.data.v1alpha.IFunnelEventFilter): google.analytics.data.v1alpha.FunnelEventFilter; /** - * Encodes the specified SegmentParameterFilter message. Does not implicitly {@link google.analytics.data.v1alpha.SegmentParameterFilter.verify|verify} messages. - * @param message SegmentParameterFilter message or plain object to encode + * Encodes the specified FunnelEventFilter message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelEventFilter.verify|verify} messages. + * @param message FunnelEventFilter message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.ISegmentParameterFilter, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IFunnelEventFilter, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified SegmentParameterFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SegmentParameterFilter.verify|verify} messages. - * @param message SegmentParameterFilter message or plain object to encode + * Encodes the specified FunnelEventFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelEventFilter.verify|verify} messages. + * @param message FunnelEventFilter message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.ISegmentParameterFilter, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IFunnelEventFilter, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a SegmentParameterFilter message from the specified reader or buffer. + * Decodes a FunnelEventFilter message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns SegmentParameterFilter + * @returns FunnelEventFilter * @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.analytics.data.v1alpha.SegmentParameterFilter; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.FunnelEventFilter; /** - * Decodes a SegmentParameterFilter message from the specified reader or buffer, length delimited. + * Decodes a FunnelEventFilter message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns SegmentParameterFilter + * @returns FunnelEventFilter * @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.analytics.data.v1alpha.SegmentParameterFilter; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.FunnelEventFilter; /** - * Verifies a SegmentParameterFilter message. + * Verifies a FunnelEventFilter 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 SegmentParameterFilter message from a plain object. Also converts values to their respective internal types. + * Creates a FunnelEventFilter message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns SegmentParameterFilter + * @returns FunnelEventFilter */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.SegmentParameterFilter; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.FunnelEventFilter; /** - * Creates a plain object from a SegmentParameterFilter message. Also converts values to other types if specified. - * @param message SegmentParameterFilter + * Creates a plain object from a FunnelEventFilter message. Also converts values to other types if specified. + * @param message FunnelEventFilter * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.SegmentParameterFilter, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.FunnelEventFilter, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this SegmentParameterFilter to JSON. + * Converts this FunnelEventFilter to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for SegmentParameterFilter + * Gets the default type url for FunnelEventFilter * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a SegmentParameterFilterScoping. */ - interface ISegmentParameterFilterScoping { + /** Properties of a FunnelParameterFilterExpression. */ + interface IFunnelParameterFilterExpression { - /** SegmentParameterFilterScoping inAnyNDayPeriod */ - inAnyNDayPeriod?: (number|Long|string|null); + /** FunnelParameterFilterExpression andGroup */ + andGroup?: (google.analytics.data.v1alpha.IFunnelParameterFilterExpressionList|null); + + /** FunnelParameterFilterExpression orGroup */ + orGroup?: (google.analytics.data.v1alpha.IFunnelParameterFilterExpressionList|null); + + /** FunnelParameterFilterExpression notExpression */ + notExpression?: (google.analytics.data.v1alpha.IFunnelParameterFilterExpression|null); + + /** FunnelParameterFilterExpression funnelParameterFilter */ + funnelParameterFilter?: (google.analytics.data.v1alpha.IFunnelParameterFilter|null); } - /** Represents a SegmentParameterFilterScoping. */ - class SegmentParameterFilterScoping implements ISegmentParameterFilterScoping { + /** Represents a FunnelParameterFilterExpression. */ + class FunnelParameterFilterExpression implements IFunnelParameterFilterExpression { /** - * Constructs a new SegmentParameterFilterScoping. + * Constructs a new FunnelParameterFilterExpression. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.ISegmentParameterFilterScoping); + constructor(properties?: google.analytics.data.v1alpha.IFunnelParameterFilterExpression); - /** SegmentParameterFilterScoping inAnyNDayPeriod. */ - public inAnyNDayPeriod?: (number|Long|string|null); + /** FunnelParameterFilterExpression andGroup. */ + public andGroup?: (google.analytics.data.v1alpha.IFunnelParameterFilterExpressionList|null); + + /** FunnelParameterFilterExpression orGroup. */ + public orGroup?: (google.analytics.data.v1alpha.IFunnelParameterFilterExpressionList|null); + + /** FunnelParameterFilterExpression notExpression. */ + public notExpression?: (google.analytics.data.v1alpha.IFunnelParameterFilterExpression|null); + + /** FunnelParameterFilterExpression funnelParameterFilter. */ + public funnelParameterFilter?: (google.analytics.data.v1alpha.IFunnelParameterFilter|null); + + /** FunnelParameterFilterExpression expr. */ + public expr?: ("andGroup"|"orGroup"|"notExpression"|"funnelParameterFilter"); /** - * Creates a new SegmentParameterFilterScoping instance using the specified properties. + * Creates a new FunnelParameterFilterExpression instance using the specified properties. * @param [properties] Properties to set - * @returns SegmentParameterFilterScoping instance + * @returns FunnelParameterFilterExpression instance */ - public static create(properties?: google.analytics.data.v1alpha.ISegmentParameterFilterScoping): google.analytics.data.v1alpha.SegmentParameterFilterScoping; + public static create(properties?: google.analytics.data.v1alpha.IFunnelParameterFilterExpression): google.analytics.data.v1alpha.FunnelParameterFilterExpression; /** - * Encodes the specified SegmentParameterFilterScoping message. Does not implicitly {@link google.analytics.data.v1alpha.SegmentParameterFilterScoping.verify|verify} messages. - * @param message SegmentParameterFilterScoping message or plain object to encode + * Encodes the specified FunnelParameterFilterExpression message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelParameterFilterExpression.verify|verify} messages. + * @param message FunnelParameterFilterExpression message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.ISegmentParameterFilterScoping, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IFunnelParameterFilterExpression, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified SegmentParameterFilterScoping message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SegmentParameterFilterScoping.verify|verify} messages. - * @param message SegmentParameterFilterScoping message or plain object to encode + * Encodes the specified FunnelParameterFilterExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelParameterFilterExpression.verify|verify} messages. + * @param message FunnelParameterFilterExpression message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.ISegmentParameterFilterScoping, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IFunnelParameterFilterExpression, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a SegmentParameterFilterScoping message from the specified reader or buffer. + * Decodes a FunnelParameterFilterExpression message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns SegmentParameterFilterScoping + * @returns FunnelParameterFilterExpression * @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.analytics.data.v1alpha.SegmentParameterFilterScoping; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.FunnelParameterFilterExpression; /** - * Decodes a SegmentParameterFilterScoping message from the specified reader or buffer, length delimited. + * Decodes a FunnelParameterFilterExpression message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns SegmentParameterFilterScoping + * @returns FunnelParameterFilterExpression * @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.analytics.data.v1alpha.SegmentParameterFilterScoping; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.FunnelParameterFilterExpression; /** - * Verifies a SegmentParameterFilterScoping message. + * Verifies a FunnelParameterFilterExpression 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 SegmentParameterFilterScoping message from a plain object. Also converts values to their respective internal types. + * Creates a FunnelParameterFilterExpression message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns SegmentParameterFilterScoping + * @returns FunnelParameterFilterExpression */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.SegmentParameterFilterScoping; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.FunnelParameterFilterExpression; /** - * Creates a plain object from a SegmentParameterFilterScoping message. Also converts values to other types if specified. - * @param message SegmentParameterFilterScoping + * Creates a plain object from a FunnelParameterFilterExpression message. Also converts values to other types if specified. + * @param message FunnelParameterFilterExpression * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.SegmentParameterFilterScoping, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.FunnelParameterFilterExpression, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this SegmentParameterFilterScoping to JSON. + * Converts this FunnelParameterFilterExpression to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for SegmentParameterFilterScoping + * Gets the default type url for FunnelParameterFilterExpression * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a FunnelFilterExpression. */ - interface IFunnelFilterExpression { - - /** FunnelFilterExpression andGroup */ - andGroup?: (google.analytics.data.v1alpha.IFunnelFilterExpressionList|null); - - /** FunnelFilterExpression orGroup */ - orGroup?: (google.analytics.data.v1alpha.IFunnelFilterExpressionList|null); - - /** FunnelFilterExpression notExpression */ - notExpression?: (google.analytics.data.v1alpha.IFunnelFilterExpression|null); - - /** FunnelFilterExpression funnelFieldFilter */ - funnelFieldFilter?: (google.analytics.data.v1alpha.IFunnelFieldFilter|null); + /** Properties of a FunnelParameterFilterExpressionList. */ + interface IFunnelParameterFilterExpressionList { - /** FunnelFilterExpression funnelEventFilter */ - funnelEventFilter?: (google.analytics.data.v1alpha.IFunnelEventFilter|null); + /** FunnelParameterFilterExpressionList expressions */ + expressions?: (google.analytics.data.v1alpha.IFunnelParameterFilterExpression[]|null); } - /** Represents a FunnelFilterExpression. */ - class FunnelFilterExpression implements IFunnelFilterExpression { + /** Represents a FunnelParameterFilterExpressionList. */ + class FunnelParameterFilterExpressionList implements IFunnelParameterFilterExpressionList { /** - * Constructs a new FunnelFilterExpression. + * Constructs a new FunnelParameterFilterExpressionList. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.IFunnelFilterExpression); - - /** FunnelFilterExpression andGroup. */ - public andGroup?: (google.analytics.data.v1alpha.IFunnelFilterExpressionList|null); - - /** FunnelFilterExpression orGroup. */ - public orGroup?: (google.analytics.data.v1alpha.IFunnelFilterExpressionList|null); - - /** FunnelFilterExpression notExpression. */ - public notExpression?: (google.analytics.data.v1alpha.IFunnelFilterExpression|null); - - /** FunnelFilterExpression funnelFieldFilter. */ - public funnelFieldFilter?: (google.analytics.data.v1alpha.IFunnelFieldFilter|null); - - /** FunnelFilterExpression funnelEventFilter. */ - public funnelEventFilter?: (google.analytics.data.v1alpha.IFunnelEventFilter|null); + constructor(properties?: google.analytics.data.v1alpha.IFunnelParameterFilterExpressionList); - /** FunnelFilterExpression expr. */ - public expr?: ("andGroup"|"orGroup"|"notExpression"|"funnelFieldFilter"|"funnelEventFilter"); + /** FunnelParameterFilterExpressionList expressions. */ + public expressions: google.analytics.data.v1alpha.IFunnelParameterFilterExpression[]; /** - * Creates a new FunnelFilterExpression instance using the specified properties. + * Creates a new FunnelParameterFilterExpressionList instance using the specified properties. * @param [properties] Properties to set - * @returns FunnelFilterExpression instance + * @returns FunnelParameterFilterExpressionList instance */ - public static create(properties?: google.analytics.data.v1alpha.IFunnelFilterExpression): google.analytics.data.v1alpha.FunnelFilterExpression; + public static create(properties?: google.analytics.data.v1alpha.IFunnelParameterFilterExpressionList): google.analytics.data.v1alpha.FunnelParameterFilterExpressionList; /** - * Encodes the specified FunnelFilterExpression message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelFilterExpression.verify|verify} messages. - * @param message FunnelFilterExpression message or plain object to encode + * Encodes the specified FunnelParameterFilterExpressionList message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelParameterFilterExpressionList.verify|verify} messages. + * @param message FunnelParameterFilterExpressionList message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.IFunnelFilterExpression, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IFunnelParameterFilterExpressionList, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified FunnelFilterExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelFilterExpression.verify|verify} messages. - * @param message FunnelFilterExpression message or plain object to encode + * Encodes the specified FunnelParameterFilterExpressionList message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelParameterFilterExpressionList.verify|verify} messages. + * @param message FunnelParameterFilterExpressionList message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IFunnelFilterExpression, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IFunnelParameterFilterExpressionList, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a FunnelFilterExpression message from the specified reader or buffer. + * Decodes a FunnelParameterFilterExpressionList message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns FunnelFilterExpression + * @returns FunnelParameterFilterExpressionList * @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.analytics.data.v1alpha.FunnelFilterExpression; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.FunnelParameterFilterExpressionList; /** - * Decodes a FunnelFilterExpression message from the specified reader or buffer, length delimited. + * Decodes a FunnelParameterFilterExpressionList message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns FunnelFilterExpression + * @returns FunnelParameterFilterExpressionList * @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.analytics.data.v1alpha.FunnelFilterExpression; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.FunnelParameterFilterExpressionList; /** - * Verifies a FunnelFilterExpression message. + * Verifies a FunnelParameterFilterExpressionList 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 FunnelFilterExpression message from a plain object. Also converts values to their respective internal types. + * Creates a FunnelParameterFilterExpressionList message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns FunnelFilterExpression + * @returns FunnelParameterFilterExpressionList */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.FunnelFilterExpression; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.FunnelParameterFilterExpressionList; /** - * Creates a plain object from a FunnelFilterExpression message. Also converts values to other types if specified. - * @param message FunnelFilterExpression + * Creates a plain object from a FunnelParameterFilterExpressionList message. Also converts values to other types if specified. + * @param message FunnelParameterFilterExpressionList * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.FunnelFilterExpression, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.FunnelParameterFilterExpressionList, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this FunnelFilterExpression to JSON. + * Converts this FunnelParameterFilterExpressionList to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for FunnelFilterExpression + * Gets the default type url for FunnelParameterFilterExpressionList * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a FunnelFilterExpressionList. */ - interface IFunnelFilterExpressionList { + /** Properties of a FunnelParameterFilter. */ + interface IFunnelParameterFilter { - /** FunnelFilterExpressionList expressions */ - expressions?: (google.analytics.data.v1alpha.IFunnelFilterExpression[]|null); + /** FunnelParameterFilter eventParameterName */ + eventParameterName?: (string|null); + + /** FunnelParameterFilter itemParameterName */ + itemParameterName?: (string|null); + + /** FunnelParameterFilter stringFilter */ + stringFilter?: (google.analytics.data.v1alpha.IStringFilter|null); + + /** FunnelParameterFilter inListFilter */ + inListFilter?: (google.analytics.data.v1alpha.IInListFilter|null); + + /** FunnelParameterFilter numericFilter */ + numericFilter?: (google.analytics.data.v1alpha.INumericFilter|null); + + /** FunnelParameterFilter betweenFilter */ + betweenFilter?: (google.analytics.data.v1alpha.IBetweenFilter|null); } - /** Represents a FunnelFilterExpressionList. */ - class FunnelFilterExpressionList implements IFunnelFilterExpressionList { + /** Represents a FunnelParameterFilter. */ + class FunnelParameterFilter implements IFunnelParameterFilter { /** - * Constructs a new FunnelFilterExpressionList. + * Constructs a new FunnelParameterFilter. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.IFunnelFilterExpressionList); + constructor(properties?: google.analytics.data.v1alpha.IFunnelParameterFilter); - /** FunnelFilterExpressionList expressions. */ - public expressions: google.analytics.data.v1alpha.IFunnelFilterExpression[]; + /** FunnelParameterFilter eventParameterName. */ + public eventParameterName?: (string|null); + + /** FunnelParameterFilter itemParameterName. */ + public itemParameterName?: (string|null); + + /** FunnelParameterFilter stringFilter. */ + public stringFilter?: (google.analytics.data.v1alpha.IStringFilter|null); + + /** FunnelParameterFilter inListFilter. */ + public inListFilter?: (google.analytics.data.v1alpha.IInListFilter|null); + + /** FunnelParameterFilter numericFilter. */ + public numericFilter?: (google.analytics.data.v1alpha.INumericFilter|null); + + /** FunnelParameterFilter betweenFilter. */ + public betweenFilter?: (google.analytics.data.v1alpha.IBetweenFilter|null); + + /** FunnelParameterFilter oneParameter. */ + public oneParameter?: ("eventParameterName"|"itemParameterName"); + + /** FunnelParameterFilter oneFilter. */ + public oneFilter?: ("stringFilter"|"inListFilter"|"numericFilter"|"betweenFilter"); /** - * Creates a new FunnelFilterExpressionList instance using the specified properties. + * Creates a new FunnelParameterFilter instance using the specified properties. * @param [properties] Properties to set - * @returns FunnelFilterExpressionList instance + * @returns FunnelParameterFilter instance */ - public static create(properties?: google.analytics.data.v1alpha.IFunnelFilterExpressionList): google.analytics.data.v1alpha.FunnelFilterExpressionList; + public static create(properties?: google.analytics.data.v1alpha.IFunnelParameterFilter): google.analytics.data.v1alpha.FunnelParameterFilter; /** - * Encodes the specified FunnelFilterExpressionList message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelFilterExpressionList.verify|verify} messages. - * @param message FunnelFilterExpressionList message or plain object to encode + * Encodes the specified FunnelParameterFilter message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelParameterFilter.verify|verify} messages. + * @param message FunnelParameterFilter message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.IFunnelFilterExpressionList, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IFunnelParameterFilter, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified FunnelFilterExpressionList message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelFilterExpressionList.verify|verify} messages. - * @param message FunnelFilterExpressionList message or plain object to encode + * Encodes the specified FunnelParameterFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelParameterFilter.verify|verify} messages. + * @param message FunnelParameterFilter message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IFunnelFilterExpressionList, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IFunnelParameterFilter, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a FunnelFilterExpressionList message from the specified reader or buffer. + * Decodes a FunnelParameterFilter message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns FunnelFilterExpressionList + * @returns FunnelParameterFilter * @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.analytics.data.v1alpha.FunnelFilterExpressionList; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.FunnelParameterFilter; /** - * Decodes a FunnelFilterExpressionList message from the specified reader or buffer, length delimited. + * Decodes a FunnelParameterFilter message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns FunnelFilterExpressionList + * @returns FunnelParameterFilter * @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.analytics.data.v1alpha.FunnelFilterExpressionList; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.FunnelParameterFilter; /** - * Verifies a FunnelFilterExpressionList message. + * Verifies a FunnelParameterFilter 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 FunnelFilterExpressionList message from a plain object. Also converts values to their respective internal types. + * Creates a FunnelParameterFilter message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns FunnelFilterExpressionList + * @returns FunnelParameterFilter */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.FunnelFilterExpressionList; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.FunnelParameterFilter; /** - * Creates a plain object from a FunnelFilterExpressionList message. Also converts values to other types if specified. - * @param message FunnelFilterExpressionList + * Creates a plain object from a FunnelParameterFilter message. Also converts values to other types if specified. + * @param message FunnelParameterFilter * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.FunnelFilterExpressionList, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.FunnelParameterFilter, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this FunnelFilterExpressionList to JSON. + * Converts this FunnelParameterFilter to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for FunnelFilterExpressionList + * Gets the default type url for FunnelParameterFilter * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a FunnelFieldFilter. */ - interface IFunnelFieldFilter { - - /** FunnelFieldFilter fieldName */ - fieldName?: (string|null); - - /** FunnelFieldFilter stringFilter */ - stringFilter?: (google.analytics.data.v1alpha.IStringFilter|null); - - /** FunnelFieldFilter inListFilter */ - inListFilter?: (google.analytics.data.v1alpha.IInListFilter|null); - - /** FunnelFieldFilter numericFilter */ - numericFilter?: (google.analytics.data.v1alpha.INumericFilter|null); + /** Properties of a FunnelResponseMetadata. */ + interface IFunnelResponseMetadata { - /** FunnelFieldFilter betweenFilter */ - betweenFilter?: (google.analytics.data.v1alpha.IBetweenFilter|null); + /** FunnelResponseMetadata samplingMetadatas */ + samplingMetadatas?: (google.analytics.data.v1alpha.ISamplingMetadata[]|null); } - /** Represents a FunnelFieldFilter. */ - class FunnelFieldFilter implements IFunnelFieldFilter { + /** Represents a FunnelResponseMetadata. */ + class FunnelResponseMetadata implements IFunnelResponseMetadata { /** - * Constructs a new FunnelFieldFilter. + * Constructs a new FunnelResponseMetadata. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.IFunnelFieldFilter); - - /** FunnelFieldFilter fieldName. */ - public fieldName: string; - - /** FunnelFieldFilter stringFilter. */ - public stringFilter?: (google.analytics.data.v1alpha.IStringFilter|null); - - /** FunnelFieldFilter inListFilter. */ - public inListFilter?: (google.analytics.data.v1alpha.IInListFilter|null); - - /** FunnelFieldFilter numericFilter. */ - public numericFilter?: (google.analytics.data.v1alpha.INumericFilter|null); - - /** FunnelFieldFilter betweenFilter. */ - public betweenFilter?: (google.analytics.data.v1alpha.IBetweenFilter|null); + constructor(properties?: google.analytics.data.v1alpha.IFunnelResponseMetadata); - /** FunnelFieldFilter oneFilter. */ - public oneFilter?: ("stringFilter"|"inListFilter"|"numericFilter"|"betweenFilter"); + /** FunnelResponseMetadata samplingMetadatas. */ + public samplingMetadatas: google.analytics.data.v1alpha.ISamplingMetadata[]; /** - * Creates a new FunnelFieldFilter instance using the specified properties. + * Creates a new FunnelResponseMetadata instance using the specified properties. * @param [properties] Properties to set - * @returns FunnelFieldFilter instance + * @returns FunnelResponseMetadata instance */ - public static create(properties?: google.analytics.data.v1alpha.IFunnelFieldFilter): google.analytics.data.v1alpha.FunnelFieldFilter; + public static create(properties?: google.analytics.data.v1alpha.IFunnelResponseMetadata): google.analytics.data.v1alpha.FunnelResponseMetadata; /** - * Encodes the specified FunnelFieldFilter message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelFieldFilter.verify|verify} messages. - * @param message FunnelFieldFilter message or plain object to encode + * Encodes the specified FunnelResponseMetadata message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelResponseMetadata.verify|verify} messages. + * @param message FunnelResponseMetadata message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.IFunnelFieldFilter, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IFunnelResponseMetadata, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified FunnelFieldFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelFieldFilter.verify|verify} messages. - * @param message FunnelFieldFilter message or plain object to encode + * Encodes the specified FunnelResponseMetadata message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelResponseMetadata.verify|verify} messages. + * @param message FunnelResponseMetadata message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IFunnelFieldFilter, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IFunnelResponseMetadata, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a FunnelFieldFilter message from the specified reader or buffer. + * Decodes a FunnelResponseMetadata message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns FunnelFieldFilter + * @returns FunnelResponseMetadata * @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.analytics.data.v1alpha.FunnelFieldFilter; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.FunnelResponseMetadata; /** - * Decodes a FunnelFieldFilter message from the specified reader or buffer, length delimited. + * Decodes a FunnelResponseMetadata message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns FunnelFieldFilter + * @returns FunnelResponseMetadata * @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.analytics.data.v1alpha.FunnelFieldFilter; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.FunnelResponseMetadata; /** - * Verifies a FunnelFieldFilter message. + * Verifies a FunnelResponseMetadata 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 FunnelFieldFilter message from a plain object. Also converts values to their respective internal types. + * Creates a FunnelResponseMetadata message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns FunnelFieldFilter + * @returns FunnelResponseMetadata */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.FunnelFieldFilter; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.FunnelResponseMetadata; /** - * Creates a plain object from a FunnelFieldFilter message. Also converts values to other types if specified. - * @param message FunnelFieldFilter + * Creates a plain object from a FunnelResponseMetadata message. Also converts values to other types if specified. + * @param message FunnelResponseMetadata * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.FunnelFieldFilter, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.FunnelResponseMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this FunnelFieldFilter to JSON. + * Converts this FunnelResponseMetadata to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for FunnelFieldFilter + * Gets the default type url for FunnelResponseMetadata * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a FunnelEventFilter. */ - interface IFunnelEventFilter { + /** Properties of a SamplingMetadata. */ + interface ISamplingMetadata { - /** FunnelEventFilter eventName */ - eventName?: (string|null); + /** SamplingMetadata samplesReadCount */ + samplesReadCount?: (number|Long|string|null); - /** FunnelEventFilter funnelParameterFilterExpression */ - funnelParameterFilterExpression?: (google.analytics.data.v1alpha.IFunnelParameterFilterExpression|null); + /** SamplingMetadata samplingSpaceSize */ + samplingSpaceSize?: (number|Long|string|null); } - /** Represents a FunnelEventFilter. */ - class FunnelEventFilter implements IFunnelEventFilter { + /** Represents a SamplingMetadata. */ + class SamplingMetadata implements ISamplingMetadata { /** - * Constructs a new FunnelEventFilter. + * Constructs a new SamplingMetadata. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.IFunnelEventFilter); - - /** FunnelEventFilter eventName. */ - public eventName?: (string|null); + constructor(properties?: google.analytics.data.v1alpha.ISamplingMetadata); - /** FunnelEventFilter funnelParameterFilterExpression. */ - public funnelParameterFilterExpression?: (google.analytics.data.v1alpha.IFunnelParameterFilterExpression|null); + /** SamplingMetadata samplesReadCount. */ + public samplesReadCount: (number|Long|string); + + /** SamplingMetadata samplingSpaceSize. */ + public samplingSpaceSize: (number|Long|string); /** - * Creates a new FunnelEventFilter instance using the specified properties. + * Creates a new SamplingMetadata instance using the specified properties. * @param [properties] Properties to set - * @returns FunnelEventFilter instance + * @returns SamplingMetadata instance */ - public static create(properties?: google.analytics.data.v1alpha.IFunnelEventFilter): google.analytics.data.v1alpha.FunnelEventFilter; + public static create(properties?: google.analytics.data.v1alpha.ISamplingMetadata): google.analytics.data.v1alpha.SamplingMetadata; /** - * Encodes the specified FunnelEventFilter message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelEventFilter.verify|verify} messages. - * @param message FunnelEventFilter message or plain object to encode + * Encodes the specified SamplingMetadata message. Does not implicitly {@link google.analytics.data.v1alpha.SamplingMetadata.verify|verify} messages. + * @param message SamplingMetadata message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.IFunnelEventFilter, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.ISamplingMetadata, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified FunnelEventFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelEventFilter.verify|verify} messages. - * @param message FunnelEventFilter message or plain object to encode + * Encodes the specified SamplingMetadata message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SamplingMetadata.verify|verify} messages. + * @param message SamplingMetadata message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IFunnelEventFilter, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.ISamplingMetadata, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a FunnelEventFilter message from the specified reader or buffer. + * Decodes a SamplingMetadata message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns FunnelEventFilter + * @returns SamplingMetadata * @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.analytics.data.v1alpha.FunnelEventFilter; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.SamplingMetadata; /** - * Decodes a FunnelEventFilter message from the specified reader or buffer, length delimited. + * Decodes a SamplingMetadata message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns FunnelEventFilter + * @returns SamplingMetadata * @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.analytics.data.v1alpha.FunnelEventFilter; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.SamplingMetadata; /** - * Verifies a FunnelEventFilter message. + * Verifies a SamplingMetadata 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 FunnelEventFilter message from a plain object. Also converts values to their respective internal types. + * Creates a SamplingMetadata message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns FunnelEventFilter + * @returns SamplingMetadata */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.FunnelEventFilter; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.SamplingMetadata; /** - * Creates a plain object from a FunnelEventFilter message. Also converts values to other types if specified. - * @param message FunnelEventFilter + * Creates a plain object from a SamplingMetadata message. Also converts values to other types if specified. + * @param message SamplingMetadata * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.FunnelEventFilter, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.SamplingMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this FunnelEventFilter to JSON. + * Converts this SamplingMetadata to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for FunnelEventFilter + * Gets the default type url for SamplingMetadata * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a FunnelParameterFilterExpression. */ - interface IFunnelParameterFilterExpression { + /** MetricAggregation enum. */ + enum MetricAggregation { + METRIC_AGGREGATION_UNSPECIFIED = 0, + TOTAL = 1, + MINIMUM = 5, + MAXIMUM = 6, + COUNT = 4 + } - /** FunnelParameterFilterExpression andGroup */ - andGroup?: (google.analytics.data.v1alpha.IFunnelParameterFilterExpressionList|null); + /** MetricType enum. */ + enum MetricType { + METRIC_TYPE_UNSPECIFIED = 0, + TYPE_INTEGER = 1, + TYPE_FLOAT = 2, + TYPE_SECONDS = 4, + TYPE_MILLISECONDS = 5, + TYPE_MINUTES = 6, + TYPE_HOURS = 7, + TYPE_STANDARD = 8, + TYPE_CURRENCY = 9, + TYPE_FEET = 10, + TYPE_MILES = 11, + TYPE_METERS = 12, + TYPE_KILOMETERS = 13 + } - /** FunnelParameterFilterExpression orGroup */ - orGroup?: (google.analytics.data.v1alpha.IFunnelParameterFilterExpressionList|null); + /** RestrictedMetricType enum. */ + enum RestrictedMetricType { + RESTRICTED_METRIC_TYPE_UNSPECIFIED = 0, + COST_DATA = 1, + REVENUE_DATA = 2 + } - /** FunnelParameterFilterExpression notExpression */ - notExpression?: (google.analytics.data.v1alpha.IFunnelParameterFilterExpression|null); + /** SamplingLevel enum. */ + enum SamplingLevel { + SAMPLING_LEVEL_UNSPECIFIED = 0, + LOW = 1, + MEDIUM = 2, + UNSAMPLED = 3 + } - /** FunnelParameterFilterExpression funnelParameterFilter */ - funnelParameterFilter?: (google.analytics.data.v1alpha.IFunnelParameterFilter|null); + /** Properties of a ConversionSpec. */ + interface IConversionSpec { + + /** ConversionSpec conversionActions */ + conversionActions?: (string[]|null); + + /** ConversionSpec attributionModel */ + attributionModel?: (google.analytics.data.v1alpha.ConversionSpec.AttributionModel|keyof typeof google.analytics.data.v1alpha.ConversionSpec.AttributionModel|null); } - /** Represents a FunnelParameterFilterExpression. */ - class FunnelParameterFilterExpression implements IFunnelParameterFilterExpression { + /** Represents a ConversionSpec. */ + class ConversionSpec implements IConversionSpec { /** - * Constructs a new FunnelParameterFilterExpression. + * Constructs a new ConversionSpec. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.IFunnelParameterFilterExpression); - - /** FunnelParameterFilterExpression andGroup. */ - public andGroup?: (google.analytics.data.v1alpha.IFunnelParameterFilterExpressionList|null); - - /** FunnelParameterFilterExpression orGroup. */ - public orGroup?: (google.analytics.data.v1alpha.IFunnelParameterFilterExpressionList|null); - - /** FunnelParameterFilterExpression notExpression. */ - public notExpression?: (google.analytics.data.v1alpha.IFunnelParameterFilterExpression|null); + constructor(properties?: google.analytics.data.v1alpha.IConversionSpec); - /** FunnelParameterFilterExpression funnelParameterFilter. */ - public funnelParameterFilter?: (google.analytics.data.v1alpha.IFunnelParameterFilter|null); + /** ConversionSpec conversionActions. */ + public conversionActions: string[]; - /** FunnelParameterFilterExpression expr. */ - public expr?: ("andGroup"|"orGroup"|"notExpression"|"funnelParameterFilter"); + /** ConversionSpec attributionModel. */ + public attributionModel: (google.analytics.data.v1alpha.ConversionSpec.AttributionModel|keyof typeof google.analytics.data.v1alpha.ConversionSpec.AttributionModel); /** - * Creates a new FunnelParameterFilterExpression instance using the specified properties. + * Creates a new ConversionSpec instance using the specified properties. * @param [properties] Properties to set - * @returns FunnelParameterFilterExpression instance + * @returns ConversionSpec instance */ - public static create(properties?: google.analytics.data.v1alpha.IFunnelParameterFilterExpression): google.analytics.data.v1alpha.FunnelParameterFilterExpression; + public static create(properties?: google.analytics.data.v1alpha.IConversionSpec): google.analytics.data.v1alpha.ConversionSpec; /** - * Encodes the specified FunnelParameterFilterExpression message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelParameterFilterExpression.verify|verify} messages. - * @param message FunnelParameterFilterExpression message or plain object to encode + * Encodes the specified ConversionSpec message. Does not implicitly {@link google.analytics.data.v1alpha.ConversionSpec.verify|verify} messages. + * @param message ConversionSpec message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.IFunnelParameterFilterExpression, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IConversionSpec, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified FunnelParameterFilterExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelParameterFilterExpression.verify|verify} messages. - * @param message FunnelParameterFilterExpression message or plain object to encode + * Encodes the specified ConversionSpec message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.ConversionSpec.verify|verify} messages. + * @param message ConversionSpec message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IFunnelParameterFilterExpression, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IConversionSpec, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a FunnelParameterFilterExpression message from the specified reader or buffer. + * Decodes a ConversionSpec message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns FunnelParameterFilterExpression + * @returns ConversionSpec * @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.analytics.data.v1alpha.FunnelParameterFilterExpression; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.ConversionSpec; /** - * Decodes a FunnelParameterFilterExpression message from the specified reader or buffer, length delimited. + * Decodes a ConversionSpec message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns FunnelParameterFilterExpression + * @returns ConversionSpec * @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.analytics.data.v1alpha.FunnelParameterFilterExpression; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.ConversionSpec; /** - * Verifies a FunnelParameterFilterExpression message. + * Verifies a ConversionSpec 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 FunnelParameterFilterExpression message from a plain object. Also converts values to their respective internal types. + * Creates a ConversionSpec message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns FunnelParameterFilterExpression + * @returns ConversionSpec */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.FunnelParameterFilterExpression; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.ConversionSpec; /** - * Creates a plain object from a FunnelParameterFilterExpression message. Also converts values to other types if specified. - * @param message FunnelParameterFilterExpression + * Creates a plain object from a ConversionSpec message. Also converts values to other types if specified. + * @param message ConversionSpec * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.FunnelParameterFilterExpression, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.ConversionSpec, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this FunnelParameterFilterExpression to JSON. + * Converts this ConversionSpec to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for FunnelParameterFilterExpression + * Gets the default type url for ConversionSpec * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a FunnelParameterFilterExpressionList. */ - interface IFunnelParameterFilterExpressionList { + namespace ConversionSpec { - /** FunnelParameterFilterExpressionList expressions */ - expressions?: (google.analytics.data.v1alpha.IFunnelParameterFilterExpression[]|null); + /** AttributionModel enum. */ + enum AttributionModel { + ATTRIBUTION_MODEL_UNSPECIFIED = 0, + DATA_DRIVEN = 1, + LAST_CLICK = 2 + } } - /** Represents a FunnelParameterFilterExpressionList. */ - class FunnelParameterFilterExpressionList implements IFunnelParameterFilterExpressionList { + /** Properties of a DimensionMetadata. */ + interface IDimensionMetadata { + + /** DimensionMetadata apiName */ + apiName?: (string|null); + + /** DimensionMetadata uiName */ + uiName?: (string|null); + + /** DimensionMetadata description */ + description?: (string|null); + + /** DimensionMetadata deprecatedApiNames */ + deprecatedApiNames?: (string[]|null); + + /** DimensionMetadata customDefinition */ + customDefinition?: (boolean|null); + + /** DimensionMetadata category */ + category?: (string|null); + + /** DimensionMetadata sections */ + sections?: (google.analytics.data.v1alpha.Section[]|null); + } + + /** Represents a DimensionMetadata. */ + class DimensionMetadata implements IDimensionMetadata { /** - * Constructs a new FunnelParameterFilterExpressionList. + * Constructs a new DimensionMetadata. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.IFunnelParameterFilterExpressionList); + constructor(properties?: google.analytics.data.v1alpha.IDimensionMetadata); - /** FunnelParameterFilterExpressionList expressions. */ - public expressions: google.analytics.data.v1alpha.IFunnelParameterFilterExpression[]; + /** DimensionMetadata apiName. */ + public apiName: string; + + /** DimensionMetadata uiName. */ + public uiName: string; + + /** DimensionMetadata description. */ + public description: string; + + /** DimensionMetadata deprecatedApiNames. */ + public deprecatedApiNames: string[]; + + /** DimensionMetadata customDefinition. */ + public customDefinition: boolean; + + /** DimensionMetadata category. */ + public category: string; + + /** DimensionMetadata sections. */ + public sections: google.analytics.data.v1alpha.Section[]; /** - * Creates a new FunnelParameterFilterExpressionList instance using the specified properties. + * Creates a new DimensionMetadata instance using the specified properties. * @param [properties] Properties to set - * @returns FunnelParameterFilterExpressionList instance + * @returns DimensionMetadata instance */ - public static create(properties?: google.analytics.data.v1alpha.IFunnelParameterFilterExpressionList): google.analytics.data.v1alpha.FunnelParameterFilterExpressionList; + public static create(properties?: google.analytics.data.v1alpha.IDimensionMetadata): google.analytics.data.v1alpha.DimensionMetadata; /** - * Encodes the specified FunnelParameterFilterExpressionList message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelParameterFilterExpressionList.verify|verify} messages. - * @param message FunnelParameterFilterExpressionList message or plain object to encode + * Encodes the specified DimensionMetadata message. Does not implicitly {@link google.analytics.data.v1alpha.DimensionMetadata.verify|verify} messages. + * @param message DimensionMetadata message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.IFunnelParameterFilterExpressionList, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IDimensionMetadata, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified FunnelParameterFilterExpressionList message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelParameterFilterExpressionList.verify|verify} messages. - * @param message FunnelParameterFilterExpressionList message or plain object to encode + * Encodes the specified DimensionMetadata message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.DimensionMetadata.verify|verify} messages. + * @param message DimensionMetadata message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IFunnelParameterFilterExpressionList, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IDimensionMetadata, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a FunnelParameterFilterExpressionList message from the specified reader or buffer. + * Decodes a DimensionMetadata message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns FunnelParameterFilterExpressionList + * @returns DimensionMetadata * @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.analytics.data.v1alpha.FunnelParameterFilterExpressionList; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.DimensionMetadata; /** - * Decodes a FunnelParameterFilterExpressionList message from the specified reader or buffer, length delimited. + * Decodes a DimensionMetadata message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns FunnelParameterFilterExpressionList + * @returns DimensionMetadata * @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.analytics.data.v1alpha.FunnelParameterFilterExpressionList; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.DimensionMetadata; /** - * Verifies a FunnelParameterFilterExpressionList message. + * Verifies a DimensionMetadata 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 FunnelParameterFilterExpressionList message from a plain object. Also converts values to their respective internal types. + * Creates a DimensionMetadata message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns FunnelParameterFilterExpressionList + * @returns DimensionMetadata */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.FunnelParameterFilterExpressionList; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.DimensionMetadata; /** - * Creates a plain object from a FunnelParameterFilterExpressionList message. Also converts values to other types if specified. - * @param message FunnelParameterFilterExpressionList + * Creates a plain object from a DimensionMetadata message. Also converts values to other types if specified. + * @param message DimensionMetadata * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.FunnelParameterFilterExpressionList, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.DimensionMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this FunnelParameterFilterExpressionList to JSON. + * Converts this DimensionMetadata to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for FunnelParameterFilterExpressionList + * Gets the default type url for DimensionMetadata * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a FunnelParameterFilter. */ - interface IFunnelParameterFilter { + /** Properties of a MetricMetadata. */ + interface IMetricMetadata { - /** FunnelParameterFilter eventParameterName */ - eventParameterName?: (string|null); + /** MetricMetadata apiName */ + apiName?: (string|null); - /** FunnelParameterFilter itemParameterName */ - itemParameterName?: (string|null); + /** MetricMetadata uiName */ + uiName?: (string|null); + + /** MetricMetadata description */ + description?: (string|null); + + /** MetricMetadata deprecatedApiNames */ + deprecatedApiNames?: (string[]|null); + + /** MetricMetadata type */ + type?: (google.analytics.data.v1alpha.MetricType|keyof typeof google.analytics.data.v1alpha.MetricType|null); - /** FunnelParameterFilter stringFilter */ - stringFilter?: (google.analytics.data.v1alpha.IStringFilter|null); + /** MetricMetadata expression */ + expression?: (string|null); - /** FunnelParameterFilter inListFilter */ - inListFilter?: (google.analytics.data.v1alpha.IInListFilter|null); + /** MetricMetadata customDefinition */ + customDefinition?: (boolean|null); - /** FunnelParameterFilter numericFilter */ - numericFilter?: (google.analytics.data.v1alpha.INumericFilter|null); + /** MetricMetadata blockedReasons */ + blockedReasons?: (google.analytics.data.v1alpha.MetricMetadata.BlockedReason[]|null); - /** FunnelParameterFilter betweenFilter */ - betweenFilter?: (google.analytics.data.v1alpha.IBetweenFilter|null); + /** MetricMetadata category */ + category?: (string|null); + + /** MetricMetadata sections */ + sections?: (google.analytics.data.v1alpha.Section[]|null); } - /** Represents a FunnelParameterFilter. */ - class FunnelParameterFilter implements IFunnelParameterFilter { + /** Represents a MetricMetadata. */ + class MetricMetadata implements IMetricMetadata { /** - * Constructs a new FunnelParameterFilter. + * Constructs a new MetricMetadata. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.IFunnelParameterFilter); + constructor(properties?: google.analytics.data.v1alpha.IMetricMetadata); - /** FunnelParameterFilter eventParameterName. */ - public eventParameterName?: (string|null); + /** MetricMetadata apiName. */ + public apiName: string; - /** FunnelParameterFilter itemParameterName. */ - public itemParameterName?: (string|null); + /** MetricMetadata uiName. */ + public uiName: string; - /** FunnelParameterFilter stringFilter. */ - public stringFilter?: (google.analytics.data.v1alpha.IStringFilter|null); + /** MetricMetadata description. */ + public description: string; - /** FunnelParameterFilter inListFilter. */ - public inListFilter?: (google.analytics.data.v1alpha.IInListFilter|null); + /** MetricMetadata deprecatedApiNames. */ + public deprecatedApiNames: string[]; - /** FunnelParameterFilter numericFilter. */ - public numericFilter?: (google.analytics.data.v1alpha.INumericFilter|null); + /** MetricMetadata type. */ + public type: (google.analytics.data.v1alpha.MetricType|keyof typeof google.analytics.data.v1alpha.MetricType); - /** FunnelParameterFilter betweenFilter. */ - public betweenFilter?: (google.analytics.data.v1alpha.IBetweenFilter|null); + /** MetricMetadata expression. */ + public expression: string; - /** FunnelParameterFilter oneParameter. */ - public oneParameter?: ("eventParameterName"|"itemParameterName"); + /** MetricMetadata customDefinition. */ + public customDefinition: boolean; - /** FunnelParameterFilter oneFilter. */ - public oneFilter?: ("stringFilter"|"inListFilter"|"numericFilter"|"betweenFilter"); + /** MetricMetadata blockedReasons. */ + public blockedReasons: google.analytics.data.v1alpha.MetricMetadata.BlockedReason[]; + + /** MetricMetadata category. */ + public category: string; + + /** MetricMetadata sections. */ + public sections: google.analytics.data.v1alpha.Section[]; /** - * Creates a new FunnelParameterFilter instance using the specified properties. + * Creates a new MetricMetadata instance using the specified properties. * @param [properties] Properties to set - * @returns FunnelParameterFilter instance + * @returns MetricMetadata instance */ - public static create(properties?: google.analytics.data.v1alpha.IFunnelParameterFilter): google.analytics.data.v1alpha.FunnelParameterFilter; + public static create(properties?: google.analytics.data.v1alpha.IMetricMetadata): google.analytics.data.v1alpha.MetricMetadata; /** - * Encodes the specified FunnelParameterFilter message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelParameterFilter.verify|verify} messages. - * @param message FunnelParameterFilter message or plain object to encode + * Encodes the specified MetricMetadata message. Does not implicitly {@link google.analytics.data.v1alpha.MetricMetadata.verify|verify} messages. + * @param message MetricMetadata message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.IFunnelParameterFilter, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IMetricMetadata, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified FunnelParameterFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelParameterFilter.verify|verify} messages. - * @param message FunnelParameterFilter message or plain object to encode + * Encodes the specified MetricMetadata message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.MetricMetadata.verify|verify} messages. + * @param message MetricMetadata message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IFunnelParameterFilter, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IMetricMetadata, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a FunnelParameterFilter message from the specified reader or buffer. + * Decodes a MetricMetadata message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns FunnelParameterFilter + * @returns MetricMetadata * @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.analytics.data.v1alpha.FunnelParameterFilter; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.MetricMetadata; /** - * Decodes a FunnelParameterFilter message from the specified reader or buffer, length delimited. + * Decodes a MetricMetadata message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns FunnelParameterFilter + * @returns MetricMetadata * @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.analytics.data.v1alpha.FunnelParameterFilter; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.MetricMetadata; /** - * Verifies a FunnelParameterFilter message. + * Verifies a MetricMetadata 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 FunnelParameterFilter message from a plain object. Also converts values to their respective internal types. + * Creates a MetricMetadata message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns FunnelParameterFilter + * @returns MetricMetadata */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.FunnelParameterFilter; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.MetricMetadata; /** - * Creates a plain object from a FunnelParameterFilter message. Also converts values to other types if specified. - * @param message FunnelParameterFilter + * Creates a plain object from a MetricMetadata message. Also converts values to other types if specified. + * @param message MetricMetadata * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.FunnelParameterFilter, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.MetricMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this FunnelParameterFilter to JSON. + * Converts this MetricMetadata to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for FunnelParameterFilter + * Gets the default type url for MetricMetadata * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a FunnelResponseMetadata. */ - interface IFunnelResponseMetadata { + namespace MetricMetadata { - /** FunnelResponseMetadata samplingMetadatas */ - samplingMetadatas?: (google.analytics.data.v1alpha.ISamplingMetadata[]|null); + /** BlockedReason enum. */ + enum BlockedReason { + BLOCKED_REASON_UNSPECIFIED = 0, + NO_REVENUE_METRICS = 1, + NO_COST_METRICS = 2 + } } - /** Represents a FunnelResponseMetadata. */ - class FunnelResponseMetadata implements IFunnelResponseMetadata { + /** Properties of a ComparisonMetadata. */ + interface IComparisonMetadata { + + /** ComparisonMetadata apiName */ + apiName?: (string|null); + + /** ComparisonMetadata uiName */ + uiName?: (string|null); + + /** ComparisonMetadata description */ + description?: (string|null); + } + + /** Represents a ComparisonMetadata. */ + class ComparisonMetadata implements IComparisonMetadata { /** - * Constructs a new FunnelResponseMetadata. + * Constructs a new ComparisonMetadata. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.IFunnelResponseMetadata); + constructor(properties?: google.analytics.data.v1alpha.IComparisonMetadata); - /** FunnelResponseMetadata samplingMetadatas. */ - public samplingMetadatas: google.analytics.data.v1alpha.ISamplingMetadata[]; + /** ComparisonMetadata apiName. */ + public apiName: string; + + /** ComparisonMetadata uiName. */ + public uiName: string; + + /** ComparisonMetadata description. */ + public description: string; /** - * Creates a new FunnelResponseMetadata instance using the specified properties. + * Creates a new ComparisonMetadata instance using the specified properties. * @param [properties] Properties to set - * @returns FunnelResponseMetadata instance + * @returns ComparisonMetadata instance */ - public static create(properties?: google.analytics.data.v1alpha.IFunnelResponseMetadata): google.analytics.data.v1alpha.FunnelResponseMetadata; + public static create(properties?: google.analytics.data.v1alpha.IComparisonMetadata): google.analytics.data.v1alpha.ComparisonMetadata; /** - * Encodes the specified FunnelResponseMetadata message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelResponseMetadata.verify|verify} messages. - * @param message FunnelResponseMetadata message or plain object to encode + * Encodes the specified ComparisonMetadata message. Does not implicitly {@link google.analytics.data.v1alpha.ComparisonMetadata.verify|verify} messages. + * @param message ComparisonMetadata message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.IFunnelResponseMetadata, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IComparisonMetadata, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified FunnelResponseMetadata message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelResponseMetadata.verify|verify} messages. - * @param message FunnelResponseMetadata message or plain object to encode + * Encodes the specified ComparisonMetadata message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.ComparisonMetadata.verify|verify} messages. + * @param message ComparisonMetadata message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IFunnelResponseMetadata, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IComparisonMetadata, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a FunnelResponseMetadata message from the specified reader or buffer. + * Decodes a ComparisonMetadata message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns FunnelResponseMetadata + * @returns ComparisonMetadata * @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.analytics.data.v1alpha.FunnelResponseMetadata; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.ComparisonMetadata; /** - * Decodes a FunnelResponseMetadata message from the specified reader or buffer, length delimited. + * Decodes a ComparisonMetadata message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns FunnelResponseMetadata + * @returns ComparisonMetadata * @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.analytics.data.v1alpha.FunnelResponseMetadata; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.ComparisonMetadata; /** - * Verifies a FunnelResponseMetadata message. + * Verifies a ComparisonMetadata 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 FunnelResponseMetadata message from a plain object. Also converts values to their respective internal types. + * Creates a ComparisonMetadata message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns FunnelResponseMetadata + * @returns ComparisonMetadata */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.FunnelResponseMetadata; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.ComparisonMetadata; /** - * Creates a plain object from a FunnelResponseMetadata message. Also converts values to other types if specified. - * @param message FunnelResponseMetadata + * Creates a plain object from a ComparisonMetadata message. Also converts values to other types if specified. + * @param message ComparisonMetadata * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.FunnelResponseMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.ComparisonMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this FunnelResponseMetadata to JSON. + * Converts this ComparisonMetadata to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for FunnelResponseMetadata + * Gets the default type url for ComparisonMetadata * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a SamplingMetadata. */ - interface ISamplingMetadata { + /** Properties of a ConversionMetadata. */ + interface IConversionMetadata { - /** SamplingMetadata samplesReadCount */ - samplesReadCount?: (number|Long|string|null); + /** ConversionMetadata conversionAction */ + conversionAction?: (string|null); - /** SamplingMetadata samplingSpaceSize */ - samplingSpaceSize?: (number|Long|string|null); + /** ConversionMetadata displayName */ + displayName?: (string|null); } - /** Represents a SamplingMetadata. */ - class SamplingMetadata implements ISamplingMetadata { + /** Represents a ConversionMetadata. */ + class ConversionMetadata implements IConversionMetadata { /** - * Constructs a new SamplingMetadata. + * Constructs a new ConversionMetadata. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.ISamplingMetadata); + constructor(properties?: google.analytics.data.v1alpha.IConversionMetadata); - /** SamplingMetadata samplesReadCount. */ - public samplesReadCount: (number|Long|string); + /** ConversionMetadata conversionAction. */ + public conversionAction: string; - /** SamplingMetadata samplingSpaceSize. */ - public samplingSpaceSize: (number|Long|string); + /** ConversionMetadata displayName. */ + public displayName: string; /** - * Creates a new SamplingMetadata instance using the specified properties. + * Creates a new ConversionMetadata instance using the specified properties. * @param [properties] Properties to set - * @returns SamplingMetadata instance + * @returns ConversionMetadata instance */ - public static create(properties?: google.analytics.data.v1alpha.ISamplingMetadata): google.analytics.data.v1alpha.SamplingMetadata; + public static create(properties?: google.analytics.data.v1alpha.IConversionMetadata): google.analytics.data.v1alpha.ConversionMetadata; /** - * Encodes the specified SamplingMetadata message. Does not implicitly {@link google.analytics.data.v1alpha.SamplingMetadata.verify|verify} messages. - * @param message SamplingMetadata message or plain object to encode + * Encodes the specified ConversionMetadata message. Does not implicitly {@link google.analytics.data.v1alpha.ConversionMetadata.verify|verify} messages. + * @param message ConversionMetadata message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.ISamplingMetadata, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IConversionMetadata, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified SamplingMetadata message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SamplingMetadata.verify|verify} messages. - * @param message SamplingMetadata message or plain object to encode + * Encodes the specified ConversionMetadata message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.ConversionMetadata.verify|verify} messages. + * @param message ConversionMetadata message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.ISamplingMetadata, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IConversionMetadata, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a SamplingMetadata message from the specified reader or buffer. + * Decodes a ConversionMetadata message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns SamplingMetadata + * @returns ConversionMetadata * @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.analytics.data.v1alpha.SamplingMetadata; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.ConversionMetadata; /** - * Decodes a SamplingMetadata message from the specified reader or buffer, length delimited. + * Decodes a ConversionMetadata message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns SamplingMetadata + * @returns ConversionMetadata * @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.analytics.data.v1alpha.SamplingMetadata; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.ConversionMetadata; /** - * Verifies a SamplingMetadata message. + * Verifies a ConversionMetadata 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 SamplingMetadata message from a plain object. Also converts values to their respective internal types. + * Creates a ConversionMetadata message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns SamplingMetadata + * @returns ConversionMetadata */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.SamplingMetadata; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.ConversionMetadata; /** - * Creates a plain object from a SamplingMetadata message. Also converts values to other types if specified. - * @param message SamplingMetadata + * Creates a plain object from a ConversionMetadata message. Also converts values to other types if specified. + * @param message ConversionMetadata * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.SamplingMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.ConversionMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this SamplingMetadata to JSON. + * Converts this ConversionMetadata to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for SamplingMetadata + * Gets the default type url for ConversionMetadata * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - - /** MetricAggregation enum. */ - enum MetricAggregation { - METRIC_AGGREGATION_UNSPECIFIED = 0, - TOTAL = 1, - MINIMUM = 5, - MAXIMUM = 6, - COUNT = 4 - } - - /** MetricType enum. */ - enum MetricType { - METRIC_TYPE_UNSPECIFIED = 0, - TYPE_INTEGER = 1, - TYPE_FLOAT = 2, - TYPE_SECONDS = 4, - TYPE_MILLISECONDS = 5, - TYPE_MINUTES = 6, - TYPE_HOURS = 7, - TYPE_STANDARD = 8, - TYPE_CURRENCY = 9, - TYPE_FEET = 10, - TYPE_MILES = 11, - TYPE_METERS = 12, - TYPE_KILOMETERS = 13 - } - - /** RestrictedMetricType enum. */ - enum RestrictedMetricType { - RESTRICTED_METRIC_TYPE_UNSPECIFIED = 0, - COST_DATA = 1, - REVENUE_DATA = 2 - } - - /** SamplingLevel enum. */ - enum SamplingLevel { - SAMPLING_LEVEL_UNSPECIFIED = 0, - LOW = 1, - MEDIUM = 2, - UNSAMPLED = 3 - } } /** Namespace v1beta. */ diff --git a/packages/google-analytics-data/protos/protos.js b/packages/google-analytics-data/protos/protos.js index 28b263c28655..c5814ccb74ed 100644 --- a/packages/google-analytics-data/protos/protos.js +++ b/packages/google-analytics-data/protos/protos.js @@ -13210,39 +13210,6 @@ * @variation 2 */ - /** - * Callback as used by {@link google.analytics.data.v1alpha.AlphaAnalyticsData|sheetExportAudienceList}. - * @memberof google.analytics.data.v1alpha.AlphaAnalyticsData - * @typedef SheetExportAudienceListCallback - * @type {function} - * @param {Error|null} error Error, if any - * @param {google.analytics.data.v1alpha.SheetExportAudienceListResponse} [response] SheetExportAudienceListResponse - */ - - /** - * Calls SheetExportAudienceList. - * @function sheetExportAudienceList - * @memberof google.analytics.data.v1alpha.AlphaAnalyticsData - * @instance - * @param {google.analytics.data.v1alpha.ISheetExportAudienceListRequest} request SheetExportAudienceListRequest message or plain object - * @param {google.analytics.data.v1alpha.AlphaAnalyticsData.SheetExportAudienceListCallback} callback Node-style callback called with the error, if any, and SheetExportAudienceListResponse - * @returns {undefined} - * @variation 1 - */ - Object.defineProperty(AlphaAnalyticsData.prototype.sheetExportAudienceList = function sheetExportAudienceList(request, callback) { - return this.rpcCall(sheetExportAudienceList, $root.google.analytics.data.v1alpha.SheetExportAudienceListRequest, $root.google.analytics.data.v1alpha.SheetExportAudienceListResponse, request, callback); - }, "name", { value: "SheetExportAudienceList" }); - - /** - * Calls SheetExportAudienceList. - * @function sheetExportAudienceList - * @memberof google.analytics.data.v1alpha.AlphaAnalyticsData - * @instance - * @param {google.analytics.data.v1alpha.ISheetExportAudienceListRequest} request SheetExportAudienceListRequest message or plain object - * @returns {Promise} Promise - * @variation 2 - */ - /** * Callback as used by {@link google.analytics.data.v1alpha.AlphaAnalyticsData|getAudienceList}. * @memberof google.analytics.data.v1alpha.AlphaAnalyticsData @@ -13573,6 +13540,72 @@ * @variation 2 */ + /** + * Callback as used by {@link google.analytics.data.v1alpha.AlphaAnalyticsData|runReport}. + * @memberof google.analytics.data.v1alpha.AlphaAnalyticsData + * @typedef RunReportCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {google.analytics.data.v1alpha.RunReportResponse} [response] RunReportResponse + */ + + /** + * Calls RunReport. + * @function runReport + * @memberof google.analytics.data.v1alpha.AlphaAnalyticsData + * @instance + * @param {google.analytics.data.v1alpha.IRunReportRequest} request RunReportRequest message or plain object + * @param {google.analytics.data.v1alpha.AlphaAnalyticsData.RunReportCallback} callback Node-style callback called with the error, if any, and RunReportResponse + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(AlphaAnalyticsData.prototype.runReport = function runReport(request, callback) { + return this.rpcCall(runReport, $root.google.analytics.data.v1alpha.RunReportRequest, $root.google.analytics.data.v1alpha.RunReportResponse, request, callback); + }, "name", { value: "RunReport" }); + + /** + * Calls RunReport. + * @function runReport + * @memberof google.analytics.data.v1alpha.AlphaAnalyticsData + * @instance + * @param {google.analytics.data.v1alpha.IRunReportRequest} request RunReportRequest message or plain object + * @returns {Promise} Promise + * @variation 2 + */ + + /** + * Callback as used by {@link google.analytics.data.v1alpha.AlphaAnalyticsData|getMetadata}. + * @memberof google.analytics.data.v1alpha.AlphaAnalyticsData + * @typedef GetMetadataCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {google.analytics.data.v1alpha.Metadata} [response] Metadata + */ + + /** + * Calls GetMetadata. + * @function getMetadata + * @memberof google.analytics.data.v1alpha.AlphaAnalyticsData + * @instance + * @param {google.analytics.data.v1alpha.IGetMetadataRequest} request GetMetadataRequest message or plain object + * @param {google.analytics.data.v1alpha.AlphaAnalyticsData.GetMetadataCallback} callback Node-style callback called with the error, if any, and Metadata + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(AlphaAnalyticsData.prototype.getMetadata = function getMetadata(request, callback) { + return this.rpcCall(getMetadata, $root.google.analytics.data.v1alpha.GetMetadataRequest, $root.google.analytics.data.v1alpha.Metadata, request, callback); + }, "name", { value: "GetMetadata" }); + + /** + * Calls GetMetadata. + * @function getMetadata + * @memberof google.analytics.data.v1alpha.AlphaAnalyticsData + * @instance + * @param {google.analytics.data.v1alpha.IGetMetadataRequest} request GetMetadataRequest message or plain object + * @returns {Promise} Promise + * @variation 2 + */ + return AlphaAnalyticsData; })(); @@ -18016,26 +18049,25 @@ return QueryAudienceListResponse; })(); - v1alpha.SheetExportAudienceListRequest = (function() { + v1alpha.AudienceRow = (function() { /** - * Properties of a SheetExportAudienceListRequest. + * Properties of an AudienceRow. * @memberof google.analytics.data.v1alpha - * @interface ISheetExportAudienceListRequest - * @property {string|null} [name] SheetExportAudienceListRequest name - * @property {number|Long|null} [offset] SheetExportAudienceListRequest offset - * @property {number|Long|null} [limit] SheetExportAudienceListRequest limit + * @interface IAudienceRow + * @property {Array.|null} [dimensionValues] AudienceRow dimensionValues */ /** - * Constructs a new SheetExportAudienceListRequest. + * Constructs a new AudienceRow. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a SheetExportAudienceListRequest. - * @implements ISheetExportAudienceListRequest + * @classdesc Represents an AudienceRow. + * @implements IAudienceRow * @constructor - * @param {google.analytics.data.v1alpha.ISheetExportAudienceListRequest=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IAudienceRow=} [properties] Properties to set */ - function SheetExportAudienceListRequest(properties) { + function AudienceRow(properties) { + this.dimensionValues = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -18043,105 +18075,80 @@ } /** - * SheetExportAudienceListRequest name. - * @member {string} name - * @memberof google.analytics.data.v1alpha.SheetExportAudienceListRequest - * @instance - */ - SheetExportAudienceListRequest.prototype.name = ""; - - /** - * SheetExportAudienceListRequest offset. - * @member {number|Long} offset - * @memberof google.analytics.data.v1alpha.SheetExportAudienceListRequest - * @instance - */ - SheetExportAudienceListRequest.prototype.offset = $util.Long ? $util.Long.fromBits(0,0,false) : 0; - - /** - * SheetExportAudienceListRequest limit. - * @member {number|Long} limit - * @memberof google.analytics.data.v1alpha.SheetExportAudienceListRequest + * AudienceRow dimensionValues. + * @member {Array.} dimensionValues + * @memberof google.analytics.data.v1alpha.AudienceRow * @instance */ - SheetExportAudienceListRequest.prototype.limit = $util.Long ? $util.Long.fromBits(0,0,false) : 0; + AudienceRow.prototype.dimensionValues = $util.emptyArray; /** - * Creates a new SheetExportAudienceListRequest instance using the specified properties. + * Creates a new AudienceRow instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.SheetExportAudienceListRequest + * @memberof google.analytics.data.v1alpha.AudienceRow * @static - * @param {google.analytics.data.v1alpha.ISheetExportAudienceListRequest=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.SheetExportAudienceListRequest} SheetExportAudienceListRequest instance + * @param {google.analytics.data.v1alpha.IAudienceRow=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.AudienceRow} AudienceRow instance */ - SheetExportAudienceListRequest.create = function create(properties) { - return new SheetExportAudienceListRequest(properties); + AudienceRow.create = function create(properties) { + return new AudienceRow(properties); }; /** - * Encodes the specified SheetExportAudienceListRequest message. Does not implicitly {@link google.analytics.data.v1alpha.SheetExportAudienceListRequest.verify|verify} messages. + * Encodes the specified AudienceRow message. Does not implicitly {@link google.analytics.data.v1alpha.AudienceRow.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.SheetExportAudienceListRequest + * @memberof google.analytics.data.v1alpha.AudienceRow * @static - * @param {google.analytics.data.v1alpha.ISheetExportAudienceListRequest} message SheetExportAudienceListRequest message or plain object to encode + * @param {google.analytics.data.v1alpha.IAudienceRow} message AudienceRow message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SheetExportAudienceListRequest.encode = function encode(message, writer) { + AudienceRow.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.offset != null && Object.hasOwnProperty.call(message, "offset")) - writer.uint32(/* id 2, wireType 0 =*/16).int64(message.offset); - if (message.limit != null && Object.hasOwnProperty.call(message, "limit")) - writer.uint32(/* id 3, wireType 0 =*/24).int64(message.limit); + if (message.dimensionValues != null && message.dimensionValues.length) + for (var i = 0; i < message.dimensionValues.length; ++i) + $root.google.analytics.data.v1alpha.AudienceDimensionValue.encode(message.dimensionValues[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); return writer; }; /** - * Encodes the specified SheetExportAudienceListRequest message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SheetExportAudienceListRequest.verify|verify} messages. + * Encodes the specified AudienceRow message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.AudienceRow.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.SheetExportAudienceListRequest + * @memberof google.analytics.data.v1alpha.AudienceRow * @static - * @param {google.analytics.data.v1alpha.ISheetExportAudienceListRequest} message SheetExportAudienceListRequest message or plain object to encode + * @param {google.analytics.data.v1alpha.IAudienceRow} message AudienceRow message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SheetExportAudienceListRequest.encodeDelimited = function encodeDelimited(message, writer) { + AudienceRow.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a SheetExportAudienceListRequest message from the specified reader or buffer. + * Decodes an AudienceRow message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.SheetExportAudienceListRequest + * @memberof google.analytics.data.v1alpha.AudienceRow * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.SheetExportAudienceListRequest} SheetExportAudienceListRequest + * @returns {google.analytics.data.v1alpha.AudienceRow} AudienceRow * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SheetExportAudienceListRequest.decode = function decode(reader, length, error) { + AudienceRow.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.SheetExportAudienceListRequest(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.AudienceRow(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { case 1: { - message.name = reader.string(); - break; - } - case 2: { - message.offset = reader.int64(); - break; - } - case 3: { - message.limit = reader.int64(); + if (!(message.dimensionValues && message.dimensionValues.length)) + message.dimensionValues = []; + message.dimensionValues.push($root.google.analytics.data.v1alpha.AudienceDimensionValue.decode(reader, reader.uint32())); break; } default: @@ -18153,170 +18160,139 @@ }; /** - * Decodes a SheetExportAudienceListRequest message from the specified reader or buffer, length delimited. + * Decodes an AudienceRow message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.SheetExportAudienceListRequest + * @memberof google.analytics.data.v1alpha.AudienceRow * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.SheetExportAudienceListRequest} SheetExportAudienceListRequest + * @returns {google.analytics.data.v1alpha.AudienceRow} AudienceRow * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SheetExportAudienceListRequest.decodeDelimited = function decodeDelimited(reader) { + AudienceRow.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a SheetExportAudienceListRequest message. + * Verifies an AudienceRow message. * @function verify - * @memberof google.analytics.data.v1alpha.SheetExportAudienceListRequest + * @memberof google.analytics.data.v1alpha.AudienceRow * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SheetExportAudienceListRequest.verify = function verify(message) { + AudienceRow.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.offset != null && message.hasOwnProperty("offset")) - if (!$util.isInteger(message.offset) && !(message.offset && $util.isInteger(message.offset.low) && $util.isInteger(message.offset.high))) - return "offset: integer|Long expected"; - if (message.limit != null && message.hasOwnProperty("limit")) - if (!$util.isInteger(message.limit) && !(message.limit && $util.isInteger(message.limit.low) && $util.isInteger(message.limit.high))) - return "limit: integer|Long expected"; + if (message.dimensionValues != null && message.hasOwnProperty("dimensionValues")) { + if (!Array.isArray(message.dimensionValues)) + return "dimensionValues: array expected"; + for (var i = 0; i < message.dimensionValues.length; ++i) { + var error = $root.google.analytics.data.v1alpha.AudienceDimensionValue.verify(message.dimensionValues[i]); + if (error) + return "dimensionValues." + error; + } + } return null; }; /** - * Creates a SheetExportAudienceListRequest message from a plain object. Also converts values to their respective internal types. + * Creates an AudienceRow message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.SheetExportAudienceListRequest + * @memberof google.analytics.data.v1alpha.AudienceRow * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.SheetExportAudienceListRequest} SheetExportAudienceListRequest + * @returns {google.analytics.data.v1alpha.AudienceRow} AudienceRow */ - SheetExportAudienceListRequest.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.SheetExportAudienceListRequest) + AudienceRow.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.AudienceRow) return object; - var message = new $root.google.analytics.data.v1alpha.SheetExportAudienceListRequest(); - if (object.name != null) - message.name = String(object.name); - if (object.offset != null) - if ($util.Long) - (message.offset = $util.Long.fromValue(object.offset)).unsigned = false; - else if (typeof object.offset === "string") - message.offset = parseInt(object.offset, 10); - else if (typeof object.offset === "number") - message.offset = object.offset; - else if (typeof object.offset === "object") - message.offset = new $util.LongBits(object.offset.low >>> 0, object.offset.high >>> 0).toNumber(); - if (object.limit != null) - if ($util.Long) - (message.limit = $util.Long.fromValue(object.limit)).unsigned = false; - else if (typeof object.limit === "string") - message.limit = parseInt(object.limit, 10); - else if (typeof object.limit === "number") - message.limit = object.limit; - else if (typeof object.limit === "object") - message.limit = new $util.LongBits(object.limit.low >>> 0, object.limit.high >>> 0).toNumber(); + var message = new $root.google.analytics.data.v1alpha.AudienceRow(); + if (object.dimensionValues) { + if (!Array.isArray(object.dimensionValues)) + throw TypeError(".google.analytics.data.v1alpha.AudienceRow.dimensionValues: array expected"); + message.dimensionValues = []; + for (var i = 0; i < object.dimensionValues.length; ++i) { + if (typeof object.dimensionValues[i] !== "object") + throw TypeError(".google.analytics.data.v1alpha.AudienceRow.dimensionValues: object expected"); + message.dimensionValues[i] = $root.google.analytics.data.v1alpha.AudienceDimensionValue.fromObject(object.dimensionValues[i]); + } + } return message; }; /** - * Creates a plain object from a SheetExportAudienceListRequest message. Also converts values to other types if specified. + * Creates a plain object from an AudienceRow message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.SheetExportAudienceListRequest + * @memberof google.analytics.data.v1alpha.AudienceRow * @static - * @param {google.analytics.data.v1alpha.SheetExportAudienceListRequest} message SheetExportAudienceListRequest + * @param {google.analytics.data.v1alpha.AudienceRow} message AudienceRow * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SheetExportAudienceListRequest.toObject = function toObject(message, options) { + AudienceRow.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.defaults) { - object.name = ""; - if ($util.Long) { - var long = new $util.Long(0, 0, false); - object.offset = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; - } else - object.offset = options.longs === String ? "0" : 0; - if ($util.Long) { - var long = new $util.Long(0, 0, false); - object.limit = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; - } else - object.limit = options.longs === String ? "0" : 0; + if (options.arrays || options.defaults) + object.dimensionValues = []; + if (message.dimensionValues && message.dimensionValues.length) { + object.dimensionValues = []; + for (var j = 0; j < message.dimensionValues.length; ++j) + object.dimensionValues[j] = $root.google.analytics.data.v1alpha.AudienceDimensionValue.toObject(message.dimensionValues[j], options); } - if (message.name != null && message.hasOwnProperty("name")) - object.name = message.name; - if (message.offset != null && message.hasOwnProperty("offset")) - if (typeof message.offset === "number") - object.offset = options.longs === String ? String(message.offset) : message.offset; - else - object.offset = options.longs === String ? $util.Long.prototype.toString.call(message.offset) : options.longs === Number ? new $util.LongBits(message.offset.low >>> 0, message.offset.high >>> 0).toNumber() : message.offset; - if (message.limit != null && message.hasOwnProperty("limit")) - if (typeof message.limit === "number") - object.limit = options.longs === String ? String(message.limit) : message.limit; - else - object.limit = options.longs === String ? $util.Long.prototype.toString.call(message.limit) : options.longs === Number ? new $util.LongBits(message.limit.low >>> 0, message.limit.high >>> 0).toNumber() : message.limit; return object; }; /** - * Converts this SheetExportAudienceListRequest to JSON. + * Converts this AudienceRow to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.SheetExportAudienceListRequest + * @memberof google.analytics.data.v1alpha.AudienceRow * @instance * @returns {Object.} JSON object */ - SheetExportAudienceListRequest.prototype.toJSON = function toJSON() { + AudienceRow.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for SheetExportAudienceListRequest + * Gets the default type url for AudienceRow * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.SheetExportAudienceListRequest + * @memberof google.analytics.data.v1alpha.AudienceRow * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - SheetExportAudienceListRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + AudienceRow.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.analytics.data.v1alpha.SheetExportAudienceListRequest"; + return typeUrlPrefix + "/google.analytics.data.v1alpha.AudienceRow"; }; - return SheetExportAudienceListRequest; + return AudienceRow; })(); - v1alpha.SheetExportAudienceListResponse = (function() { + v1alpha.AudienceDimension = (function() { /** - * Properties of a SheetExportAudienceListResponse. + * Properties of an AudienceDimension. * @memberof google.analytics.data.v1alpha - * @interface ISheetExportAudienceListResponse - * @property {string|null} [spreadsheetUri] SheetExportAudienceListResponse spreadsheetUri - * @property {string|null} [spreadsheetId] SheetExportAudienceListResponse spreadsheetId - * @property {number|null} [rowCount] SheetExportAudienceListResponse rowCount - * @property {google.analytics.data.v1alpha.IAudienceList|null} [audienceList] SheetExportAudienceListResponse audienceList + * @interface IAudienceDimension + * @property {string|null} [dimensionName] AudienceDimension dimensionName */ /** - * Constructs a new SheetExportAudienceListResponse. + * Constructs a new AudienceDimension. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a SheetExportAudienceListResponse. - * @implements ISheetExportAudienceListResponse + * @classdesc Represents an AudienceDimension. + * @implements IAudienceDimension * @constructor - * @param {google.analytics.data.v1alpha.ISheetExportAudienceListResponse=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IAudienceDimension=} [properties] Properties to set */ - function SheetExportAudienceListResponse(properties) { + function AudienceDimension(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -18324,146 +18300,77 @@ } /** - * SheetExportAudienceListResponse spreadsheetUri. - * @member {string|null|undefined} spreadsheetUri - * @memberof google.analytics.data.v1alpha.SheetExportAudienceListResponse - * @instance - */ - SheetExportAudienceListResponse.prototype.spreadsheetUri = null; - - /** - * SheetExportAudienceListResponse spreadsheetId. - * @member {string|null|undefined} spreadsheetId - * @memberof google.analytics.data.v1alpha.SheetExportAudienceListResponse + * AudienceDimension dimensionName. + * @member {string} dimensionName + * @memberof google.analytics.data.v1alpha.AudienceDimension * @instance */ - SheetExportAudienceListResponse.prototype.spreadsheetId = null; + AudienceDimension.prototype.dimensionName = ""; /** - * SheetExportAudienceListResponse rowCount. - * @member {number|null|undefined} rowCount - * @memberof google.analytics.data.v1alpha.SheetExportAudienceListResponse - * @instance - */ - SheetExportAudienceListResponse.prototype.rowCount = null; - - /** - * SheetExportAudienceListResponse audienceList. - * @member {google.analytics.data.v1alpha.IAudienceList|null|undefined} audienceList - * @memberof google.analytics.data.v1alpha.SheetExportAudienceListResponse - * @instance - */ - SheetExportAudienceListResponse.prototype.audienceList = null; - - // OneOf field names bound to virtual getters and setters - var $oneOfFields; - - // Virtual OneOf for proto3 optional field - Object.defineProperty(SheetExportAudienceListResponse.prototype, "_spreadsheetUri", { - get: $util.oneOfGetter($oneOfFields = ["spreadsheetUri"]), - set: $util.oneOfSetter($oneOfFields) - }); - - // Virtual OneOf for proto3 optional field - Object.defineProperty(SheetExportAudienceListResponse.prototype, "_spreadsheetId", { - get: $util.oneOfGetter($oneOfFields = ["spreadsheetId"]), - set: $util.oneOfSetter($oneOfFields) - }); - - // Virtual OneOf for proto3 optional field - Object.defineProperty(SheetExportAudienceListResponse.prototype, "_rowCount", { - get: $util.oneOfGetter($oneOfFields = ["rowCount"]), - set: $util.oneOfSetter($oneOfFields) - }); - - // Virtual OneOf for proto3 optional field - Object.defineProperty(SheetExportAudienceListResponse.prototype, "_audienceList", { - get: $util.oneOfGetter($oneOfFields = ["audienceList"]), - set: $util.oneOfSetter($oneOfFields) - }); - - /** - * Creates a new SheetExportAudienceListResponse instance using the specified properties. + * Creates a new AudienceDimension instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.SheetExportAudienceListResponse + * @memberof google.analytics.data.v1alpha.AudienceDimension * @static - * @param {google.analytics.data.v1alpha.ISheetExportAudienceListResponse=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.SheetExportAudienceListResponse} SheetExportAudienceListResponse instance + * @param {google.analytics.data.v1alpha.IAudienceDimension=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.AudienceDimension} AudienceDimension instance */ - SheetExportAudienceListResponse.create = function create(properties) { - return new SheetExportAudienceListResponse(properties); + AudienceDimension.create = function create(properties) { + return new AudienceDimension(properties); }; /** - * Encodes the specified SheetExportAudienceListResponse message. Does not implicitly {@link google.analytics.data.v1alpha.SheetExportAudienceListResponse.verify|verify} messages. + * Encodes the specified AudienceDimension message. Does not implicitly {@link google.analytics.data.v1alpha.AudienceDimension.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.SheetExportAudienceListResponse + * @memberof google.analytics.data.v1alpha.AudienceDimension * @static - * @param {google.analytics.data.v1alpha.ISheetExportAudienceListResponse} message SheetExportAudienceListResponse message or plain object to encode + * @param {google.analytics.data.v1alpha.IAudienceDimension} message AudienceDimension message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SheetExportAudienceListResponse.encode = function encode(message, writer) { + AudienceDimension.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.spreadsheetUri != null && Object.hasOwnProperty.call(message, "spreadsheetUri")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.spreadsheetUri); - if (message.spreadsheetId != null && Object.hasOwnProperty.call(message, "spreadsheetId")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.spreadsheetId); - if (message.rowCount != null && Object.hasOwnProperty.call(message, "rowCount")) - writer.uint32(/* id 3, wireType 0 =*/24).int32(message.rowCount); - if (message.audienceList != null && Object.hasOwnProperty.call(message, "audienceList")) - $root.google.analytics.data.v1alpha.AudienceList.encode(message.audienceList, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.dimensionName != null && Object.hasOwnProperty.call(message, "dimensionName")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.dimensionName); return writer; }; /** - * Encodes the specified SheetExportAudienceListResponse message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SheetExportAudienceListResponse.verify|verify} messages. + * Encodes the specified AudienceDimension message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.AudienceDimension.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.SheetExportAudienceListResponse + * @memberof google.analytics.data.v1alpha.AudienceDimension * @static - * @param {google.analytics.data.v1alpha.ISheetExportAudienceListResponse} message SheetExportAudienceListResponse message or plain object to encode + * @param {google.analytics.data.v1alpha.IAudienceDimension} message AudienceDimension message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SheetExportAudienceListResponse.encodeDelimited = function encodeDelimited(message, writer) { + AudienceDimension.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a SheetExportAudienceListResponse message from the specified reader or buffer. + * Decodes an AudienceDimension message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.SheetExportAudienceListResponse + * @memberof google.analytics.data.v1alpha.AudienceDimension * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.SheetExportAudienceListResponse} SheetExportAudienceListResponse + * @returns {google.analytics.data.v1alpha.AudienceDimension} AudienceDimension * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SheetExportAudienceListResponse.decode = function decode(reader, length, error) { + AudienceDimension.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.SheetExportAudienceListResponse(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.AudienceDimension(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { case 1: { - message.spreadsheetUri = reader.string(); - break; - } - case 2: { - message.spreadsheetId = reader.string(); - break; - } - case 3: { - message.rowCount = reader.int32(); - break; - } - case 4: { - message.audienceList = $root.google.analytics.data.v1alpha.AudienceList.decode(reader, reader.uint32()); + message.dimensionName = reader.string(); break; } default: @@ -18475,169 +18382,122 @@ }; /** - * Decodes a SheetExportAudienceListResponse message from the specified reader or buffer, length delimited. + * Decodes an AudienceDimension message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.SheetExportAudienceListResponse + * @memberof google.analytics.data.v1alpha.AudienceDimension * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.SheetExportAudienceListResponse} SheetExportAudienceListResponse + * @returns {google.analytics.data.v1alpha.AudienceDimension} AudienceDimension * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SheetExportAudienceListResponse.decodeDelimited = function decodeDelimited(reader) { + AudienceDimension.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a SheetExportAudienceListResponse message. + * Verifies an AudienceDimension message. * @function verify - * @memberof google.analytics.data.v1alpha.SheetExportAudienceListResponse + * @memberof google.analytics.data.v1alpha.AudienceDimension * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SheetExportAudienceListResponse.verify = function verify(message) { + AudienceDimension.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - var properties = {}; - if (message.spreadsheetUri != null && message.hasOwnProperty("spreadsheetUri")) { - properties._spreadsheetUri = 1; - if (!$util.isString(message.spreadsheetUri)) - return "spreadsheetUri: string expected"; - } - if (message.spreadsheetId != null && message.hasOwnProperty("spreadsheetId")) { - properties._spreadsheetId = 1; - if (!$util.isString(message.spreadsheetId)) - return "spreadsheetId: string expected"; - } - if (message.rowCount != null && message.hasOwnProperty("rowCount")) { - properties._rowCount = 1; - if (!$util.isInteger(message.rowCount)) - return "rowCount: integer expected"; - } - if (message.audienceList != null && message.hasOwnProperty("audienceList")) { - properties._audienceList = 1; - { - var error = $root.google.analytics.data.v1alpha.AudienceList.verify(message.audienceList); - if (error) - return "audienceList." + error; - } - } + if (message.dimensionName != null && message.hasOwnProperty("dimensionName")) + if (!$util.isString(message.dimensionName)) + return "dimensionName: string expected"; return null; }; /** - * Creates a SheetExportAudienceListResponse message from a plain object. Also converts values to their respective internal types. + * Creates an AudienceDimension message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.SheetExportAudienceListResponse + * @memberof google.analytics.data.v1alpha.AudienceDimension * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.SheetExportAudienceListResponse} SheetExportAudienceListResponse + * @returns {google.analytics.data.v1alpha.AudienceDimension} AudienceDimension */ - SheetExportAudienceListResponse.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.SheetExportAudienceListResponse) + AudienceDimension.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.AudienceDimension) return object; - var message = new $root.google.analytics.data.v1alpha.SheetExportAudienceListResponse(); - if (object.spreadsheetUri != null) - message.spreadsheetUri = String(object.spreadsheetUri); - if (object.spreadsheetId != null) - message.spreadsheetId = String(object.spreadsheetId); - if (object.rowCount != null) - message.rowCount = object.rowCount | 0; - if (object.audienceList != null) { - if (typeof object.audienceList !== "object") - throw TypeError(".google.analytics.data.v1alpha.SheetExportAudienceListResponse.audienceList: object expected"); - message.audienceList = $root.google.analytics.data.v1alpha.AudienceList.fromObject(object.audienceList); - } + var message = new $root.google.analytics.data.v1alpha.AudienceDimension(); + if (object.dimensionName != null) + message.dimensionName = String(object.dimensionName); return message; }; /** - * Creates a plain object from a SheetExportAudienceListResponse message. Also converts values to other types if specified. + * Creates a plain object from an AudienceDimension message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.SheetExportAudienceListResponse + * @memberof google.analytics.data.v1alpha.AudienceDimension * @static - * @param {google.analytics.data.v1alpha.SheetExportAudienceListResponse} message SheetExportAudienceListResponse + * @param {google.analytics.data.v1alpha.AudienceDimension} message AudienceDimension * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SheetExportAudienceListResponse.toObject = function toObject(message, options) { + AudienceDimension.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (message.spreadsheetUri != null && message.hasOwnProperty("spreadsheetUri")) { - object.spreadsheetUri = message.spreadsheetUri; - if (options.oneofs) - object._spreadsheetUri = "spreadsheetUri"; - } - if (message.spreadsheetId != null && message.hasOwnProperty("spreadsheetId")) { - object.spreadsheetId = message.spreadsheetId; - if (options.oneofs) - object._spreadsheetId = "spreadsheetId"; - } - if (message.rowCount != null && message.hasOwnProperty("rowCount")) { - object.rowCount = message.rowCount; - if (options.oneofs) - object._rowCount = "rowCount"; - } - if (message.audienceList != null && message.hasOwnProperty("audienceList")) { - object.audienceList = $root.google.analytics.data.v1alpha.AudienceList.toObject(message.audienceList, options); - if (options.oneofs) - object._audienceList = "audienceList"; - } + if (options.defaults) + object.dimensionName = ""; + if (message.dimensionName != null && message.hasOwnProperty("dimensionName")) + object.dimensionName = message.dimensionName; return object; }; /** - * Converts this SheetExportAudienceListResponse to JSON. + * Converts this AudienceDimension to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.SheetExportAudienceListResponse + * @memberof google.analytics.data.v1alpha.AudienceDimension * @instance * @returns {Object.} JSON object */ - SheetExportAudienceListResponse.prototype.toJSON = function toJSON() { + AudienceDimension.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for SheetExportAudienceListResponse + * Gets the default type url for AudienceDimension * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.SheetExportAudienceListResponse + * @memberof google.analytics.data.v1alpha.AudienceDimension * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - SheetExportAudienceListResponse.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + AudienceDimension.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.analytics.data.v1alpha.SheetExportAudienceListResponse"; + return typeUrlPrefix + "/google.analytics.data.v1alpha.AudienceDimension"; }; - return SheetExportAudienceListResponse; + return AudienceDimension; })(); - v1alpha.AudienceRow = (function() { + v1alpha.AudienceDimensionValue = (function() { /** - * Properties of an AudienceRow. + * Properties of an AudienceDimensionValue. * @memberof google.analytics.data.v1alpha - * @interface IAudienceRow - * @property {Array.|null} [dimensionValues] AudienceRow dimensionValues + * @interface IAudienceDimensionValue + * @property {string|null} [value] AudienceDimensionValue value */ /** - * Constructs a new AudienceRow. + * Constructs a new AudienceDimensionValue. * @memberof google.analytics.data.v1alpha - * @classdesc Represents an AudienceRow. - * @implements IAudienceRow + * @classdesc Represents an AudienceDimensionValue. + * @implements IAudienceDimensionValue * @constructor - * @param {google.analytics.data.v1alpha.IAudienceRow=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IAudienceDimensionValue=} [properties] Properties to set */ - function AudienceRow(properties) { - this.dimensionValues = []; + function AudienceDimensionValue(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -18645,80 +18505,91 @@ } /** - * AudienceRow dimensionValues. - * @member {Array.} dimensionValues - * @memberof google.analytics.data.v1alpha.AudienceRow + * AudienceDimensionValue value. + * @member {string|null|undefined} value + * @memberof google.analytics.data.v1alpha.AudienceDimensionValue * @instance */ - AudienceRow.prototype.dimensionValues = $util.emptyArray; + AudienceDimensionValue.prototype.value = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; /** - * Creates a new AudienceRow instance using the specified properties. + * AudienceDimensionValue oneValue. + * @member {"value"|undefined} oneValue + * @memberof google.analytics.data.v1alpha.AudienceDimensionValue + * @instance + */ + Object.defineProperty(AudienceDimensionValue.prototype, "oneValue", { + get: $util.oneOfGetter($oneOfFields = ["value"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new AudienceDimensionValue instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.AudienceRow + * @memberof google.analytics.data.v1alpha.AudienceDimensionValue * @static - * @param {google.analytics.data.v1alpha.IAudienceRow=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.AudienceRow} AudienceRow instance + * @param {google.analytics.data.v1alpha.IAudienceDimensionValue=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.AudienceDimensionValue} AudienceDimensionValue instance */ - AudienceRow.create = function create(properties) { - return new AudienceRow(properties); + AudienceDimensionValue.create = function create(properties) { + return new AudienceDimensionValue(properties); }; /** - * Encodes the specified AudienceRow message. Does not implicitly {@link google.analytics.data.v1alpha.AudienceRow.verify|verify} messages. + * Encodes the specified AudienceDimensionValue message. Does not implicitly {@link google.analytics.data.v1alpha.AudienceDimensionValue.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.AudienceRow + * @memberof google.analytics.data.v1alpha.AudienceDimensionValue * @static - * @param {google.analytics.data.v1alpha.IAudienceRow} message AudienceRow message or plain object to encode + * @param {google.analytics.data.v1alpha.IAudienceDimensionValue} message AudienceDimensionValue message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - AudienceRow.encode = function encode(message, writer) { + AudienceDimensionValue.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.dimensionValues != null && message.dimensionValues.length) - for (var i = 0; i < message.dimensionValues.length; ++i) - $root.google.analytics.data.v1alpha.AudienceDimensionValue.encode(message.dimensionValues[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.value != null && Object.hasOwnProperty.call(message, "value")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.value); return writer; }; /** - * Encodes the specified AudienceRow message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.AudienceRow.verify|verify} messages. + * Encodes the specified AudienceDimensionValue message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.AudienceDimensionValue.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.AudienceRow + * @memberof google.analytics.data.v1alpha.AudienceDimensionValue * @static - * @param {google.analytics.data.v1alpha.IAudienceRow} message AudienceRow message or plain object to encode + * @param {google.analytics.data.v1alpha.IAudienceDimensionValue} message AudienceDimensionValue message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - AudienceRow.encodeDelimited = function encodeDelimited(message, writer) { + AudienceDimensionValue.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes an AudienceRow message from the specified reader or buffer. + * Decodes an AudienceDimensionValue message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.AudienceRow + * @memberof google.analytics.data.v1alpha.AudienceDimensionValue * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.AudienceRow} AudienceRow + * @returns {google.analytics.data.v1alpha.AudienceDimensionValue} AudienceDimensionValue * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - AudienceRow.decode = function decode(reader, length, error) { + AudienceDimensionValue.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.AudienceRow(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.AudienceDimensionValue(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { case 1: { - if (!(message.dimensionValues && message.dimensionValues.length)) - message.dimensionValues = []; - message.dimensionValues.push($root.google.analytics.data.v1alpha.AudienceDimensionValue.decode(reader, reader.uint32())); + message.value = reader.string(); break; } default: @@ -18730,139 +18601,137 @@ }; /** - * Decodes an AudienceRow message from the specified reader or buffer, length delimited. + * Decodes an AudienceDimensionValue message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.AudienceRow + * @memberof google.analytics.data.v1alpha.AudienceDimensionValue * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.AudienceRow} AudienceRow + * @returns {google.analytics.data.v1alpha.AudienceDimensionValue} AudienceDimensionValue * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - AudienceRow.decodeDelimited = function decodeDelimited(reader) { + AudienceDimensionValue.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies an AudienceRow message. + * Verifies an AudienceDimensionValue message. * @function verify - * @memberof google.analytics.data.v1alpha.AudienceRow + * @memberof google.analytics.data.v1alpha.AudienceDimensionValue * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - AudienceRow.verify = function verify(message) { + AudienceDimensionValue.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.dimensionValues != null && message.hasOwnProperty("dimensionValues")) { - if (!Array.isArray(message.dimensionValues)) - return "dimensionValues: array expected"; - for (var i = 0; i < message.dimensionValues.length; ++i) { - var error = $root.google.analytics.data.v1alpha.AudienceDimensionValue.verify(message.dimensionValues[i]); - if (error) - return "dimensionValues." + error; - } + var properties = {}; + if (message.value != null && message.hasOwnProperty("value")) { + properties.oneValue = 1; + if (!$util.isString(message.value)) + return "value: string expected"; } return null; }; /** - * Creates an AudienceRow message from a plain object. Also converts values to their respective internal types. + * Creates an AudienceDimensionValue message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.AudienceRow + * @memberof google.analytics.data.v1alpha.AudienceDimensionValue * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.AudienceRow} AudienceRow + * @returns {google.analytics.data.v1alpha.AudienceDimensionValue} AudienceDimensionValue */ - AudienceRow.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.AudienceRow) + AudienceDimensionValue.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.AudienceDimensionValue) return object; - var message = new $root.google.analytics.data.v1alpha.AudienceRow(); - if (object.dimensionValues) { - if (!Array.isArray(object.dimensionValues)) - throw TypeError(".google.analytics.data.v1alpha.AudienceRow.dimensionValues: array expected"); - message.dimensionValues = []; - for (var i = 0; i < object.dimensionValues.length; ++i) { - if (typeof object.dimensionValues[i] !== "object") - throw TypeError(".google.analytics.data.v1alpha.AudienceRow.dimensionValues: object expected"); - message.dimensionValues[i] = $root.google.analytics.data.v1alpha.AudienceDimensionValue.fromObject(object.dimensionValues[i]); - } - } + var message = new $root.google.analytics.data.v1alpha.AudienceDimensionValue(); + if (object.value != null) + message.value = String(object.value); return message; }; /** - * Creates a plain object from an AudienceRow message. Also converts values to other types if specified. + * Creates a plain object from an AudienceDimensionValue message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.AudienceRow + * @memberof google.analytics.data.v1alpha.AudienceDimensionValue * @static - * @param {google.analytics.data.v1alpha.AudienceRow} message AudienceRow + * @param {google.analytics.data.v1alpha.AudienceDimensionValue} message AudienceDimensionValue * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - AudienceRow.toObject = function toObject(message, options) { + AudienceDimensionValue.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.arrays || options.defaults) - object.dimensionValues = []; - if (message.dimensionValues && message.dimensionValues.length) { - object.dimensionValues = []; - for (var j = 0; j < message.dimensionValues.length; ++j) - object.dimensionValues[j] = $root.google.analytics.data.v1alpha.AudienceDimensionValue.toObject(message.dimensionValues[j], options); + if (message.value != null && message.hasOwnProperty("value")) { + object.value = message.value; + if (options.oneofs) + object.oneValue = "value"; } return object; }; /** - * Converts this AudienceRow to JSON. + * Converts this AudienceDimensionValue to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.AudienceRow + * @memberof google.analytics.data.v1alpha.AudienceDimensionValue * @instance * @returns {Object.} JSON object */ - AudienceRow.prototype.toJSON = function toJSON() { + AudienceDimensionValue.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for AudienceRow + * Gets the default type url for AudienceDimensionValue * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.AudienceRow + * @memberof google.analytics.data.v1alpha.AudienceDimensionValue * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - AudienceRow.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + AudienceDimensionValue.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.analytics.data.v1alpha.AudienceRow"; + return typeUrlPrefix + "/google.analytics.data.v1alpha.AudienceDimensionValue"; }; - return AudienceRow; + return AudienceDimensionValue; })(); - v1alpha.AudienceDimension = (function() { + v1alpha.RunFunnelReportRequest = (function() { /** - * Properties of an AudienceDimension. + * Properties of a RunFunnelReportRequest. * @memberof google.analytics.data.v1alpha - * @interface IAudienceDimension - * @property {string|null} [dimensionName] AudienceDimension dimensionName + * @interface IRunFunnelReportRequest + * @property {string|null} [property] RunFunnelReportRequest property + * @property {Array.|null} [dateRanges] RunFunnelReportRequest dateRanges + * @property {google.analytics.data.v1alpha.IFunnel|null} [funnel] RunFunnelReportRequest funnel + * @property {google.analytics.data.v1alpha.IFunnelBreakdown|null} [funnelBreakdown] RunFunnelReportRequest funnelBreakdown + * @property {google.analytics.data.v1alpha.IFunnelNextAction|null} [funnelNextAction] RunFunnelReportRequest funnelNextAction + * @property {google.analytics.data.v1alpha.RunFunnelReportRequest.FunnelVisualizationType|null} [funnelVisualizationType] RunFunnelReportRequest funnelVisualizationType + * @property {Array.|null} [segments] RunFunnelReportRequest segments + * @property {number|Long|null} [limit] RunFunnelReportRequest limit + * @property {google.analytics.data.v1alpha.IFilterExpression|null} [dimensionFilter] RunFunnelReportRequest dimensionFilter + * @property {boolean|null} [returnPropertyQuota] RunFunnelReportRequest returnPropertyQuota */ /** - * Constructs a new AudienceDimension. + * Constructs a new RunFunnelReportRequest. * @memberof google.analytics.data.v1alpha - * @classdesc Represents an AudienceDimension. - * @implements IAudienceDimension + * @classdesc Represents a RunFunnelReportRequest. + * @implements IRunFunnelReportRequest * @constructor - * @param {google.analytics.data.v1alpha.IAudienceDimension=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IRunFunnelReportRequest=} [properties] Properties to set */ - function AudienceDimension(properties) { + function RunFunnelReportRequest(properties) { + this.dateRanges = []; + this.segments = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -18870,296 +18739,209 @@ } /** - * AudienceDimension dimensionName. - * @member {string} dimensionName - * @memberof google.analytics.data.v1alpha.AudienceDimension + * RunFunnelReportRequest property. + * @member {string} property + * @memberof google.analytics.data.v1alpha.RunFunnelReportRequest * @instance */ - AudienceDimension.prototype.dimensionName = ""; + RunFunnelReportRequest.prototype.property = ""; /** - * Creates a new AudienceDimension instance using the specified properties. + * RunFunnelReportRequest dateRanges. + * @member {Array.} dateRanges + * @memberof google.analytics.data.v1alpha.RunFunnelReportRequest + * @instance + */ + RunFunnelReportRequest.prototype.dateRanges = $util.emptyArray; + + /** + * RunFunnelReportRequest funnel. + * @member {google.analytics.data.v1alpha.IFunnel|null|undefined} funnel + * @memberof google.analytics.data.v1alpha.RunFunnelReportRequest + * @instance + */ + RunFunnelReportRequest.prototype.funnel = null; + + /** + * RunFunnelReportRequest funnelBreakdown. + * @member {google.analytics.data.v1alpha.IFunnelBreakdown|null|undefined} funnelBreakdown + * @memberof google.analytics.data.v1alpha.RunFunnelReportRequest + * @instance + */ + RunFunnelReportRequest.prototype.funnelBreakdown = null; + + /** + * RunFunnelReportRequest funnelNextAction. + * @member {google.analytics.data.v1alpha.IFunnelNextAction|null|undefined} funnelNextAction + * @memberof google.analytics.data.v1alpha.RunFunnelReportRequest + * @instance + */ + RunFunnelReportRequest.prototype.funnelNextAction = null; + + /** + * RunFunnelReportRequest funnelVisualizationType. + * @member {google.analytics.data.v1alpha.RunFunnelReportRequest.FunnelVisualizationType} funnelVisualizationType + * @memberof google.analytics.data.v1alpha.RunFunnelReportRequest + * @instance + */ + RunFunnelReportRequest.prototype.funnelVisualizationType = 0; + + /** + * RunFunnelReportRequest segments. + * @member {Array.} segments + * @memberof google.analytics.data.v1alpha.RunFunnelReportRequest + * @instance + */ + RunFunnelReportRequest.prototype.segments = $util.emptyArray; + + /** + * RunFunnelReportRequest limit. + * @member {number|Long} limit + * @memberof google.analytics.data.v1alpha.RunFunnelReportRequest + * @instance + */ + RunFunnelReportRequest.prototype.limit = $util.Long ? $util.Long.fromBits(0,0,false) : 0; + + /** + * RunFunnelReportRequest dimensionFilter. + * @member {google.analytics.data.v1alpha.IFilterExpression|null|undefined} dimensionFilter + * @memberof google.analytics.data.v1alpha.RunFunnelReportRequest + * @instance + */ + RunFunnelReportRequest.prototype.dimensionFilter = null; + + /** + * RunFunnelReportRequest returnPropertyQuota. + * @member {boolean} returnPropertyQuota + * @memberof google.analytics.data.v1alpha.RunFunnelReportRequest + * @instance + */ + RunFunnelReportRequest.prototype.returnPropertyQuota = false; + + /** + * Creates a new RunFunnelReportRequest instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.AudienceDimension + * @memberof google.analytics.data.v1alpha.RunFunnelReportRequest * @static - * @param {google.analytics.data.v1alpha.IAudienceDimension=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.AudienceDimension} AudienceDimension instance + * @param {google.analytics.data.v1alpha.IRunFunnelReportRequest=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.RunFunnelReportRequest} RunFunnelReportRequest instance */ - AudienceDimension.create = function create(properties) { - return new AudienceDimension(properties); + RunFunnelReportRequest.create = function create(properties) { + return new RunFunnelReportRequest(properties); }; /** - * Encodes the specified AudienceDimension message. Does not implicitly {@link google.analytics.data.v1alpha.AudienceDimension.verify|verify} messages. + * Encodes the specified RunFunnelReportRequest message. Does not implicitly {@link google.analytics.data.v1alpha.RunFunnelReportRequest.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.AudienceDimension + * @memberof google.analytics.data.v1alpha.RunFunnelReportRequest * @static - * @param {google.analytics.data.v1alpha.IAudienceDimension} message AudienceDimension message or plain object to encode + * @param {google.analytics.data.v1alpha.IRunFunnelReportRequest} message RunFunnelReportRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - AudienceDimension.encode = function encode(message, writer) { + RunFunnelReportRequest.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.dimensionName != null && Object.hasOwnProperty.call(message, "dimensionName")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.dimensionName); + if (message.property != null && Object.hasOwnProperty.call(message, "property")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.property); + if (message.dateRanges != null && message.dateRanges.length) + for (var i = 0; i < message.dateRanges.length; ++i) + $root.google.analytics.data.v1alpha.DateRange.encode(message.dateRanges[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.funnel != null && Object.hasOwnProperty.call(message, "funnel")) + $root.google.analytics.data.v1alpha.Funnel.encode(message.funnel, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.funnelBreakdown != null && Object.hasOwnProperty.call(message, "funnelBreakdown")) + $root.google.analytics.data.v1alpha.FunnelBreakdown.encode(message.funnelBreakdown, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.funnelNextAction != null && Object.hasOwnProperty.call(message, "funnelNextAction")) + $root.google.analytics.data.v1alpha.FunnelNextAction.encode(message.funnelNextAction, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + if (message.funnelVisualizationType != null && Object.hasOwnProperty.call(message, "funnelVisualizationType")) + writer.uint32(/* id 6, wireType 0 =*/48).int32(message.funnelVisualizationType); + if (message.segments != null && message.segments.length) + for (var i = 0; i < message.segments.length; ++i) + $root.google.analytics.data.v1alpha.Segment.encode(message.segments[i], writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); + if (message.limit != null && Object.hasOwnProperty.call(message, "limit")) + writer.uint32(/* id 9, wireType 0 =*/72).int64(message.limit); + if (message.dimensionFilter != null && Object.hasOwnProperty.call(message, "dimensionFilter")) + $root.google.analytics.data.v1alpha.FilterExpression.encode(message.dimensionFilter, writer.uint32(/* id 10, wireType 2 =*/82).fork()).ldelim(); + if (message.returnPropertyQuota != null && Object.hasOwnProperty.call(message, "returnPropertyQuota")) + writer.uint32(/* id 12, wireType 0 =*/96).bool(message.returnPropertyQuota); return writer; }; /** - * Encodes the specified AudienceDimension message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.AudienceDimension.verify|verify} messages. + * Encodes the specified RunFunnelReportRequest message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.RunFunnelReportRequest.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.AudienceDimension + * @memberof google.analytics.data.v1alpha.RunFunnelReportRequest * @static - * @param {google.analytics.data.v1alpha.IAudienceDimension} message AudienceDimension message or plain object to encode + * @param {google.analytics.data.v1alpha.IRunFunnelReportRequest} message RunFunnelReportRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - AudienceDimension.encodeDelimited = function encodeDelimited(message, writer) { + RunFunnelReportRequest.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes an AudienceDimension message from the specified reader or buffer. + * Decodes a RunFunnelReportRequest message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.AudienceDimension + * @memberof google.analytics.data.v1alpha.RunFunnelReportRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.AudienceDimension} AudienceDimension + * @returns {google.analytics.data.v1alpha.RunFunnelReportRequest} RunFunnelReportRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - AudienceDimension.decode = function decode(reader, length, error) { + RunFunnelReportRequest.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.AudienceDimension(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.RunFunnelReportRequest(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { case 1: { - message.dimensionName = reader.string(); + message.property = reader.string(); break; } - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; - - /** - * Decodes an AudienceDimension message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.AudienceDimension - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.AudienceDimension} AudienceDimension - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - AudienceDimension.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; - - /** - * Verifies an AudienceDimension message. - * @function verify - * @memberof google.analytics.data.v1alpha.AudienceDimension - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - AudienceDimension.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.dimensionName != null && message.hasOwnProperty("dimensionName")) - if (!$util.isString(message.dimensionName)) - return "dimensionName: string expected"; - return null; - }; - - /** - * Creates an AudienceDimension message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.analytics.data.v1alpha.AudienceDimension - * @static - * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.AudienceDimension} AudienceDimension - */ - AudienceDimension.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.AudienceDimension) - return object; - var message = new $root.google.analytics.data.v1alpha.AudienceDimension(); - if (object.dimensionName != null) - message.dimensionName = String(object.dimensionName); - return message; - }; - - /** - * Creates a plain object from an AudienceDimension message. Also converts values to other types if specified. - * @function toObject - * @memberof google.analytics.data.v1alpha.AudienceDimension - * @static - * @param {google.analytics.data.v1alpha.AudienceDimension} message AudienceDimension - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - AudienceDimension.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) - object.dimensionName = ""; - if (message.dimensionName != null && message.hasOwnProperty("dimensionName")) - object.dimensionName = message.dimensionName; - return object; - }; - - /** - * Converts this AudienceDimension to JSON. - * @function toJSON - * @memberof google.analytics.data.v1alpha.AudienceDimension - * @instance - * @returns {Object.} JSON object - */ - AudienceDimension.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; - - /** - * Gets the default type url for AudienceDimension - * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.AudienceDimension - * @static - * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns {string} The default type url - */ - AudienceDimension.getTypeUrl = function getTypeUrl(typeUrlPrefix) { - if (typeUrlPrefix === undefined) { - typeUrlPrefix = "type.googleapis.com"; - } - return typeUrlPrefix + "/google.analytics.data.v1alpha.AudienceDimension"; - }; - - return AudienceDimension; - })(); - - v1alpha.AudienceDimensionValue = (function() { - - /** - * Properties of an AudienceDimensionValue. - * @memberof google.analytics.data.v1alpha - * @interface IAudienceDimensionValue - * @property {string|null} [value] AudienceDimensionValue value - */ - - /** - * Constructs a new AudienceDimensionValue. - * @memberof google.analytics.data.v1alpha - * @classdesc Represents an AudienceDimensionValue. - * @implements IAudienceDimensionValue - * @constructor - * @param {google.analytics.data.v1alpha.IAudienceDimensionValue=} [properties] Properties to set - */ - function AudienceDimensionValue(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]]; - } - - /** - * AudienceDimensionValue value. - * @member {string|null|undefined} value - * @memberof google.analytics.data.v1alpha.AudienceDimensionValue - * @instance - */ - AudienceDimensionValue.prototype.value = null; - - // OneOf field names bound to virtual getters and setters - var $oneOfFields; - - /** - * AudienceDimensionValue oneValue. - * @member {"value"|undefined} oneValue - * @memberof google.analytics.data.v1alpha.AudienceDimensionValue - * @instance - */ - Object.defineProperty(AudienceDimensionValue.prototype, "oneValue", { - get: $util.oneOfGetter($oneOfFields = ["value"]), - set: $util.oneOfSetter($oneOfFields) - }); - - /** - * Creates a new AudienceDimensionValue instance using the specified properties. - * @function create - * @memberof google.analytics.data.v1alpha.AudienceDimensionValue - * @static - * @param {google.analytics.data.v1alpha.IAudienceDimensionValue=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.AudienceDimensionValue} AudienceDimensionValue instance - */ - AudienceDimensionValue.create = function create(properties) { - return new AudienceDimensionValue(properties); - }; - - /** - * Encodes the specified AudienceDimensionValue message. Does not implicitly {@link google.analytics.data.v1alpha.AudienceDimensionValue.verify|verify} messages. - * @function encode - * @memberof google.analytics.data.v1alpha.AudienceDimensionValue - * @static - * @param {google.analytics.data.v1alpha.IAudienceDimensionValue} message AudienceDimensionValue message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - AudienceDimensionValue.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.value != null && Object.hasOwnProperty.call(message, "value")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.value); - return writer; - }; - - /** - * Encodes the specified AudienceDimensionValue message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.AudienceDimensionValue.verify|verify} messages. - * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.AudienceDimensionValue - * @static - * @param {google.analytics.data.v1alpha.IAudienceDimensionValue} message AudienceDimensionValue message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - AudienceDimensionValue.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; - - /** - * Decodes an AudienceDimensionValue message from the specified reader or buffer. - * @function decode - * @memberof google.analytics.data.v1alpha.AudienceDimensionValue - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.AudienceDimensionValue} AudienceDimensionValue - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - AudienceDimensionValue.decode = function decode(reader, length, error) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.AudienceDimensionValue(); - while (reader.pos < end) { - var tag = reader.uint32(); - if (tag === error) - break; - switch (tag >>> 3) { - case 1: { - message.value = reader.string(); + case 2: { + if (!(message.dateRanges && message.dateRanges.length)) + message.dateRanges = []; + message.dateRanges.push($root.google.analytics.data.v1alpha.DateRange.decode(reader, reader.uint32())); + break; + } + case 3: { + message.funnel = $root.google.analytics.data.v1alpha.Funnel.decode(reader, reader.uint32()); + break; + } + case 4: { + message.funnelBreakdown = $root.google.analytics.data.v1alpha.FunnelBreakdown.decode(reader, reader.uint32()); + break; + } + case 5: { + message.funnelNextAction = $root.google.analytics.data.v1alpha.FunnelNextAction.decode(reader, reader.uint32()); + break; + } + case 6: { + message.funnelVisualizationType = reader.int32(); + break; + } + case 7: { + if (!(message.segments && message.segments.length)) + message.segments = []; + message.segments.push($root.google.analytics.data.v1alpha.Segment.decode(reader, reader.uint32())); + break; + } + case 9: { + message.limit = reader.int64(); + break; + } + case 10: { + message.dimensionFilter = $root.google.analytics.data.v1alpha.FilterExpression.decode(reader, reader.uint32()); + break; + } + case 12: { + message.returnPropertyQuota = reader.bool(); break; } default: @@ -19171,137 +18953,308 @@ }; /** - * Decodes an AudienceDimensionValue message from the specified reader or buffer, length delimited. + * Decodes a RunFunnelReportRequest message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.AudienceDimensionValue + * @memberof google.analytics.data.v1alpha.RunFunnelReportRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.AudienceDimensionValue} AudienceDimensionValue + * @returns {google.analytics.data.v1alpha.RunFunnelReportRequest} RunFunnelReportRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - AudienceDimensionValue.decodeDelimited = function decodeDelimited(reader) { + RunFunnelReportRequest.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies an AudienceDimensionValue message. + * Verifies a RunFunnelReportRequest message. * @function verify - * @memberof google.analytics.data.v1alpha.AudienceDimensionValue + * @memberof google.analytics.data.v1alpha.RunFunnelReportRequest * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - AudienceDimensionValue.verify = function verify(message) { + RunFunnelReportRequest.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - var properties = {}; - if (message.value != null && message.hasOwnProperty("value")) { - properties.oneValue = 1; - if (!$util.isString(message.value)) - return "value: string expected"; + if (message.property != null && message.hasOwnProperty("property")) + if (!$util.isString(message.property)) + return "property: string expected"; + if (message.dateRanges != null && message.hasOwnProperty("dateRanges")) { + if (!Array.isArray(message.dateRanges)) + return "dateRanges: array expected"; + for (var i = 0; i < message.dateRanges.length; ++i) { + var error = $root.google.analytics.data.v1alpha.DateRange.verify(message.dateRanges[i]); + if (error) + return "dateRanges." + error; + } } - return null; - }; + if (message.funnel != null && message.hasOwnProperty("funnel")) { + var error = $root.google.analytics.data.v1alpha.Funnel.verify(message.funnel); + if (error) + return "funnel." + error; + } + if (message.funnelBreakdown != null && message.hasOwnProperty("funnelBreakdown")) { + var error = $root.google.analytics.data.v1alpha.FunnelBreakdown.verify(message.funnelBreakdown); + if (error) + return "funnelBreakdown." + error; + } + if (message.funnelNextAction != null && message.hasOwnProperty("funnelNextAction")) { + var error = $root.google.analytics.data.v1alpha.FunnelNextAction.verify(message.funnelNextAction); + if (error) + return "funnelNextAction." + error; + } + if (message.funnelVisualizationType != null && message.hasOwnProperty("funnelVisualizationType")) + switch (message.funnelVisualizationType) { + default: + return "funnelVisualizationType: enum value expected"; + case 0: + case 1: + case 2: + break; + } + if (message.segments != null && message.hasOwnProperty("segments")) { + if (!Array.isArray(message.segments)) + return "segments: array expected"; + for (var i = 0; i < message.segments.length; ++i) { + var error = $root.google.analytics.data.v1alpha.Segment.verify(message.segments[i]); + if (error) + return "segments." + error; + } + } + if (message.limit != null && message.hasOwnProperty("limit")) + if (!$util.isInteger(message.limit) && !(message.limit && $util.isInteger(message.limit.low) && $util.isInteger(message.limit.high))) + return "limit: integer|Long expected"; + if (message.dimensionFilter != null && message.hasOwnProperty("dimensionFilter")) { + var error = $root.google.analytics.data.v1alpha.FilterExpression.verify(message.dimensionFilter); + if (error) + return "dimensionFilter." + error; + } + if (message.returnPropertyQuota != null && message.hasOwnProperty("returnPropertyQuota")) + if (typeof message.returnPropertyQuota !== "boolean") + return "returnPropertyQuota: boolean expected"; + return null; + }; /** - * Creates an AudienceDimensionValue message from a plain object. Also converts values to their respective internal types. + * Creates a RunFunnelReportRequest message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.AudienceDimensionValue + * @memberof google.analytics.data.v1alpha.RunFunnelReportRequest * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.AudienceDimensionValue} AudienceDimensionValue + * @returns {google.analytics.data.v1alpha.RunFunnelReportRequest} RunFunnelReportRequest */ - AudienceDimensionValue.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.AudienceDimensionValue) + RunFunnelReportRequest.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.RunFunnelReportRequest) return object; - var message = new $root.google.analytics.data.v1alpha.AudienceDimensionValue(); - if (object.value != null) - message.value = String(object.value); + var message = new $root.google.analytics.data.v1alpha.RunFunnelReportRequest(); + if (object.property != null) + message.property = String(object.property); + if (object.dateRanges) { + if (!Array.isArray(object.dateRanges)) + throw TypeError(".google.analytics.data.v1alpha.RunFunnelReportRequest.dateRanges: array expected"); + message.dateRanges = []; + for (var i = 0; i < object.dateRanges.length; ++i) { + if (typeof object.dateRanges[i] !== "object") + throw TypeError(".google.analytics.data.v1alpha.RunFunnelReportRequest.dateRanges: object expected"); + message.dateRanges[i] = $root.google.analytics.data.v1alpha.DateRange.fromObject(object.dateRanges[i]); + } + } + if (object.funnel != null) { + if (typeof object.funnel !== "object") + throw TypeError(".google.analytics.data.v1alpha.RunFunnelReportRequest.funnel: object expected"); + message.funnel = $root.google.analytics.data.v1alpha.Funnel.fromObject(object.funnel); + } + if (object.funnelBreakdown != null) { + if (typeof object.funnelBreakdown !== "object") + throw TypeError(".google.analytics.data.v1alpha.RunFunnelReportRequest.funnelBreakdown: object expected"); + message.funnelBreakdown = $root.google.analytics.data.v1alpha.FunnelBreakdown.fromObject(object.funnelBreakdown); + } + if (object.funnelNextAction != null) { + if (typeof object.funnelNextAction !== "object") + throw TypeError(".google.analytics.data.v1alpha.RunFunnelReportRequest.funnelNextAction: object expected"); + message.funnelNextAction = $root.google.analytics.data.v1alpha.FunnelNextAction.fromObject(object.funnelNextAction); + } + switch (object.funnelVisualizationType) { + default: + if (typeof object.funnelVisualizationType === "number") { + message.funnelVisualizationType = object.funnelVisualizationType; + break; + } + break; + case "FUNNEL_VISUALIZATION_TYPE_UNSPECIFIED": + case 0: + message.funnelVisualizationType = 0; + break; + case "STANDARD_FUNNEL": + case 1: + message.funnelVisualizationType = 1; + break; + case "TRENDED_FUNNEL": + case 2: + message.funnelVisualizationType = 2; + break; + } + if (object.segments) { + if (!Array.isArray(object.segments)) + throw TypeError(".google.analytics.data.v1alpha.RunFunnelReportRequest.segments: array expected"); + message.segments = []; + for (var i = 0; i < object.segments.length; ++i) { + if (typeof object.segments[i] !== "object") + throw TypeError(".google.analytics.data.v1alpha.RunFunnelReportRequest.segments: object expected"); + message.segments[i] = $root.google.analytics.data.v1alpha.Segment.fromObject(object.segments[i]); + } + } + if (object.limit != null) + if ($util.Long) + (message.limit = $util.Long.fromValue(object.limit)).unsigned = false; + else if (typeof object.limit === "string") + message.limit = parseInt(object.limit, 10); + else if (typeof object.limit === "number") + message.limit = object.limit; + else if (typeof object.limit === "object") + message.limit = new $util.LongBits(object.limit.low >>> 0, object.limit.high >>> 0).toNumber(); + if (object.dimensionFilter != null) { + if (typeof object.dimensionFilter !== "object") + throw TypeError(".google.analytics.data.v1alpha.RunFunnelReportRequest.dimensionFilter: object expected"); + message.dimensionFilter = $root.google.analytics.data.v1alpha.FilterExpression.fromObject(object.dimensionFilter); + } + if (object.returnPropertyQuota != null) + message.returnPropertyQuota = Boolean(object.returnPropertyQuota); return message; }; /** - * Creates a plain object from an AudienceDimensionValue message. Also converts values to other types if specified. + * Creates a plain object from a RunFunnelReportRequest message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.AudienceDimensionValue + * @memberof google.analytics.data.v1alpha.RunFunnelReportRequest * @static - * @param {google.analytics.data.v1alpha.AudienceDimensionValue} message AudienceDimensionValue + * @param {google.analytics.data.v1alpha.RunFunnelReportRequest} message RunFunnelReportRequest * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - AudienceDimensionValue.toObject = function toObject(message, options) { + RunFunnelReportRequest.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (message.value != null && message.hasOwnProperty("value")) { - object.value = message.value; - if (options.oneofs) - object.oneValue = "value"; + if (options.arrays || options.defaults) { + object.dateRanges = []; + object.segments = []; + } + if (options.defaults) { + object.property = ""; + object.funnel = null; + object.funnelBreakdown = null; + object.funnelNextAction = null; + object.funnelVisualizationType = options.enums === String ? "FUNNEL_VISUALIZATION_TYPE_UNSPECIFIED" : 0; + if ($util.Long) { + var long = new $util.Long(0, 0, false); + object.limit = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.limit = options.longs === String ? "0" : 0; + object.dimensionFilter = null; + object.returnPropertyQuota = false; + } + if (message.property != null && message.hasOwnProperty("property")) + object.property = message.property; + if (message.dateRanges && message.dateRanges.length) { + object.dateRanges = []; + for (var j = 0; j < message.dateRanges.length; ++j) + object.dateRanges[j] = $root.google.analytics.data.v1alpha.DateRange.toObject(message.dateRanges[j], options); + } + if (message.funnel != null && message.hasOwnProperty("funnel")) + object.funnel = $root.google.analytics.data.v1alpha.Funnel.toObject(message.funnel, options); + if (message.funnelBreakdown != null && message.hasOwnProperty("funnelBreakdown")) + object.funnelBreakdown = $root.google.analytics.data.v1alpha.FunnelBreakdown.toObject(message.funnelBreakdown, options); + if (message.funnelNextAction != null && message.hasOwnProperty("funnelNextAction")) + object.funnelNextAction = $root.google.analytics.data.v1alpha.FunnelNextAction.toObject(message.funnelNextAction, options); + if (message.funnelVisualizationType != null && message.hasOwnProperty("funnelVisualizationType")) + object.funnelVisualizationType = options.enums === String ? $root.google.analytics.data.v1alpha.RunFunnelReportRequest.FunnelVisualizationType[message.funnelVisualizationType] === undefined ? message.funnelVisualizationType : $root.google.analytics.data.v1alpha.RunFunnelReportRequest.FunnelVisualizationType[message.funnelVisualizationType] : message.funnelVisualizationType; + if (message.segments && message.segments.length) { + object.segments = []; + for (var j = 0; j < message.segments.length; ++j) + object.segments[j] = $root.google.analytics.data.v1alpha.Segment.toObject(message.segments[j], options); } + if (message.limit != null && message.hasOwnProperty("limit")) + if (typeof message.limit === "number") + object.limit = options.longs === String ? String(message.limit) : message.limit; + else + object.limit = options.longs === String ? $util.Long.prototype.toString.call(message.limit) : options.longs === Number ? new $util.LongBits(message.limit.low >>> 0, message.limit.high >>> 0).toNumber() : message.limit; + if (message.dimensionFilter != null && message.hasOwnProperty("dimensionFilter")) + object.dimensionFilter = $root.google.analytics.data.v1alpha.FilterExpression.toObject(message.dimensionFilter, options); + if (message.returnPropertyQuota != null && message.hasOwnProperty("returnPropertyQuota")) + object.returnPropertyQuota = message.returnPropertyQuota; return object; }; /** - * Converts this AudienceDimensionValue to JSON. + * Converts this RunFunnelReportRequest to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.AudienceDimensionValue + * @memberof google.analytics.data.v1alpha.RunFunnelReportRequest * @instance * @returns {Object.} JSON object */ - AudienceDimensionValue.prototype.toJSON = function toJSON() { + RunFunnelReportRequest.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for AudienceDimensionValue + * Gets the default type url for RunFunnelReportRequest * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.AudienceDimensionValue + * @memberof google.analytics.data.v1alpha.RunFunnelReportRequest * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - AudienceDimensionValue.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + RunFunnelReportRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.analytics.data.v1alpha.AudienceDimensionValue"; + return typeUrlPrefix + "/google.analytics.data.v1alpha.RunFunnelReportRequest"; }; - return AudienceDimensionValue; + /** + * FunnelVisualizationType enum. + * @name google.analytics.data.v1alpha.RunFunnelReportRequest.FunnelVisualizationType + * @enum {number} + * @property {number} FUNNEL_VISUALIZATION_TYPE_UNSPECIFIED=0 FUNNEL_VISUALIZATION_TYPE_UNSPECIFIED value + * @property {number} STANDARD_FUNNEL=1 STANDARD_FUNNEL value + * @property {number} TRENDED_FUNNEL=2 TRENDED_FUNNEL value + */ + RunFunnelReportRequest.FunnelVisualizationType = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "FUNNEL_VISUALIZATION_TYPE_UNSPECIFIED"] = 0; + values[valuesById[1] = "STANDARD_FUNNEL"] = 1; + values[valuesById[2] = "TRENDED_FUNNEL"] = 2; + return values; + })(); + + return RunFunnelReportRequest; })(); - v1alpha.RunFunnelReportRequest = (function() { + v1alpha.RunFunnelReportResponse = (function() { /** - * Properties of a RunFunnelReportRequest. + * Properties of a RunFunnelReportResponse. * @memberof google.analytics.data.v1alpha - * @interface IRunFunnelReportRequest - * @property {string|null} [property] RunFunnelReportRequest property - * @property {Array.|null} [dateRanges] RunFunnelReportRequest dateRanges - * @property {google.analytics.data.v1alpha.IFunnel|null} [funnel] RunFunnelReportRequest funnel - * @property {google.analytics.data.v1alpha.IFunnelBreakdown|null} [funnelBreakdown] RunFunnelReportRequest funnelBreakdown - * @property {google.analytics.data.v1alpha.IFunnelNextAction|null} [funnelNextAction] RunFunnelReportRequest funnelNextAction - * @property {google.analytics.data.v1alpha.RunFunnelReportRequest.FunnelVisualizationType|null} [funnelVisualizationType] RunFunnelReportRequest funnelVisualizationType - * @property {Array.|null} [segments] RunFunnelReportRequest segments - * @property {number|Long|null} [limit] RunFunnelReportRequest limit - * @property {google.analytics.data.v1alpha.IFilterExpression|null} [dimensionFilter] RunFunnelReportRequest dimensionFilter - * @property {boolean|null} [returnPropertyQuota] RunFunnelReportRequest returnPropertyQuota + * @interface IRunFunnelReportResponse + * @property {google.analytics.data.v1alpha.IFunnelSubReport|null} [funnelTable] RunFunnelReportResponse funnelTable + * @property {google.analytics.data.v1alpha.IFunnelSubReport|null} [funnelVisualization] RunFunnelReportResponse funnelVisualization + * @property {google.analytics.data.v1alpha.IPropertyQuota|null} [propertyQuota] RunFunnelReportResponse propertyQuota + * @property {string|null} [kind] RunFunnelReportResponse kind */ /** - * Constructs a new RunFunnelReportRequest. + * Constructs a new RunFunnelReportResponse. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a RunFunnelReportRequest. - * @implements IRunFunnelReportRequest + * @classdesc Represents a RunFunnelReportResponse. + * @implements IRunFunnelReportResponse * @constructor - * @param {google.analytics.data.v1alpha.IRunFunnelReportRequest=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IRunFunnelReportResponse=} [properties] Properties to set */ - function RunFunnelReportRequest(properties) { - this.dateRanges = []; - this.segments = []; + function RunFunnelReportResponse(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -19309,209 +19262,119 @@ } /** - * RunFunnelReportRequest property. - * @member {string} property - * @memberof google.analytics.data.v1alpha.RunFunnelReportRequest - * @instance - */ - RunFunnelReportRequest.prototype.property = ""; - - /** - * RunFunnelReportRequest dateRanges. - * @member {Array.} dateRanges - * @memberof google.analytics.data.v1alpha.RunFunnelReportRequest - * @instance - */ - RunFunnelReportRequest.prototype.dateRanges = $util.emptyArray; - - /** - * RunFunnelReportRequest funnel. - * @member {google.analytics.data.v1alpha.IFunnel|null|undefined} funnel - * @memberof google.analytics.data.v1alpha.RunFunnelReportRequest - * @instance - */ - RunFunnelReportRequest.prototype.funnel = null; - - /** - * RunFunnelReportRequest funnelBreakdown. - * @member {google.analytics.data.v1alpha.IFunnelBreakdown|null|undefined} funnelBreakdown - * @memberof google.analytics.data.v1alpha.RunFunnelReportRequest - * @instance - */ - RunFunnelReportRequest.prototype.funnelBreakdown = null; - - /** - * RunFunnelReportRequest funnelNextAction. - * @member {google.analytics.data.v1alpha.IFunnelNextAction|null|undefined} funnelNextAction - * @memberof google.analytics.data.v1alpha.RunFunnelReportRequest - * @instance - */ - RunFunnelReportRequest.prototype.funnelNextAction = null; - - /** - * RunFunnelReportRequest funnelVisualizationType. - * @member {google.analytics.data.v1alpha.RunFunnelReportRequest.FunnelVisualizationType} funnelVisualizationType - * @memberof google.analytics.data.v1alpha.RunFunnelReportRequest - * @instance - */ - RunFunnelReportRequest.prototype.funnelVisualizationType = 0; - - /** - * RunFunnelReportRequest segments. - * @member {Array.} segments - * @memberof google.analytics.data.v1alpha.RunFunnelReportRequest + * RunFunnelReportResponse funnelTable. + * @member {google.analytics.data.v1alpha.IFunnelSubReport|null|undefined} funnelTable + * @memberof google.analytics.data.v1alpha.RunFunnelReportResponse * @instance */ - RunFunnelReportRequest.prototype.segments = $util.emptyArray; + RunFunnelReportResponse.prototype.funnelTable = null; /** - * RunFunnelReportRequest limit. - * @member {number|Long} limit - * @memberof google.analytics.data.v1alpha.RunFunnelReportRequest + * RunFunnelReportResponse funnelVisualization. + * @member {google.analytics.data.v1alpha.IFunnelSubReport|null|undefined} funnelVisualization + * @memberof google.analytics.data.v1alpha.RunFunnelReportResponse * @instance */ - RunFunnelReportRequest.prototype.limit = $util.Long ? $util.Long.fromBits(0,0,false) : 0; + RunFunnelReportResponse.prototype.funnelVisualization = null; /** - * RunFunnelReportRequest dimensionFilter. - * @member {google.analytics.data.v1alpha.IFilterExpression|null|undefined} dimensionFilter - * @memberof google.analytics.data.v1alpha.RunFunnelReportRequest + * RunFunnelReportResponse propertyQuota. + * @member {google.analytics.data.v1alpha.IPropertyQuota|null|undefined} propertyQuota + * @memberof google.analytics.data.v1alpha.RunFunnelReportResponse * @instance */ - RunFunnelReportRequest.prototype.dimensionFilter = null; + RunFunnelReportResponse.prototype.propertyQuota = null; /** - * RunFunnelReportRequest returnPropertyQuota. - * @member {boolean} returnPropertyQuota - * @memberof google.analytics.data.v1alpha.RunFunnelReportRequest + * RunFunnelReportResponse kind. + * @member {string} kind + * @memberof google.analytics.data.v1alpha.RunFunnelReportResponse * @instance */ - RunFunnelReportRequest.prototype.returnPropertyQuota = false; + RunFunnelReportResponse.prototype.kind = ""; /** - * Creates a new RunFunnelReportRequest instance using the specified properties. + * Creates a new RunFunnelReportResponse instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.RunFunnelReportRequest + * @memberof google.analytics.data.v1alpha.RunFunnelReportResponse * @static - * @param {google.analytics.data.v1alpha.IRunFunnelReportRequest=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.RunFunnelReportRequest} RunFunnelReportRequest instance + * @param {google.analytics.data.v1alpha.IRunFunnelReportResponse=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.RunFunnelReportResponse} RunFunnelReportResponse instance */ - RunFunnelReportRequest.create = function create(properties) { - return new RunFunnelReportRequest(properties); + RunFunnelReportResponse.create = function create(properties) { + return new RunFunnelReportResponse(properties); }; /** - * Encodes the specified RunFunnelReportRequest message. Does not implicitly {@link google.analytics.data.v1alpha.RunFunnelReportRequest.verify|verify} messages. + * Encodes the specified RunFunnelReportResponse message. Does not implicitly {@link google.analytics.data.v1alpha.RunFunnelReportResponse.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.RunFunnelReportRequest + * @memberof google.analytics.data.v1alpha.RunFunnelReportResponse * @static - * @param {google.analytics.data.v1alpha.IRunFunnelReportRequest} message RunFunnelReportRequest message or plain object to encode + * @param {google.analytics.data.v1alpha.IRunFunnelReportResponse} message RunFunnelReportResponse message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - RunFunnelReportRequest.encode = function encode(message, writer) { + RunFunnelReportResponse.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.property != null && Object.hasOwnProperty.call(message, "property")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.property); - if (message.dateRanges != null && message.dateRanges.length) - for (var i = 0; i < message.dateRanges.length; ++i) - $root.google.analytics.data.v1alpha.DateRange.encode(message.dateRanges[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.funnel != null && Object.hasOwnProperty.call(message, "funnel")) - $root.google.analytics.data.v1alpha.Funnel.encode(message.funnel, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); - if (message.funnelBreakdown != null && Object.hasOwnProperty.call(message, "funnelBreakdown")) - $root.google.analytics.data.v1alpha.FunnelBreakdown.encode(message.funnelBreakdown, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); - if (message.funnelNextAction != null && Object.hasOwnProperty.call(message, "funnelNextAction")) - $root.google.analytics.data.v1alpha.FunnelNextAction.encode(message.funnelNextAction, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); - if (message.funnelVisualizationType != null && Object.hasOwnProperty.call(message, "funnelVisualizationType")) - writer.uint32(/* id 6, wireType 0 =*/48).int32(message.funnelVisualizationType); - if (message.segments != null && message.segments.length) - for (var i = 0; i < message.segments.length; ++i) - $root.google.analytics.data.v1alpha.Segment.encode(message.segments[i], writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); - if (message.limit != null && Object.hasOwnProperty.call(message, "limit")) - writer.uint32(/* id 9, wireType 0 =*/72).int64(message.limit); - if (message.dimensionFilter != null && Object.hasOwnProperty.call(message, "dimensionFilter")) - $root.google.analytics.data.v1alpha.FilterExpression.encode(message.dimensionFilter, writer.uint32(/* id 10, wireType 2 =*/82).fork()).ldelim(); - if (message.returnPropertyQuota != null && Object.hasOwnProperty.call(message, "returnPropertyQuota")) - writer.uint32(/* id 12, wireType 0 =*/96).bool(message.returnPropertyQuota); + if (message.funnelTable != null && Object.hasOwnProperty.call(message, "funnelTable")) + $root.google.analytics.data.v1alpha.FunnelSubReport.encode(message.funnelTable, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.funnelVisualization != null && Object.hasOwnProperty.call(message, "funnelVisualization")) + $root.google.analytics.data.v1alpha.FunnelSubReport.encode(message.funnelVisualization, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.propertyQuota != null && Object.hasOwnProperty.call(message, "propertyQuota")) + $root.google.analytics.data.v1alpha.PropertyQuota.encode(message.propertyQuota, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) + writer.uint32(/* id 4, wireType 2 =*/34).string(message.kind); return writer; }; /** - * Encodes the specified RunFunnelReportRequest message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.RunFunnelReportRequest.verify|verify} messages. + * Encodes the specified RunFunnelReportResponse message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.RunFunnelReportResponse.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.RunFunnelReportRequest + * @memberof google.analytics.data.v1alpha.RunFunnelReportResponse * @static - * @param {google.analytics.data.v1alpha.IRunFunnelReportRequest} message RunFunnelReportRequest message or plain object to encode + * @param {google.analytics.data.v1alpha.IRunFunnelReportResponse} message RunFunnelReportResponse message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - RunFunnelReportRequest.encodeDelimited = function encodeDelimited(message, writer) { + RunFunnelReportResponse.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a RunFunnelReportRequest message from the specified reader or buffer. + * Decodes a RunFunnelReportResponse message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.RunFunnelReportRequest + * @memberof google.analytics.data.v1alpha.RunFunnelReportResponse * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.RunFunnelReportRequest} RunFunnelReportRequest + * @returns {google.analytics.data.v1alpha.RunFunnelReportResponse} RunFunnelReportResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RunFunnelReportRequest.decode = function decode(reader, length, error) { + RunFunnelReportResponse.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.RunFunnelReportRequest(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.RunFunnelReportResponse(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { case 1: { - message.property = reader.string(); + message.funnelTable = $root.google.analytics.data.v1alpha.FunnelSubReport.decode(reader, reader.uint32()); break; } case 2: { - if (!(message.dateRanges && message.dateRanges.length)) - message.dateRanges = []; - message.dateRanges.push($root.google.analytics.data.v1alpha.DateRange.decode(reader, reader.uint32())); + message.funnelVisualization = $root.google.analytics.data.v1alpha.FunnelSubReport.decode(reader, reader.uint32()); break; } case 3: { - message.funnel = $root.google.analytics.data.v1alpha.Funnel.decode(reader, reader.uint32()); + message.propertyQuota = $root.google.analytics.data.v1alpha.PropertyQuota.decode(reader, reader.uint32()); break; } case 4: { - message.funnelBreakdown = $root.google.analytics.data.v1alpha.FunnelBreakdown.decode(reader, reader.uint32()); - break; - } - case 5: { - message.funnelNextAction = $root.google.analytics.data.v1alpha.FunnelNextAction.decode(reader, reader.uint32()); - break; - } - case 6: { - message.funnelVisualizationType = reader.int32(); - break; - } - case 7: { - if (!(message.segments && message.segments.length)) - message.segments = []; - message.segments.push($root.google.analytics.data.v1alpha.Segment.decode(reader, reader.uint32())); - break; - } - case 9: { - message.limit = reader.int64(); - break; - } - case 10: { - message.dimensionFilter = $root.google.analytics.data.v1alpha.FilterExpression.decode(reader, reader.uint32()); - break; - } - case 12: { - message.returnPropertyQuota = reader.bool(); + message.kind = reader.string(); break; } default: @@ -19523,308 +19386,164 @@ }; /** - * Decodes a RunFunnelReportRequest message from the specified reader or buffer, length delimited. + * Decodes a RunFunnelReportResponse message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.RunFunnelReportRequest + * @memberof google.analytics.data.v1alpha.RunFunnelReportResponse * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.RunFunnelReportRequest} RunFunnelReportRequest + * @returns {google.analytics.data.v1alpha.RunFunnelReportResponse} RunFunnelReportResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RunFunnelReportRequest.decodeDelimited = function decodeDelimited(reader) { + RunFunnelReportResponse.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a RunFunnelReportRequest message. + * Verifies a RunFunnelReportResponse message. * @function verify - * @memberof google.analytics.data.v1alpha.RunFunnelReportRequest + * @memberof google.analytics.data.v1alpha.RunFunnelReportResponse * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - RunFunnelReportRequest.verify = function verify(message) { + RunFunnelReportResponse.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.property != null && message.hasOwnProperty("property")) - if (!$util.isString(message.property)) - return "property: string expected"; - if (message.dateRanges != null && message.hasOwnProperty("dateRanges")) { - if (!Array.isArray(message.dateRanges)) - return "dateRanges: array expected"; - for (var i = 0; i < message.dateRanges.length; ++i) { - var error = $root.google.analytics.data.v1alpha.DateRange.verify(message.dateRanges[i]); - if (error) - return "dateRanges." + error; - } - } - if (message.funnel != null && message.hasOwnProperty("funnel")) { - var error = $root.google.analytics.data.v1alpha.Funnel.verify(message.funnel); - if (error) - return "funnel." + error; - } - if (message.funnelBreakdown != null && message.hasOwnProperty("funnelBreakdown")) { - var error = $root.google.analytics.data.v1alpha.FunnelBreakdown.verify(message.funnelBreakdown); + if (message.funnelTable != null && message.hasOwnProperty("funnelTable")) { + var error = $root.google.analytics.data.v1alpha.FunnelSubReport.verify(message.funnelTable); if (error) - return "funnelBreakdown." + error; + return "funnelTable." + error; } - if (message.funnelNextAction != null && message.hasOwnProperty("funnelNextAction")) { - var error = $root.google.analytics.data.v1alpha.FunnelNextAction.verify(message.funnelNextAction); + if (message.funnelVisualization != null && message.hasOwnProperty("funnelVisualization")) { + var error = $root.google.analytics.data.v1alpha.FunnelSubReport.verify(message.funnelVisualization); if (error) - return "funnelNextAction." + error; - } - if (message.funnelVisualizationType != null && message.hasOwnProperty("funnelVisualizationType")) - switch (message.funnelVisualizationType) { - default: - return "funnelVisualizationType: enum value expected"; - case 0: - case 1: - case 2: - break; - } - if (message.segments != null && message.hasOwnProperty("segments")) { - if (!Array.isArray(message.segments)) - return "segments: array expected"; - for (var i = 0; i < message.segments.length; ++i) { - var error = $root.google.analytics.data.v1alpha.Segment.verify(message.segments[i]); - if (error) - return "segments." + error; - } + return "funnelVisualization." + error; } - if (message.limit != null && message.hasOwnProperty("limit")) - if (!$util.isInteger(message.limit) && !(message.limit && $util.isInteger(message.limit.low) && $util.isInteger(message.limit.high))) - return "limit: integer|Long expected"; - if (message.dimensionFilter != null && message.hasOwnProperty("dimensionFilter")) { - var error = $root.google.analytics.data.v1alpha.FilterExpression.verify(message.dimensionFilter); + if (message.propertyQuota != null && message.hasOwnProperty("propertyQuota")) { + var error = $root.google.analytics.data.v1alpha.PropertyQuota.verify(message.propertyQuota); if (error) - return "dimensionFilter." + error; + return "propertyQuota." + error; } - if (message.returnPropertyQuota != null && message.hasOwnProperty("returnPropertyQuota")) - if (typeof message.returnPropertyQuota !== "boolean") - return "returnPropertyQuota: boolean expected"; + if (message.kind != null && message.hasOwnProperty("kind")) + if (!$util.isString(message.kind)) + return "kind: string expected"; return null; }; /** - * Creates a RunFunnelReportRequest message from a plain object. Also converts values to their respective internal types. + * Creates a RunFunnelReportResponse message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.RunFunnelReportRequest + * @memberof google.analytics.data.v1alpha.RunFunnelReportResponse * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.RunFunnelReportRequest} RunFunnelReportRequest + * @returns {google.analytics.data.v1alpha.RunFunnelReportResponse} RunFunnelReportResponse */ - RunFunnelReportRequest.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.RunFunnelReportRequest) + RunFunnelReportResponse.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.RunFunnelReportResponse) return object; - var message = new $root.google.analytics.data.v1alpha.RunFunnelReportRequest(); - if (object.property != null) - message.property = String(object.property); - if (object.dateRanges) { - if (!Array.isArray(object.dateRanges)) - throw TypeError(".google.analytics.data.v1alpha.RunFunnelReportRequest.dateRanges: array expected"); - message.dateRanges = []; - for (var i = 0; i < object.dateRanges.length; ++i) { - if (typeof object.dateRanges[i] !== "object") - throw TypeError(".google.analytics.data.v1alpha.RunFunnelReportRequest.dateRanges: object expected"); - message.dateRanges[i] = $root.google.analytics.data.v1alpha.DateRange.fromObject(object.dateRanges[i]); - } - } - if (object.funnel != null) { - if (typeof object.funnel !== "object") - throw TypeError(".google.analytics.data.v1alpha.RunFunnelReportRequest.funnel: object expected"); - message.funnel = $root.google.analytics.data.v1alpha.Funnel.fromObject(object.funnel); - } - if (object.funnelBreakdown != null) { - if (typeof object.funnelBreakdown !== "object") - throw TypeError(".google.analytics.data.v1alpha.RunFunnelReportRequest.funnelBreakdown: object expected"); - message.funnelBreakdown = $root.google.analytics.data.v1alpha.FunnelBreakdown.fromObject(object.funnelBreakdown); - } - if (object.funnelNextAction != null) { - if (typeof object.funnelNextAction !== "object") - throw TypeError(".google.analytics.data.v1alpha.RunFunnelReportRequest.funnelNextAction: object expected"); - message.funnelNextAction = $root.google.analytics.data.v1alpha.FunnelNextAction.fromObject(object.funnelNextAction); - } - switch (object.funnelVisualizationType) { - default: - if (typeof object.funnelVisualizationType === "number") { - message.funnelVisualizationType = object.funnelVisualizationType; - break; - } - break; - case "FUNNEL_VISUALIZATION_TYPE_UNSPECIFIED": - case 0: - message.funnelVisualizationType = 0; - break; - case "STANDARD_FUNNEL": - case 1: - message.funnelVisualizationType = 1; - break; - case "TRENDED_FUNNEL": - case 2: - message.funnelVisualizationType = 2; - break; + var message = new $root.google.analytics.data.v1alpha.RunFunnelReportResponse(); + if (object.funnelTable != null) { + if (typeof object.funnelTable !== "object") + throw TypeError(".google.analytics.data.v1alpha.RunFunnelReportResponse.funnelTable: object expected"); + message.funnelTable = $root.google.analytics.data.v1alpha.FunnelSubReport.fromObject(object.funnelTable); } - if (object.segments) { - if (!Array.isArray(object.segments)) - throw TypeError(".google.analytics.data.v1alpha.RunFunnelReportRequest.segments: array expected"); - message.segments = []; - for (var i = 0; i < object.segments.length; ++i) { - if (typeof object.segments[i] !== "object") - throw TypeError(".google.analytics.data.v1alpha.RunFunnelReportRequest.segments: object expected"); - message.segments[i] = $root.google.analytics.data.v1alpha.Segment.fromObject(object.segments[i]); - } + if (object.funnelVisualization != null) { + if (typeof object.funnelVisualization !== "object") + throw TypeError(".google.analytics.data.v1alpha.RunFunnelReportResponse.funnelVisualization: object expected"); + message.funnelVisualization = $root.google.analytics.data.v1alpha.FunnelSubReport.fromObject(object.funnelVisualization); } - if (object.limit != null) - if ($util.Long) - (message.limit = $util.Long.fromValue(object.limit)).unsigned = false; - else if (typeof object.limit === "string") - message.limit = parseInt(object.limit, 10); - else if (typeof object.limit === "number") - message.limit = object.limit; - else if (typeof object.limit === "object") - message.limit = new $util.LongBits(object.limit.low >>> 0, object.limit.high >>> 0).toNumber(); - if (object.dimensionFilter != null) { - if (typeof object.dimensionFilter !== "object") - throw TypeError(".google.analytics.data.v1alpha.RunFunnelReportRequest.dimensionFilter: object expected"); - message.dimensionFilter = $root.google.analytics.data.v1alpha.FilterExpression.fromObject(object.dimensionFilter); + if (object.propertyQuota != null) { + if (typeof object.propertyQuota !== "object") + throw TypeError(".google.analytics.data.v1alpha.RunFunnelReportResponse.propertyQuota: object expected"); + message.propertyQuota = $root.google.analytics.data.v1alpha.PropertyQuota.fromObject(object.propertyQuota); } - if (object.returnPropertyQuota != null) - message.returnPropertyQuota = Boolean(object.returnPropertyQuota); + if (object.kind != null) + message.kind = String(object.kind); return message; }; /** - * Creates a plain object from a RunFunnelReportRequest message. Also converts values to other types if specified. + * Creates a plain object from a RunFunnelReportResponse message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.RunFunnelReportRequest + * @memberof google.analytics.data.v1alpha.RunFunnelReportResponse * @static - * @param {google.analytics.data.v1alpha.RunFunnelReportRequest} message RunFunnelReportRequest + * @param {google.analytics.data.v1alpha.RunFunnelReportResponse} message RunFunnelReportResponse * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - RunFunnelReportRequest.toObject = function toObject(message, options) { + RunFunnelReportResponse.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.arrays || options.defaults) { - object.dateRanges = []; - object.segments = []; - } if (options.defaults) { - object.property = ""; - object.funnel = null; - object.funnelBreakdown = null; - object.funnelNextAction = null; - object.funnelVisualizationType = options.enums === String ? "FUNNEL_VISUALIZATION_TYPE_UNSPECIFIED" : 0; - if ($util.Long) { - var long = new $util.Long(0, 0, false); - object.limit = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; - } else - object.limit = options.longs === String ? "0" : 0; - object.dimensionFilter = null; - object.returnPropertyQuota = false; - } - if (message.property != null && message.hasOwnProperty("property")) - object.property = message.property; - if (message.dateRanges && message.dateRanges.length) { - object.dateRanges = []; - for (var j = 0; j < message.dateRanges.length; ++j) - object.dateRanges[j] = $root.google.analytics.data.v1alpha.DateRange.toObject(message.dateRanges[j], options); - } - if (message.funnel != null && message.hasOwnProperty("funnel")) - object.funnel = $root.google.analytics.data.v1alpha.Funnel.toObject(message.funnel, options); - if (message.funnelBreakdown != null && message.hasOwnProperty("funnelBreakdown")) - object.funnelBreakdown = $root.google.analytics.data.v1alpha.FunnelBreakdown.toObject(message.funnelBreakdown, options); - if (message.funnelNextAction != null && message.hasOwnProperty("funnelNextAction")) - object.funnelNextAction = $root.google.analytics.data.v1alpha.FunnelNextAction.toObject(message.funnelNextAction, options); - if (message.funnelVisualizationType != null && message.hasOwnProperty("funnelVisualizationType")) - object.funnelVisualizationType = options.enums === String ? $root.google.analytics.data.v1alpha.RunFunnelReportRequest.FunnelVisualizationType[message.funnelVisualizationType] === undefined ? message.funnelVisualizationType : $root.google.analytics.data.v1alpha.RunFunnelReportRequest.FunnelVisualizationType[message.funnelVisualizationType] : message.funnelVisualizationType; - if (message.segments && message.segments.length) { - object.segments = []; - for (var j = 0; j < message.segments.length; ++j) - object.segments[j] = $root.google.analytics.data.v1alpha.Segment.toObject(message.segments[j], options); + object.funnelTable = null; + object.funnelVisualization = null; + object.propertyQuota = null; + object.kind = ""; } - if (message.limit != null && message.hasOwnProperty("limit")) - if (typeof message.limit === "number") - object.limit = options.longs === String ? String(message.limit) : message.limit; - else - object.limit = options.longs === String ? $util.Long.prototype.toString.call(message.limit) : options.longs === Number ? new $util.LongBits(message.limit.low >>> 0, message.limit.high >>> 0).toNumber() : message.limit; - if (message.dimensionFilter != null && message.hasOwnProperty("dimensionFilter")) - object.dimensionFilter = $root.google.analytics.data.v1alpha.FilterExpression.toObject(message.dimensionFilter, options); - if (message.returnPropertyQuota != null && message.hasOwnProperty("returnPropertyQuota")) - object.returnPropertyQuota = message.returnPropertyQuota; + if (message.funnelTable != null && message.hasOwnProperty("funnelTable")) + object.funnelTable = $root.google.analytics.data.v1alpha.FunnelSubReport.toObject(message.funnelTable, options); + if (message.funnelVisualization != null && message.hasOwnProperty("funnelVisualization")) + object.funnelVisualization = $root.google.analytics.data.v1alpha.FunnelSubReport.toObject(message.funnelVisualization, options); + if (message.propertyQuota != null && message.hasOwnProperty("propertyQuota")) + object.propertyQuota = $root.google.analytics.data.v1alpha.PropertyQuota.toObject(message.propertyQuota, options); + if (message.kind != null && message.hasOwnProperty("kind")) + object.kind = message.kind; return object; }; /** - * Converts this RunFunnelReportRequest to JSON. + * Converts this RunFunnelReportResponse to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.RunFunnelReportRequest + * @memberof google.analytics.data.v1alpha.RunFunnelReportResponse * @instance * @returns {Object.} JSON object */ - RunFunnelReportRequest.prototype.toJSON = function toJSON() { + RunFunnelReportResponse.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for RunFunnelReportRequest + * Gets the default type url for RunFunnelReportResponse * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.RunFunnelReportRequest + * @memberof google.analytics.data.v1alpha.RunFunnelReportResponse * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - RunFunnelReportRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + RunFunnelReportResponse.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.analytics.data.v1alpha.RunFunnelReportRequest"; + return typeUrlPrefix + "/google.analytics.data.v1alpha.RunFunnelReportResponse"; }; - /** - * FunnelVisualizationType enum. - * @name google.analytics.data.v1alpha.RunFunnelReportRequest.FunnelVisualizationType - * @enum {number} - * @property {number} FUNNEL_VISUALIZATION_TYPE_UNSPECIFIED=0 FUNNEL_VISUALIZATION_TYPE_UNSPECIFIED value - * @property {number} STANDARD_FUNNEL=1 STANDARD_FUNNEL value - * @property {number} TRENDED_FUNNEL=2 TRENDED_FUNNEL value - */ - RunFunnelReportRequest.FunnelVisualizationType = (function() { - var valuesById = {}, values = Object.create(valuesById); - values[valuesById[0] = "FUNNEL_VISUALIZATION_TYPE_UNSPECIFIED"] = 0; - values[valuesById[1] = "STANDARD_FUNNEL"] = 1; - values[valuesById[2] = "TRENDED_FUNNEL"] = 2; - return values; - })(); - - return RunFunnelReportRequest; + return RunFunnelReportResponse; })(); - v1alpha.RunFunnelReportResponse = (function() { + v1alpha.ReportTask = (function() { /** - * Properties of a RunFunnelReportResponse. + * Properties of a ReportTask. * @memberof google.analytics.data.v1alpha - * @interface IRunFunnelReportResponse - * @property {google.analytics.data.v1alpha.IFunnelSubReport|null} [funnelTable] RunFunnelReportResponse funnelTable - * @property {google.analytics.data.v1alpha.IFunnelSubReport|null} [funnelVisualization] RunFunnelReportResponse funnelVisualization - * @property {google.analytics.data.v1alpha.IPropertyQuota|null} [propertyQuota] RunFunnelReportResponse propertyQuota - * @property {string|null} [kind] RunFunnelReportResponse kind + * @interface IReportTask + * @property {string|null} [name] ReportTask name + * @property {google.analytics.data.v1alpha.ReportTask.IReportDefinition|null} [reportDefinition] ReportTask reportDefinition + * @property {google.analytics.data.v1alpha.ReportTask.IReportMetadata|null} [reportMetadata] ReportTask reportMetadata */ /** - * Constructs a new RunFunnelReportResponse. + * Constructs a new ReportTask. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a RunFunnelReportResponse. - * @implements IRunFunnelReportResponse + * @classdesc Represents a ReportTask. + * @implements IReportTask * @constructor - * @param {google.analytics.data.v1alpha.IRunFunnelReportResponse=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IReportTask=} [properties] Properties to set */ - function RunFunnelReportResponse(properties) { + function ReportTask(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -19832,119 +19551,105 @@ } /** - * RunFunnelReportResponse funnelTable. - * @member {google.analytics.data.v1alpha.IFunnelSubReport|null|undefined} funnelTable - * @memberof google.analytics.data.v1alpha.RunFunnelReportResponse - * @instance - */ - RunFunnelReportResponse.prototype.funnelTable = null; - - /** - * RunFunnelReportResponse funnelVisualization. - * @member {google.analytics.data.v1alpha.IFunnelSubReport|null|undefined} funnelVisualization - * @memberof google.analytics.data.v1alpha.RunFunnelReportResponse + * ReportTask name. + * @member {string} name + * @memberof google.analytics.data.v1alpha.ReportTask * @instance */ - RunFunnelReportResponse.prototype.funnelVisualization = null; + ReportTask.prototype.name = ""; /** - * RunFunnelReportResponse propertyQuota. - * @member {google.analytics.data.v1alpha.IPropertyQuota|null|undefined} propertyQuota - * @memberof google.analytics.data.v1alpha.RunFunnelReportResponse + * ReportTask reportDefinition. + * @member {google.analytics.data.v1alpha.ReportTask.IReportDefinition|null|undefined} reportDefinition + * @memberof google.analytics.data.v1alpha.ReportTask * @instance */ - RunFunnelReportResponse.prototype.propertyQuota = null; + ReportTask.prototype.reportDefinition = null; /** - * RunFunnelReportResponse kind. - * @member {string} kind - * @memberof google.analytics.data.v1alpha.RunFunnelReportResponse + * ReportTask reportMetadata. + * @member {google.analytics.data.v1alpha.ReportTask.IReportMetadata|null|undefined} reportMetadata + * @memberof google.analytics.data.v1alpha.ReportTask * @instance */ - RunFunnelReportResponse.prototype.kind = ""; + ReportTask.prototype.reportMetadata = null; /** - * Creates a new RunFunnelReportResponse instance using the specified properties. + * Creates a new ReportTask instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.RunFunnelReportResponse + * @memberof google.analytics.data.v1alpha.ReportTask * @static - * @param {google.analytics.data.v1alpha.IRunFunnelReportResponse=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.RunFunnelReportResponse} RunFunnelReportResponse instance + * @param {google.analytics.data.v1alpha.IReportTask=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.ReportTask} ReportTask instance */ - RunFunnelReportResponse.create = function create(properties) { - return new RunFunnelReportResponse(properties); + ReportTask.create = function create(properties) { + return new ReportTask(properties); }; /** - * Encodes the specified RunFunnelReportResponse message. Does not implicitly {@link google.analytics.data.v1alpha.RunFunnelReportResponse.verify|verify} messages. + * Encodes the specified ReportTask message. Does not implicitly {@link google.analytics.data.v1alpha.ReportTask.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.RunFunnelReportResponse + * @memberof google.analytics.data.v1alpha.ReportTask * @static - * @param {google.analytics.data.v1alpha.IRunFunnelReportResponse} message RunFunnelReportResponse message or plain object to encode + * @param {google.analytics.data.v1alpha.IReportTask} message ReportTask message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - RunFunnelReportResponse.encode = function encode(message, writer) { + ReportTask.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.funnelTable != null && Object.hasOwnProperty.call(message, "funnelTable")) - $root.google.analytics.data.v1alpha.FunnelSubReport.encode(message.funnelTable, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.funnelVisualization != null && Object.hasOwnProperty.call(message, "funnelVisualization")) - $root.google.analytics.data.v1alpha.FunnelSubReport.encode(message.funnelVisualization, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.propertyQuota != null && Object.hasOwnProperty.call(message, "propertyQuota")) - $root.google.analytics.data.v1alpha.PropertyQuota.encode(message.propertyQuota, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); - if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) - writer.uint32(/* id 4, wireType 2 =*/34).string(message.kind); + if (message.name != null && Object.hasOwnProperty.call(message, "name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + if (message.reportDefinition != null && Object.hasOwnProperty.call(message, "reportDefinition")) + $root.google.analytics.data.v1alpha.ReportTask.ReportDefinition.encode(message.reportDefinition, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.reportMetadata != null && Object.hasOwnProperty.call(message, "reportMetadata")) + $root.google.analytics.data.v1alpha.ReportTask.ReportMetadata.encode(message.reportMetadata, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); return writer; }; /** - * Encodes the specified RunFunnelReportResponse message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.RunFunnelReportResponse.verify|verify} messages. + * Encodes the specified ReportTask message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.ReportTask.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.RunFunnelReportResponse + * @memberof google.analytics.data.v1alpha.ReportTask * @static - * @param {google.analytics.data.v1alpha.IRunFunnelReportResponse} message RunFunnelReportResponse message or plain object to encode + * @param {google.analytics.data.v1alpha.IReportTask} message ReportTask message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - RunFunnelReportResponse.encodeDelimited = function encodeDelimited(message, writer) { + ReportTask.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a RunFunnelReportResponse message from the specified reader or buffer. + * Decodes a ReportTask message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.RunFunnelReportResponse + * @memberof google.analytics.data.v1alpha.ReportTask * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.RunFunnelReportResponse} RunFunnelReportResponse + * @returns {google.analytics.data.v1alpha.ReportTask} ReportTask * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RunFunnelReportResponse.decode = function decode(reader, length, error) { + ReportTask.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.RunFunnelReportResponse(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.ReportTask(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { case 1: { - message.funnelTable = $root.google.analytics.data.v1alpha.FunnelSubReport.decode(reader, reader.uint32()); + message.name = reader.string(); break; } case 2: { - message.funnelVisualization = $root.google.analytics.data.v1alpha.FunnelSubReport.decode(reader, reader.uint32()); + message.reportDefinition = $root.google.analytics.data.v1alpha.ReportTask.ReportDefinition.decode(reader, reader.uint32()); break; } case 3: { - message.propertyQuota = $root.google.analytics.data.v1alpha.PropertyQuota.decode(reader, reader.uint32()); - break; - } - case 4: { - message.kind = reader.string(); + message.reportMetadata = $root.google.analytics.data.v1alpha.ReportTask.ReportMetadata.decode(reader, reader.uint32()); break; } default: @@ -19956,531 +19661,256 @@ }; /** - * Decodes a RunFunnelReportResponse message from the specified reader or buffer, length delimited. + * Decodes a ReportTask message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.RunFunnelReportResponse + * @memberof google.analytics.data.v1alpha.ReportTask * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.RunFunnelReportResponse} RunFunnelReportResponse + * @returns {google.analytics.data.v1alpha.ReportTask} ReportTask * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RunFunnelReportResponse.decodeDelimited = function decodeDelimited(reader) { + ReportTask.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a RunFunnelReportResponse message. + * Verifies a ReportTask message. * @function verify - * @memberof google.analytics.data.v1alpha.RunFunnelReportResponse + * @memberof google.analytics.data.v1alpha.ReportTask * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - RunFunnelReportResponse.verify = function verify(message) { + ReportTask.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.funnelTable != null && message.hasOwnProperty("funnelTable")) { - var error = $root.google.analytics.data.v1alpha.FunnelSubReport.verify(message.funnelTable); - if (error) - return "funnelTable." + error; - } - if (message.funnelVisualization != null && message.hasOwnProperty("funnelVisualization")) { - var error = $root.google.analytics.data.v1alpha.FunnelSubReport.verify(message.funnelVisualization); + if (message.name != null && message.hasOwnProperty("name")) + if (!$util.isString(message.name)) + return "name: string expected"; + if (message.reportDefinition != null && message.hasOwnProperty("reportDefinition")) { + var error = $root.google.analytics.data.v1alpha.ReportTask.ReportDefinition.verify(message.reportDefinition); if (error) - return "funnelVisualization." + error; + return "reportDefinition." + error; } - if (message.propertyQuota != null && message.hasOwnProperty("propertyQuota")) { - var error = $root.google.analytics.data.v1alpha.PropertyQuota.verify(message.propertyQuota); + if (message.reportMetadata != null && message.hasOwnProperty("reportMetadata")) { + var error = $root.google.analytics.data.v1alpha.ReportTask.ReportMetadata.verify(message.reportMetadata); if (error) - return "propertyQuota." + error; + return "reportMetadata." + error; } - if (message.kind != null && message.hasOwnProperty("kind")) - if (!$util.isString(message.kind)) - return "kind: string expected"; return null; }; /** - * Creates a RunFunnelReportResponse message from a plain object. Also converts values to their respective internal types. + * Creates a ReportTask message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.RunFunnelReportResponse + * @memberof google.analytics.data.v1alpha.ReportTask * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.RunFunnelReportResponse} RunFunnelReportResponse + * @returns {google.analytics.data.v1alpha.ReportTask} ReportTask */ - RunFunnelReportResponse.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.RunFunnelReportResponse) + ReportTask.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.ReportTask) return object; - var message = new $root.google.analytics.data.v1alpha.RunFunnelReportResponse(); - if (object.funnelTable != null) { - if (typeof object.funnelTable !== "object") - throw TypeError(".google.analytics.data.v1alpha.RunFunnelReportResponse.funnelTable: object expected"); - message.funnelTable = $root.google.analytics.data.v1alpha.FunnelSubReport.fromObject(object.funnelTable); - } - if (object.funnelVisualization != null) { - if (typeof object.funnelVisualization !== "object") - throw TypeError(".google.analytics.data.v1alpha.RunFunnelReportResponse.funnelVisualization: object expected"); - message.funnelVisualization = $root.google.analytics.data.v1alpha.FunnelSubReport.fromObject(object.funnelVisualization); + var message = new $root.google.analytics.data.v1alpha.ReportTask(); + if (object.name != null) + message.name = String(object.name); + if (object.reportDefinition != null) { + if (typeof object.reportDefinition !== "object") + throw TypeError(".google.analytics.data.v1alpha.ReportTask.reportDefinition: object expected"); + message.reportDefinition = $root.google.analytics.data.v1alpha.ReportTask.ReportDefinition.fromObject(object.reportDefinition); } - if (object.propertyQuota != null) { - if (typeof object.propertyQuota !== "object") - throw TypeError(".google.analytics.data.v1alpha.RunFunnelReportResponse.propertyQuota: object expected"); - message.propertyQuota = $root.google.analytics.data.v1alpha.PropertyQuota.fromObject(object.propertyQuota); + if (object.reportMetadata != null) { + if (typeof object.reportMetadata !== "object") + throw TypeError(".google.analytics.data.v1alpha.ReportTask.reportMetadata: object expected"); + message.reportMetadata = $root.google.analytics.data.v1alpha.ReportTask.ReportMetadata.fromObject(object.reportMetadata); } - if (object.kind != null) - message.kind = String(object.kind); return message; }; /** - * Creates a plain object from a RunFunnelReportResponse message. Also converts values to other types if specified. + * Creates a plain object from a ReportTask message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.RunFunnelReportResponse + * @memberof google.analytics.data.v1alpha.ReportTask * @static - * @param {google.analytics.data.v1alpha.RunFunnelReportResponse} message RunFunnelReportResponse + * @param {google.analytics.data.v1alpha.ReportTask} message ReportTask * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - RunFunnelReportResponse.toObject = function toObject(message, options) { + ReportTask.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; if (options.defaults) { - object.funnelTable = null; - object.funnelVisualization = null; - object.propertyQuota = null; - object.kind = ""; + object.name = ""; + object.reportDefinition = null; + object.reportMetadata = null; } - if (message.funnelTable != null && message.hasOwnProperty("funnelTable")) - object.funnelTable = $root.google.analytics.data.v1alpha.FunnelSubReport.toObject(message.funnelTable, options); - if (message.funnelVisualization != null && message.hasOwnProperty("funnelVisualization")) - object.funnelVisualization = $root.google.analytics.data.v1alpha.FunnelSubReport.toObject(message.funnelVisualization, options); - if (message.propertyQuota != null && message.hasOwnProperty("propertyQuota")) - object.propertyQuota = $root.google.analytics.data.v1alpha.PropertyQuota.toObject(message.propertyQuota, options); - if (message.kind != null && message.hasOwnProperty("kind")) - object.kind = message.kind; + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + if (message.reportDefinition != null && message.hasOwnProperty("reportDefinition")) + object.reportDefinition = $root.google.analytics.data.v1alpha.ReportTask.ReportDefinition.toObject(message.reportDefinition, options); + if (message.reportMetadata != null && message.hasOwnProperty("reportMetadata")) + object.reportMetadata = $root.google.analytics.data.v1alpha.ReportTask.ReportMetadata.toObject(message.reportMetadata, options); return object; }; /** - * Converts this RunFunnelReportResponse to JSON. + * Converts this ReportTask to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.RunFunnelReportResponse + * @memberof google.analytics.data.v1alpha.ReportTask * @instance * @returns {Object.} JSON object */ - RunFunnelReportResponse.prototype.toJSON = function toJSON() { + ReportTask.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for RunFunnelReportResponse + * Gets the default type url for ReportTask * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.RunFunnelReportResponse + * @memberof google.analytics.data.v1alpha.ReportTask * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - RunFunnelReportResponse.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + ReportTask.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.analytics.data.v1alpha.RunFunnelReportResponse"; + return typeUrlPrefix + "/google.analytics.data.v1alpha.ReportTask"; }; - return RunFunnelReportResponse; - })(); - - v1alpha.ReportTask = (function() { + ReportTask.ReportDefinition = (function() { - /** - * Properties of a ReportTask. - * @memberof google.analytics.data.v1alpha - * @interface IReportTask - * @property {string|null} [name] ReportTask name - * @property {google.analytics.data.v1alpha.ReportTask.IReportDefinition|null} [reportDefinition] ReportTask reportDefinition - * @property {google.analytics.data.v1alpha.ReportTask.IReportMetadata|null} [reportMetadata] ReportTask reportMetadata - */ + /** + * Properties of a ReportDefinition. + * @memberof google.analytics.data.v1alpha.ReportTask + * @interface IReportDefinition + * @property {Array.|null} [dimensions] ReportDefinition dimensions + * @property {Array.|null} [metrics] ReportDefinition metrics + * @property {Array.|null} [dateRanges] ReportDefinition dateRanges + * @property {google.analytics.data.v1alpha.IFilterExpression|null} [dimensionFilter] ReportDefinition dimensionFilter + * @property {google.analytics.data.v1alpha.IFilterExpression|null} [metricFilter] ReportDefinition metricFilter + * @property {number|Long|null} [offset] ReportDefinition offset + * @property {number|Long|null} [limit] ReportDefinition limit + * @property {Array.|null} [metricAggregations] ReportDefinition metricAggregations + * @property {Array.|null} [orderBys] ReportDefinition orderBys + * @property {string|null} [currencyCode] ReportDefinition currencyCode + * @property {google.analytics.data.v1alpha.ICohortSpec|null} [cohortSpec] ReportDefinition cohortSpec + * @property {boolean|null} [keepEmptyRows] ReportDefinition keepEmptyRows + * @property {google.analytics.data.v1alpha.SamplingLevel|null} [samplingLevel] ReportDefinition samplingLevel + */ - /** - * Constructs a new ReportTask. - * @memberof google.analytics.data.v1alpha - * @classdesc Represents a ReportTask. - * @implements IReportTask - * @constructor - * @param {google.analytics.data.v1alpha.IReportTask=} [properties] Properties to set - */ - function ReportTask(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]]; - } + /** + * Constructs a new ReportDefinition. + * @memberof google.analytics.data.v1alpha.ReportTask + * @classdesc Represents a ReportDefinition. + * @implements IReportDefinition + * @constructor + * @param {google.analytics.data.v1alpha.ReportTask.IReportDefinition=} [properties] Properties to set + */ + function ReportDefinition(properties) { + this.dimensions = []; + this.metrics = []; + this.dateRanges = []; + this.metricAggregations = []; + this.orderBys = []; + 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]]; + } - /** - * ReportTask name. - * @member {string} name - * @memberof google.analytics.data.v1alpha.ReportTask - * @instance - */ - ReportTask.prototype.name = ""; + /** + * ReportDefinition dimensions. + * @member {Array.} dimensions + * @memberof google.analytics.data.v1alpha.ReportTask.ReportDefinition + * @instance + */ + ReportDefinition.prototype.dimensions = $util.emptyArray; - /** - * ReportTask reportDefinition. - * @member {google.analytics.data.v1alpha.ReportTask.IReportDefinition|null|undefined} reportDefinition - * @memberof google.analytics.data.v1alpha.ReportTask - * @instance - */ - ReportTask.prototype.reportDefinition = null; + /** + * ReportDefinition metrics. + * @member {Array.} metrics + * @memberof google.analytics.data.v1alpha.ReportTask.ReportDefinition + * @instance + */ + ReportDefinition.prototype.metrics = $util.emptyArray; - /** - * ReportTask reportMetadata. - * @member {google.analytics.data.v1alpha.ReportTask.IReportMetadata|null|undefined} reportMetadata - * @memberof google.analytics.data.v1alpha.ReportTask - * @instance - */ - ReportTask.prototype.reportMetadata = null; + /** + * ReportDefinition dateRanges. + * @member {Array.} dateRanges + * @memberof google.analytics.data.v1alpha.ReportTask.ReportDefinition + * @instance + */ + ReportDefinition.prototype.dateRanges = $util.emptyArray; - /** - * Creates a new ReportTask instance using the specified properties. - * @function create - * @memberof google.analytics.data.v1alpha.ReportTask - * @static - * @param {google.analytics.data.v1alpha.IReportTask=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.ReportTask} ReportTask instance - */ - ReportTask.create = function create(properties) { - return new ReportTask(properties); - }; + /** + * ReportDefinition dimensionFilter. + * @member {google.analytics.data.v1alpha.IFilterExpression|null|undefined} dimensionFilter + * @memberof google.analytics.data.v1alpha.ReportTask.ReportDefinition + * @instance + */ + ReportDefinition.prototype.dimensionFilter = null; - /** - * Encodes the specified ReportTask message. Does not implicitly {@link google.analytics.data.v1alpha.ReportTask.verify|verify} messages. - * @function encode - * @memberof google.analytics.data.v1alpha.ReportTask - * @static - * @param {google.analytics.data.v1alpha.IReportTask} message ReportTask message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - ReportTask.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.reportDefinition != null && Object.hasOwnProperty.call(message, "reportDefinition")) - $root.google.analytics.data.v1alpha.ReportTask.ReportDefinition.encode(message.reportDefinition, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.reportMetadata != null && Object.hasOwnProperty.call(message, "reportMetadata")) - $root.google.analytics.data.v1alpha.ReportTask.ReportMetadata.encode(message.reportMetadata, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); - return writer; - }; + /** + * ReportDefinition metricFilter. + * @member {google.analytics.data.v1alpha.IFilterExpression|null|undefined} metricFilter + * @memberof google.analytics.data.v1alpha.ReportTask.ReportDefinition + * @instance + */ + ReportDefinition.prototype.metricFilter = null; - /** - * Encodes the specified ReportTask message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.ReportTask.verify|verify} messages. - * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.ReportTask - * @static - * @param {google.analytics.data.v1alpha.IReportTask} message ReportTask message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - ReportTask.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * ReportDefinition offset. + * @member {number|Long} offset + * @memberof google.analytics.data.v1alpha.ReportTask.ReportDefinition + * @instance + */ + ReportDefinition.prototype.offset = $util.Long ? $util.Long.fromBits(0,0,false) : 0; - /** - * Decodes a ReportTask message from the specified reader or buffer. - * @function decode - * @memberof google.analytics.data.v1alpha.ReportTask - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.ReportTask} ReportTask - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - ReportTask.decode = function decode(reader, length, error) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.ReportTask(); - while (reader.pos < end) { - var tag = reader.uint32(); - if (tag === error) - break; - switch (tag >>> 3) { - case 1: { - message.name = reader.string(); - break; - } - case 2: { - message.reportDefinition = $root.google.analytics.data.v1alpha.ReportTask.ReportDefinition.decode(reader, reader.uint32()); - break; - } - case 3: { - message.reportMetadata = $root.google.analytics.data.v1alpha.ReportTask.ReportMetadata.decode(reader, reader.uint32()); - break; - } - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + /** + * ReportDefinition limit. + * @member {number|Long} limit + * @memberof google.analytics.data.v1alpha.ReportTask.ReportDefinition + * @instance + */ + ReportDefinition.prototype.limit = $util.Long ? $util.Long.fromBits(0,0,false) : 0; - /** - * Decodes a ReportTask message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.ReportTask - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.ReportTask} ReportTask - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - ReportTask.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * ReportDefinition metricAggregations. + * @member {Array.} metricAggregations + * @memberof google.analytics.data.v1alpha.ReportTask.ReportDefinition + * @instance + */ + ReportDefinition.prototype.metricAggregations = $util.emptyArray; - /** - * Verifies a ReportTask message. - * @function verify - * @memberof google.analytics.data.v1alpha.ReportTask - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - ReportTask.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.reportDefinition != null && message.hasOwnProperty("reportDefinition")) { - var error = $root.google.analytics.data.v1alpha.ReportTask.ReportDefinition.verify(message.reportDefinition); - if (error) - return "reportDefinition." + error; - } - if (message.reportMetadata != null && message.hasOwnProperty("reportMetadata")) { - var error = $root.google.analytics.data.v1alpha.ReportTask.ReportMetadata.verify(message.reportMetadata); - if (error) - return "reportMetadata." + error; - } - return null; - }; + /** + * ReportDefinition orderBys. + * @member {Array.} orderBys + * @memberof google.analytics.data.v1alpha.ReportTask.ReportDefinition + * @instance + */ + ReportDefinition.prototype.orderBys = $util.emptyArray; - /** - * Creates a ReportTask message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.analytics.data.v1alpha.ReportTask - * @static - * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.ReportTask} ReportTask - */ - ReportTask.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.ReportTask) - return object; - var message = new $root.google.analytics.data.v1alpha.ReportTask(); - if (object.name != null) - message.name = String(object.name); - if (object.reportDefinition != null) { - if (typeof object.reportDefinition !== "object") - throw TypeError(".google.analytics.data.v1alpha.ReportTask.reportDefinition: object expected"); - message.reportDefinition = $root.google.analytics.data.v1alpha.ReportTask.ReportDefinition.fromObject(object.reportDefinition); - } - if (object.reportMetadata != null) { - if (typeof object.reportMetadata !== "object") - throw TypeError(".google.analytics.data.v1alpha.ReportTask.reportMetadata: object expected"); - message.reportMetadata = $root.google.analytics.data.v1alpha.ReportTask.ReportMetadata.fromObject(object.reportMetadata); - } - return message; - }; + /** + * ReportDefinition currencyCode. + * @member {string} currencyCode + * @memberof google.analytics.data.v1alpha.ReportTask.ReportDefinition + * @instance + */ + ReportDefinition.prototype.currencyCode = ""; - /** - * Creates a plain object from a ReportTask message. Also converts values to other types if specified. - * @function toObject - * @memberof google.analytics.data.v1alpha.ReportTask - * @static - * @param {google.analytics.data.v1alpha.ReportTask} message ReportTask - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - ReportTask.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) { - object.name = ""; - object.reportDefinition = null; - object.reportMetadata = null; - } - if (message.name != null && message.hasOwnProperty("name")) - object.name = message.name; - if (message.reportDefinition != null && message.hasOwnProperty("reportDefinition")) - object.reportDefinition = $root.google.analytics.data.v1alpha.ReportTask.ReportDefinition.toObject(message.reportDefinition, options); - if (message.reportMetadata != null && message.hasOwnProperty("reportMetadata")) - object.reportMetadata = $root.google.analytics.data.v1alpha.ReportTask.ReportMetadata.toObject(message.reportMetadata, options); - return object; - }; - - /** - * Converts this ReportTask to JSON. - * @function toJSON - * @memberof google.analytics.data.v1alpha.ReportTask - * @instance - * @returns {Object.} JSON object - */ - ReportTask.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; - - /** - * Gets the default type url for ReportTask - * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.ReportTask - * @static - * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns {string} The default type url - */ - ReportTask.getTypeUrl = function getTypeUrl(typeUrlPrefix) { - if (typeUrlPrefix === undefined) { - typeUrlPrefix = "type.googleapis.com"; - } - return typeUrlPrefix + "/google.analytics.data.v1alpha.ReportTask"; - }; - - ReportTask.ReportDefinition = (function() { - - /** - * Properties of a ReportDefinition. - * @memberof google.analytics.data.v1alpha.ReportTask - * @interface IReportDefinition - * @property {Array.|null} [dimensions] ReportDefinition dimensions - * @property {Array.|null} [metrics] ReportDefinition metrics - * @property {Array.|null} [dateRanges] ReportDefinition dateRanges - * @property {google.analytics.data.v1alpha.IFilterExpression|null} [dimensionFilter] ReportDefinition dimensionFilter - * @property {google.analytics.data.v1alpha.IFilterExpression|null} [metricFilter] ReportDefinition metricFilter - * @property {number|Long|null} [offset] ReportDefinition offset - * @property {number|Long|null} [limit] ReportDefinition limit - * @property {Array.|null} [metricAggregations] ReportDefinition metricAggregations - * @property {Array.|null} [orderBys] ReportDefinition orderBys - * @property {string|null} [currencyCode] ReportDefinition currencyCode - * @property {google.analytics.data.v1alpha.ICohortSpec|null} [cohortSpec] ReportDefinition cohortSpec - * @property {boolean|null} [keepEmptyRows] ReportDefinition keepEmptyRows - * @property {google.analytics.data.v1alpha.SamplingLevel|null} [samplingLevel] ReportDefinition samplingLevel - */ - - /** - * Constructs a new ReportDefinition. - * @memberof google.analytics.data.v1alpha.ReportTask - * @classdesc Represents a ReportDefinition. - * @implements IReportDefinition - * @constructor - * @param {google.analytics.data.v1alpha.ReportTask.IReportDefinition=} [properties] Properties to set - */ - function ReportDefinition(properties) { - this.dimensions = []; - this.metrics = []; - this.dateRanges = []; - this.metricAggregations = []; - this.orderBys = []; - 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]]; - } - - /** - * ReportDefinition dimensions. - * @member {Array.} dimensions - * @memberof google.analytics.data.v1alpha.ReportTask.ReportDefinition - * @instance - */ - ReportDefinition.prototype.dimensions = $util.emptyArray; - - /** - * ReportDefinition metrics. - * @member {Array.} metrics - * @memberof google.analytics.data.v1alpha.ReportTask.ReportDefinition - * @instance - */ - ReportDefinition.prototype.metrics = $util.emptyArray; - - /** - * ReportDefinition dateRanges. - * @member {Array.} dateRanges - * @memberof google.analytics.data.v1alpha.ReportTask.ReportDefinition - * @instance - */ - ReportDefinition.prototype.dateRanges = $util.emptyArray; - - /** - * ReportDefinition dimensionFilter. - * @member {google.analytics.data.v1alpha.IFilterExpression|null|undefined} dimensionFilter - * @memberof google.analytics.data.v1alpha.ReportTask.ReportDefinition - * @instance - */ - ReportDefinition.prototype.dimensionFilter = null; - - /** - * ReportDefinition metricFilter. - * @member {google.analytics.data.v1alpha.IFilterExpression|null|undefined} metricFilter - * @memberof google.analytics.data.v1alpha.ReportTask.ReportDefinition - * @instance - */ - ReportDefinition.prototype.metricFilter = null; - - /** - * ReportDefinition offset. - * @member {number|Long} offset - * @memberof google.analytics.data.v1alpha.ReportTask.ReportDefinition - * @instance - */ - ReportDefinition.prototype.offset = $util.Long ? $util.Long.fromBits(0,0,false) : 0; - - /** - * ReportDefinition limit. - * @member {number|Long} limit - * @memberof google.analytics.data.v1alpha.ReportTask.ReportDefinition - * @instance - */ - ReportDefinition.prototype.limit = $util.Long ? $util.Long.fromBits(0,0,false) : 0; - - /** - * ReportDefinition metricAggregations. - * @member {Array.} metricAggregations - * @memberof google.analytics.data.v1alpha.ReportTask.ReportDefinition - * @instance - */ - ReportDefinition.prototype.metricAggregations = $util.emptyArray; - - /** - * ReportDefinition orderBys. - * @member {Array.} orderBys - * @memberof google.analytics.data.v1alpha.ReportTask.ReportDefinition - * @instance - */ - ReportDefinition.prototype.orderBys = $util.emptyArray; - - /** - * ReportDefinition currencyCode. - * @member {string} currencyCode - * @memberof google.analytics.data.v1alpha.ReportTask.ReportDefinition - * @instance - */ - ReportDefinition.prototype.currencyCode = ""; - - /** - * ReportDefinition cohortSpec. - * @member {google.analytics.data.v1alpha.ICohortSpec|null|undefined} cohortSpec - * @memberof google.analytics.data.v1alpha.ReportTask.ReportDefinition - * @instance - */ - ReportDefinition.prototype.cohortSpec = null; + /** + * ReportDefinition cohortSpec. + * @member {google.analytics.data.v1alpha.ICohortSpec|null|undefined} cohortSpec + * @memberof google.analytics.data.v1alpha.ReportTask.ReportDefinition + * @instance + */ + ReportDefinition.prototype.cohortSpec = null; /** * ReportDefinition keepEmptyRows. @@ -23406,26 +22836,45 @@ return ListReportTasksResponse; })(); - v1alpha.DateRange = (function() { + v1alpha.RunReportRequest = (function() { /** - * Properties of a DateRange. + * Properties of a RunReportRequest. * @memberof google.analytics.data.v1alpha - * @interface IDateRange - * @property {string|null} [startDate] DateRange startDate - * @property {string|null} [endDate] DateRange endDate - * @property {string|null} [name] DateRange name + * @interface IRunReportRequest + * @property {string|null} [property] RunReportRequest property + * @property {Array.|null} [dimensions] RunReportRequest dimensions + * @property {Array.|null} [metrics] RunReportRequest metrics + * @property {Array.|null} [dateRanges] RunReportRequest dateRanges + * @property {google.analytics.data.v1alpha.IFilterExpression|null} [dimensionFilter] RunReportRequest dimensionFilter + * @property {google.analytics.data.v1alpha.IFilterExpression|null} [metricFilter] RunReportRequest metricFilter + * @property {number|Long|null} [offset] RunReportRequest offset + * @property {number|Long|null} [limit] RunReportRequest limit + * @property {Array.|null} [metricAggregations] RunReportRequest metricAggregations + * @property {Array.|null} [orderBys] RunReportRequest orderBys + * @property {string|null} [currencyCode] RunReportRequest currencyCode + * @property {google.analytics.data.v1alpha.ICohortSpec|null} [cohortSpec] RunReportRequest cohortSpec + * @property {boolean|null} [keepEmptyRows] RunReportRequest keepEmptyRows + * @property {boolean|null} [returnPropertyQuota] RunReportRequest returnPropertyQuota + * @property {Array.|null} [comparisons] RunReportRequest comparisons + * @property {google.analytics.data.v1alpha.IConversionSpec|null} [conversionSpec] RunReportRequest conversionSpec */ /** - * Constructs a new DateRange. + * Constructs a new RunReportRequest. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a DateRange. - * @implements IDateRange + * @classdesc Represents a RunReportRequest. + * @implements IRunReportRequest * @constructor - * @param {google.analytics.data.v1alpha.IDateRange=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IRunReportRequest=} [properties] Properties to set */ - function DateRange(properties) { + function RunReportRequest(properties) { + this.dimensions = []; + this.metrics = []; + this.dateRanges = []; + this.metricAggregations = []; + this.orderBys = []; + this.comparisons = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -23433,346 +22882,317 @@ } /** - * DateRange startDate. - * @member {string} startDate - * @memberof google.analytics.data.v1alpha.DateRange + * RunReportRequest property. + * @member {string} property + * @memberof google.analytics.data.v1alpha.RunReportRequest * @instance */ - DateRange.prototype.startDate = ""; + RunReportRequest.prototype.property = ""; /** - * DateRange endDate. - * @member {string} endDate - * @memberof google.analytics.data.v1alpha.DateRange + * RunReportRequest dimensions. + * @member {Array.} dimensions + * @memberof google.analytics.data.v1alpha.RunReportRequest * @instance */ - DateRange.prototype.endDate = ""; + RunReportRequest.prototype.dimensions = $util.emptyArray; /** - * DateRange name. - * @member {string} name - * @memberof google.analytics.data.v1alpha.DateRange + * RunReportRequest metrics. + * @member {Array.} metrics + * @memberof google.analytics.data.v1alpha.RunReportRequest * @instance */ - DateRange.prototype.name = ""; + RunReportRequest.prototype.metrics = $util.emptyArray; /** - * Creates a new DateRange instance using the specified properties. - * @function create - * @memberof google.analytics.data.v1alpha.DateRange - * @static - * @param {google.analytics.data.v1alpha.IDateRange=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.DateRange} DateRange instance + * RunReportRequest dateRanges. + * @member {Array.} dateRanges + * @memberof google.analytics.data.v1alpha.RunReportRequest + * @instance */ - DateRange.create = function create(properties) { - return new DateRange(properties); - }; + RunReportRequest.prototype.dateRanges = $util.emptyArray; /** - * Encodes the specified DateRange message. Does not implicitly {@link google.analytics.data.v1alpha.DateRange.verify|verify} messages. - * @function encode - * @memberof google.analytics.data.v1alpha.DateRange - * @static - * @param {google.analytics.data.v1alpha.IDateRange} message DateRange message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer + * RunReportRequest dimensionFilter. + * @member {google.analytics.data.v1alpha.IFilterExpression|null|undefined} dimensionFilter + * @memberof google.analytics.data.v1alpha.RunReportRequest + * @instance */ - DateRange.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.startDate != null && Object.hasOwnProperty.call(message, "startDate")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.startDate); - if (message.endDate != null && Object.hasOwnProperty.call(message, "endDate")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.endDate); - if (message.name != null && Object.hasOwnProperty.call(message, "name")) - writer.uint32(/* id 3, wireType 2 =*/26).string(message.name); - return writer; - }; + RunReportRequest.prototype.dimensionFilter = null; /** - * Encodes the specified DateRange message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.DateRange.verify|verify} messages. - * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.DateRange - * @static - * @param {google.analytics.data.v1alpha.IDateRange} message DateRange message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer + * RunReportRequest metricFilter. + * @member {google.analytics.data.v1alpha.IFilterExpression|null|undefined} metricFilter + * @memberof google.analytics.data.v1alpha.RunReportRequest + * @instance */ - DateRange.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + RunReportRequest.prototype.metricFilter = null; /** - * Decodes a DateRange message from the specified reader or buffer. - * @function decode - * @memberof google.analytics.data.v1alpha.DateRange - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.DateRange} DateRange - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - DateRange.decode = function decode(reader, length, error) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.DateRange(); - while (reader.pos < end) { - var tag = reader.uint32(); - if (tag === error) - break; - switch (tag >>> 3) { - case 1: { - message.startDate = reader.string(); - break; - } - case 2: { - message.endDate = reader.string(); - break; - } - case 3: { - message.name = reader.string(); - break; - } - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; - - /** - * Decodes a DateRange message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.DateRange - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.DateRange} DateRange - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing + * RunReportRequest offset. + * @member {number|Long} offset + * @memberof google.analytics.data.v1alpha.RunReportRequest + * @instance */ - DateRange.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + RunReportRequest.prototype.offset = $util.Long ? $util.Long.fromBits(0,0,false) : 0; /** - * Verifies a DateRange message. - * @function verify - * @memberof google.analytics.data.v1alpha.DateRange - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not + * RunReportRequest limit. + * @member {number|Long} limit + * @memberof google.analytics.data.v1alpha.RunReportRequest + * @instance */ - DateRange.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.startDate != null && message.hasOwnProperty("startDate")) - if (!$util.isString(message.startDate)) - return "startDate: string expected"; - if (message.endDate != null && message.hasOwnProperty("endDate")) - if (!$util.isString(message.endDate)) - return "endDate: string expected"; - if (message.name != null && message.hasOwnProperty("name")) - if (!$util.isString(message.name)) - return "name: string expected"; - return null; - }; + RunReportRequest.prototype.limit = $util.Long ? $util.Long.fromBits(0,0,false) : 0; /** - * Creates a DateRange message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.analytics.data.v1alpha.DateRange - * @static - * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.DateRange} DateRange + * RunReportRequest metricAggregations. + * @member {Array.} metricAggregations + * @memberof google.analytics.data.v1alpha.RunReportRequest + * @instance */ - DateRange.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.DateRange) - return object; - var message = new $root.google.analytics.data.v1alpha.DateRange(); - if (object.startDate != null) - message.startDate = String(object.startDate); - if (object.endDate != null) - message.endDate = String(object.endDate); - if (object.name != null) - message.name = String(object.name); - return message; - }; + RunReportRequest.prototype.metricAggregations = $util.emptyArray; /** - * Creates a plain object from a DateRange message. Also converts values to other types if specified. - * @function toObject - * @memberof google.analytics.data.v1alpha.DateRange - * @static - * @param {google.analytics.data.v1alpha.DateRange} message DateRange - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object + * RunReportRequest orderBys. + * @member {Array.} orderBys + * @memberof google.analytics.data.v1alpha.RunReportRequest + * @instance */ - DateRange.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) { - object.startDate = ""; - object.endDate = ""; - object.name = ""; - } - if (message.startDate != null && message.hasOwnProperty("startDate")) - object.startDate = message.startDate; - if (message.endDate != null && message.hasOwnProperty("endDate")) - object.endDate = message.endDate; - if (message.name != null && message.hasOwnProperty("name")) - object.name = message.name; - return object; - }; + RunReportRequest.prototype.orderBys = $util.emptyArray; /** - * Converts this DateRange to JSON. - * @function toJSON - * @memberof google.analytics.data.v1alpha.DateRange + * RunReportRequest currencyCode. + * @member {string} currencyCode + * @memberof google.analytics.data.v1alpha.RunReportRequest * @instance - * @returns {Object.} JSON object */ - DateRange.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + RunReportRequest.prototype.currencyCode = ""; /** - * Gets the default type url for DateRange - * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.DateRange - * @static - * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns {string} The default type url + * RunReportRequest cohortSpec. + * @member {google.analytics.data.v1alpha.ICohortSpec|null|undefined} cohortSpec + * @memberof google.analytics.data.v1alpha.RunReportRequest + * @instance */ - DateRange.getTypeUrl = function getTypeUrl(typeUrlPrefix) { - if (typeUrlPrefix === undefined) { - typeUrlPrefix = "type.googleapis.com"; - } - return typeUrlPrefix + "/google.analytics.data.v1alpha.DateRange"; - }; - - return DateRange; - })(); - - v1alpha.Dimension = (function() { + RunReportRequest.prototype.cohortSpec = null; /** - * Properties of a Dimension. - * @memberof google.analytics.data.v1alpha - * @interface IDimension - * @property {string|null} [name] Dimension name - * @property {google.analytics.data.v1alpha.IDimensionExpression|null} [dimensionExpression] Dimension dimensionExpression + * RunReportRequest keepEmptyRows. + * @member {boolean} keepEmptyRows + * @memberof google.analytics.data.v1alpha.RunReportRequest + * @instance */ + RunReportRequest.prototype.keepEmptyRows = false; /** - * Constructs a new Dimension. - * @memberof google.analytics.data.v1alpha - * @classdesc Represents a Dimension. - * @implements IDimension - * @constructor - * @param {google.analytics.data.v1alpha.IDimension=} [properties] Properties to set + * RunReportRequest returnPropertyQuota. + * @member {boolean} returnPropertyQuota + * @memberof google.analytics.data.v1alpha.RunReportRequest + * @instance */ - function Dimension(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]]; - } + RunReportRequest.prototype.returnPropertyQuota = false; /** - * Dimension name. - * @member {string} name - * @memberof google.analytics.data.v1alpha.Dimension + * RunReportRequest comparisons. + * @member {Array.} comparisons + * @memberof google.analytics.data.v1alpha.RunReportRequest * @instance */ - Dimension.prototype.name = ""; + RunReportRequest.prototype.comparisons = $util.emptyArray; /** - * Dimension dimensionExpression. - * @member {google.analytics.data.v1alpha.IDimensionExpression|null|undefined} dimensionExpression - * @memberof google.analytics.data.v1alpha.Dimension + * RunReportRequest conversionSpec. + * @member {google.analytics.data.v1alpha.IConversionSpec|null|undefined} conversionSpec + * @memberof google.analytics.data.v1alpha.RunReportRequest * @instance */ - Dimension.prototype.dimensionExpression = null; + RunReportRequest.prototype.conversionSpec = null; /** - * Creates a new Dimension instance using the specified properties. + * Creates a new RunReportRequest instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.Dimension + * @memberof google.analytics.data.v1alpha.RunReportRequest * @static - * @param {google.analytics.data.v1alpha.IDimension=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.Dimension} Dimension instance + * @param {google.analytics.data.v1alpha.IRunReportRequest=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.RunReportRequest} RunReportRequest instance */ - Dimension.create = function create(properties) { - return new Dimension(properties); + RunReportRequest.create = function create(properties) { + return new RunReportRequest(properties); }; /** - * Encodes the specified Dimension message. Does not implicitly {@link google.analytics.data.v1alpha.Dimension.verify|verify} messages. + * Encodes the specified RunReportRequest message. Does not implicitly {@link google.analytics.data.v1alpha.RunReportRequest.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.Dimension + * @memberof google.analytics.data.v1alpha.RunReportRequest * @static - * @param {google.analytics.data.v1alpha.IDimension} message Dimension message or plain object to encode + * @param {google.analytics.data.v1alpha.IRunReportRequest} message RunReportRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Dimension.encode = function encode(message, writer) { + RunReportRequest.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.dimensionExpression != null && Object.hasOwnProperty.call(message, "dimensionExpression")) - $root.google.analytics.data.v1alpha.DimensionExpression.encode(message.dimensionExpression, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.property != null && Object.hasOwnProperty.call(message, "property")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.property); + if (message.dimensions != null && message.dimensions.length) + for (var i = 0; i < message.dimensions.length; ++i) + $root.google.analytics.data.v1alpha.Dimension.encode(message.dimensions[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.metrics != null && message.metrics.length) + for (var i = 0; i < message.metrics.length; ++i) + $root.google.analytics.data.v1alpha.Metric.encode(message.metrics[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.dateRanges != null && message.dateRanges.length) + for (var i = 0; i < message.dateRanges.length; ++i) + $root.google.analytics.data.v1alpha.DateRange.encode(message.dateRanges[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.dimensionFilter != null && Object.hasOwnProperty.call(message, "dimensionFilter")) + $root.google.analytics.data.v1alpha.FilterExpression.encode(message.dimensionFilter, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + if (message.metricFilter != null && Object.hasOwnProperty.call(message, "metricFilter")) + $root.google.analytics.data.v1alpha.FilterExpression.encode(message.metricFilter, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + if (message.offset != null && Object.hasOwnProperty.call(message, "offset")) + writer.uint32(/* id 7, wireType 0 =*/56).int64(message.offset); + if (message.limit != null && Object.hasOwnProperty.call(message, "limit")) + writer.uint32(/* id 8, wireType 0 =*/64).int64(message.limit); + if (message.metricAggregations != null && message.metricAggregations.length) { + writer.uint32(/* id 9, wireType 2 =*/74).fork(); + for (var i = 0; i < message.metricAggregations.length; ++i) + writer.int32(message.metricAggregations[i]); + writer.ldelim(); + } + if (message.orderBys != null && message.orderBys.length) + for (var i = 0; i < message.orderBys.length; ++i) + $root.google.analytics.data.v1alpha.OrderBy.encode(message.orderBys[i], writer.uint32(/* id 10, wireType 2 =*/82).fork()).ldelim(); + if (message.currencyCode != null && Object.hasOwnProperty.call(message, "currencyCode")) + writer.uint32(/* id 11, wireType 2 =*/90).string(message.currencyCode); + if (message.cohortSpec != null && Object.hasOwnProperty.call(message, "cohortSpec")) + $root.google.analytics.data.v1alpha.CohortSpec.encode(message.cohortSpec, writer.uint32(/* id 12, wireType 2 =*/98).fork()).ldelim(); + if (message.keepEmptyRows != null && Object.hasOwnProperty.call(message, "keepEmptyRows")) + writer.uint32(/* id 13, wireType 0 =*/104).bool(message.keepEmptyRows); + if (message.returnPropertyQuota != null && Object.hasOwnProperty.call(message, "returnPropertyQuota")) + writer.uint32(/* id 14, wireType 0 =*/112).bool(message.returnPropertyQuota); + if (message.comparisons != null && message.comparisons.length) + for (var i = 0; i < message.comparisons.length; ++i) + $root.google.analytics.data.v1alpha.Comparison.encode(message.comparisons[i], writer.uint32(/* id 15, wireType 2 =*/122).fork()).ldelim(); + if (message.conversionSpec != null && Object.hasOwnProperty.call(message, "conversionSpec")) + $root.google.analytics.data.v1alpha.ConversionSpec.encode(message.conversionSpec, writer.uint32(/* id 16, wireType 2 =*/130).fork()).ldelim(); return writer; }; /** - * Encodes the specified Dimension message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.Dimension.verify|verify} messages. + * Encodes the specified RunReportRequest message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.RunReportRequest.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.Dimension + * @memberof google.analytics.data.v1alpha.RunReportRequest * @static - * @param {google.analytics.data.v1alpha.IDimension} message Dimension message or plain object to encode + * @param {google.analytics.data.v1alpha.IRunReportRequest} message RunReportRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Dimension.encodeDelimited = function encodeDelimited(message, writer) { + RunReportRequest.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a Dimension message from the specified reader or buffer. + * Decodes a RunReportRequest message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.Dimension + * @memberof google.analytics.data.v1alpha.RunReportRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.Dimension} Dimension + * @returns {google.analytics.data.v1alpha.RunReportRequest} RunReportRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Dimension.decode = function decode(reader, length, error) { + RunReportRequest.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.Dimension(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.RunReportRequest(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { case 1: { - message.name = reader.string(); + message.property = reader.string(); break; } case 2: { - message.dimensionExpression = $root.google.analytics.data.v1alpha.DimensionExpression.decode(reader, reader.uint32()); + if (!(message.dimensions && message.dimensions.length)) + message.dimensions = []; + message.dimensions.push($root.google.analytics.data.v1alpha.Dimension.decode(reader, reader.uint32())); break; } - default: - reader.skipType(tag & 7); + case 3: { + if (!(message.metrics && message.metrics.length)) + message.metrics = []; + message.metrics.push($root.google.analytics.data.v1alpha.Metric.decode(reader, reader.uint32())); + break; + } + case 4: { + if (!(message.dateRanges && message.dateRanges.length)) + message.dateRanges = []; + message.dateRanges.push($root.google.analytics.data.v1alpha.DateRange.decode(reader, reader.uint32())); + break; + } + case 5: { + message.dimensionFilter = $root.google.analytics.data.v1alpha.FilterExpression.decode(reader, reader.uint32()); + break; + } + case 6: { + message.metricFilter = $root.google.analytics.data.v1alpha.FilterExpression.decode(reader, reader.uint32()); + break; + } + case 7: { + message.offset = reader.int64(); + break; + } + case 8: { + message.limit = reader.int64(); + break; + } + case 9: { + if (!(message.metricAggregations && message.metricAggregations.length)) + message.metricAggregations = []; + if ((tag & 7) === 2) { + var end2 = reader.uint32() + reader.pos; + while (reader.pos < end2) + message.metricAggregations.push(reader.int32()); + } else + message.metricAggregations.push(reader.int32()); + break; + } + case 10: { + if (!(message.orderBys && message.orderBys.length)) + message.orderBys = []; + message.orderBys.push($root.google.analytics.data.v1alpha.OrderBy.decode(reader, reader.uint32())); + break; + } + case 11: { + message.currencyCode = reader.string(); + break; + } + case 12: { + message.cohortSpec = $root.google.analytics.data.v1alpha.CohortSpec.decode(reader, reader.uint32()); + break; + } + case 13: { + message.keepEmptyRows = reader.bool(); + break; + } + case 14: { + message.returnPropertyQuota = reader.bool(); + break; + } + case 15: { + if (!(message.comparisons && message.comparisons.length)) + message.comparisons = []; + message.comparisons.push($root.google.analytics.data.v1alpha.Comparison.decode(reader, reader.uint32())); + break; + } + case 16: { + message.conversionSpec = $root.google.analytics.data.v1alpha.ConversionSpec.decode(reader, reader.uint32()); + break; + } + default: + reader.skipType(tag & 7); break; } } @@ -23780,138 +23200,440 @@ }; /** - * Decodes a Dimension message from the specified reader or buffer, length delimited. + * Decodes a RunReportRequest message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.Dimension + * @memberof google.analytics.data.v1alpha.RunReportRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.Dimension} Dimension + * @returns {google.analytics.data.v1alpha.RunReportRequest} RunReportRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Dimension.decodeDelimited = function decodeDelimited(reader) { + RunReportRequest.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a Dimension message. + * Verifies a RunReportRequest message. * @function verify - * @memberof google.analytics.data.v1alpha.Dimension + * @memberof google.analytics.data.v1alpha.RunReportRequest * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Dimension.verify = function verify(message) { + RunReportRequest.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.dimensionExpression != null && message.hasOwnProperty("dimensionExpression")) { - var error = $root.google.analytics.data.v1alpha.DimensionExpression.verify(message.dimensionExpression); + if (message.property != null && message.hasOwnProperty("property")) + if (!$util.isString(message.property)) + return "property: string expected"; + if (message.dimensions != null && message.hasOwnProperty("dimensions")) { + if (!Array.isArray(message.dimensions)) + return "dimensions: array expected"; + for (var i = 0; i < message.dimensions.length; ++i) { + var error = $root.google.analytics.data.v1alpha.Dimension.verify(message.dimensions[i]); + if (error) + return "dimensions." + error; + } + } + if (message.metrics != null && message.hasOwnProperty("metrics")) { + if (!Array.isArray(message.metrics)) + return "metrics: array expected"; + for (var i = 0; i < message.metrics.length; ++i) { + var error = $root.google.analytics.data.v1alpha.Metric.verify(message.metrics[i]); + if (error) + return "metrics." + error; + } + } + if (message.dateRanges != null && message.hasOwnProperty("dateRanges")) { + if (!Array.isArray(message.dateRanges)) + return "dateRanges: array expected"; + for (var i = 0; i < message.dateRanges.length; ++i) { + var error = $root.google.analytics.data.v1alpha.DateRange.verify(message.dateRanges[i]); + if (error) + return "dateRanges." + error; + } + } + if (message.dimensionFilter != null && message.hasOwnProperty("dimensionFilter")) { + var error = $root.google.analytics.data.v1alpha.FilterExpression.verify(message.dimensionFilter); if (error) - return "dimensionExpression." + error; + return "dimensionFilter." + error; + } + if (message.metricFilter != null && message.hasOwnProperty("metricFilter")) { + var error = $root.google.analytics.data.v1alpha.FilterExpression.verify(message.metricFilter); + if (error) + return "metricFilter." + error; + } + if (message.offset != null && message.hasOwnProperty("offset")) + if (!$util.isInteger(message.offset) && !(message.offset && $util.isInteger(message.offset.low) && $util.isInteger(message.offset.high))) + return "offset: integer|Long expected"; + if (message.limit != null && message.hasOwnProperty("limit")) + if (!$util.isInteger(message.limit) && !(message.limit && $util.isInteger(message.limit.low) && $util.isInteger(message.limit.high))) + return "limit: integer|Long expected"; + if (message.metricAggregations != null && message.hasOwnProperty("metricAggregations")) { + if (!Array.isArray(message.metricAggregations)) + return "metricAggregations: array expected"; + for (var i = 0; i < message.metricAggregations.length; ++i) + switch (message.metricAggregations[i]) { + default: + return "metricAggregations: enum value[] expected"; + case 0: + case 1: + case 5: + case 6: + case 4: + break; + } + } + if (message.orderBys != null && message.hasOwnProperty("orderBys")) { + if (!Array.isArray(message.orderBys)) + return "orderBys: array expected"; + for (var i = 0; i < message.orderBys.length; ++i) { + var error = $root.google.analytics.data.v1alpha.OrderBy.verify(message.orderBys[i]); + if (error) + return "orderBys." + error; + } + } + if (message.currencyCode != null && message.hasOwnProperty("currencyCode")) + if (!$util.isString(message.currencyCode)) + return "currencyCode: string expected"; + if (message.cohortSpec != null && message.hasOwnProperty("cohortSpec")) { + var error = $root.google.analytics.data.v1alpha.CohortSpec.verify(message.cohortSpec); + if (error) + return "cohortSpec." + error; + } + if (message.keepEmptyRows != null && message.hasOwnProperty("keepEmptyRows")) + if (typeof message.keepEmptyRows !== "boolean") + return "keepEmptyRows: boolean expected"; + if (message.returnPropertyQuota != null && message.hasOwnProperty("returnPropertyQuota")) + if (typeof message.returnPropertyQuota !== "boolean") + return "returnPropertyQuota: boolean expected"; + if (message.comparisons != null && message.hasOwnProperty("comparisons")) { + if (!Array.isArray(message.comparisons)) + return "comparisons: array expected"; + for (var i = 0; i < message.comparisons.length; ++i) { + var error = $root.google.analytics.data.v1alpha.Comparison.verify(message.comparisons[i]); + if (error) + return "comparisons." + error; + } + } + if (message.conversionSpec != null && message.hasOwnProperty("conversionSpec")) { + var error = $root.google.analytics.data.v1alpha.ConversionSpec.verify(message.conversionSpec); + if (error) + return "conversionSpec." + error; } return null; }; /** - * Creates a Dimension message from a plain object. Also converts values to their respective internal types. + * Creates a RunReportRequest message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.Dimension + * @memberof google.analytics.data.v1alpha.RunReportRequest * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.Dimension} Dimension + * @returns {google.analytics.data.v1alpha.RunReportRequest} RunReportRequest */ - Dimension.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.Dimension) + RunReportRequest.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.RunReportRequest) return object; - var message = new $root.google.analytics.data.v1alpha.Dimension(); - if (object.name != null) - message.name = String(object.name); - if (object.dimensionExpression != null) { - if (typeof object.dimensionExpression !== "object") - throw TypeError(".google.analytics.data.v1alpha.Dimension.dimensionExpression: object expected"); - message.dimensionExpression = $root.google.analytics.data.v1alpha.DimensionExpression.fromObject(object.dimensionExpression); + var message = new $root.google.analytics.data.v1alpha.RunReportRequest(); + if (object.property != null) + message.property = String(object.property); + if (object.dimensions) { + if (!Array.isArray(object.dimensions)) + throw TypeError(".google.analytics.data.v1alpha.RunReportRequest.dimensions: array expected"); + message.dimensions = []; + for (var i = 0; i < object.dimensions.length; ++i) { + if (typeof object.dimensions[i] !== "object") + throw TypeError(".google.analytics.data.v1alpha.RunReportRequest.dimensions: object expected"); + message.dimensions[i] = $root.google.analytics.data.v1alpha.Dimension.fromObject(object.dimensions[i]); + } } - return message; - }; - - /** - * Creates a plain object from a Dimension message. Also converts values to other types if specified. - * @function toObject - * @memberof google.analytics.data.v1alpha.Dimension - * @static - * @param {google.analytics.data.v1alpha.Dimension} message Dimension - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - Dimension.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) { - object.name = ""; - object.dimensionExpression = null; + if (object.metrics) { + if (!Array.isArray(object.metrics)) + throw TypeError(".google.analytics.data.v1alpha.RunReportRequest.metrics: array expected"); + message.metrics = []; + for (var i = 0; i < object.metrics.length; ++i) { + if (typeof object.metrics[i] !== "object") + throw TypeError(".google.analytics.data.v1alpha.RunReportRequest.metrics: object expected"); + message.metrics[i] = $root.google.analytics.data.v1alpha.Metric.fromObject(object.metrics[i]); + } } - if (message.name != null && message.hasOwnProperty("name")) - object.name = message.name; - if (message.dimensionExpression != null && message.hasOwnProperty("dimensionExpression")) - object.dimensionExpression = $root.google.analytics.data.v1alpha.DimensionExpression.toObject(message.dimensionExpression, options); - return object; - }; - - /** - * Converts this Dimension to JSON. - * @function toJSON - * @memberof google.analytics.data.v1alpha.Dimension - * @instance - * @returns {Object.} JSON object - */ - Dimension.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; - - /** - * Gets the default type url for Dimension - * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.Dimension - * @static - * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns {string} The default type url - */ - Dimension.getTypeUrl = function getTypeUrl(typeUrlPrefix) { - if (typeUrlPrefix === undefined) { - typeUrlPrefix = "type.googleapis.com"; + if (object.dateRanges) { + if (!Array.isArray(object.dateRanges)) + throw TypeError(".google.analytics.data.v1alpha.RunReportRequest.dateRanges: array expected"); + message.dateRanges = []; + for (var i = 0; i < object.dateRanges.length; ++i) { + if (typeof object.dateRanges[i] !== "object") + throw TypeError(".google.analytics.data.v1alpha.RunReportRequest.dateRanges: object expected"); + message.dateRanges[i] = $root.google.analytics.data.v1alpha.DateRange.fromObject(object.dateRanges[i]); + } } - return typeUrlPrefix + "/google.analytics.data.v1alpha.Dimension"; - }; - - return Dimension; + if (object.dimensionFilter != null) { + if (typeof object.dimensionFilter !== "object") + throw TypeError(".google.analytics.data.v1alpha.RunReportRequest.dimensionFilter: object expected"); + message.dimensionFilter = $root.google.analytics.data.v1alpha.FilterExpression.fromObject(object.dimensionFilter); + } + if (object.metricFilter != null) { + if (typeof object.metricFilter !== "object") + throw TypeError(".google.analytics.data.v1alpha.RunReportRequest.metricFilter: object expected"); + message.metricFilter = $root.google.analytics.data.v1alpha.FilterExpression.fromObject(object.metricFilter); + } + if (object.offset != null) + if ($util.Long) + (message.offset = $util.Long.fromValue(object.offset)).unsigned = false; + else if (typeof object.offset === "string") + message.offset = parseInt(object.offset, 10); + else if (typeof object.offset === "number") + message.offset = object.offset; + else if (typeof object.offset === "object") + message.offset = new $util.LongBits(object.offset.low >>> 0, object.offset.high >>> 0).toNumber(); + if (object.limit != null) + if ($util.Long) + (message.limit = $util.Long.fromValue(object.limit)).unsigned = false; + else if (typeof object.limit === "string") + message.limit = parseInt(object.limit, 10); + else if (typeof object.limit === "number") + message.limit = object.limit; + else if (typeof object.limit === "object") + message.limit = new $util.LongBits(object.limit.low >>> 0, object.limit.high >>> 0).toNumber(); + if (object.metricAggregations) { + if (!Array.isArray(object.metricAggregations)) + throw TypeError(".google.analytics.data.v1alpha.RunReportRequest.metricAggregations: array expected"); + message.metricAggregations = []; + for (var i = 0; i < object.metricAggregations.length; ++i) + switch (object.metricAggregations[i]) { + default: + if (typeof object.metricAggregations[i] === "number") { + message.metricAggregations[i] = object.metricAggregations[i]; + break; + } + case "METRIC_AGGREGATION_UNSPECIFIED": + case 0: + message.metricAggregations[i] = 0; + break; + case "TOTAL": + case 1: + message.metricAggregations[i] = 1; + break; + case "MINIMUM": + case 5: + message.metricAggregations[i] = 5; + break; + case "MAXIMUM": + case 6: + message.metricAggregations[i] = 6; + break; + case "COUNT": + case 4: + message.metricAggregations[i] = 4; + break; + } + } + if (object.orderBys) { + if (!Array.isArray(object.orderBys)) + throw TypeError(".google.analytics.data.v1alpha.RunReportRequest.orderBys: array expected"); + message.orderBys = []; + for (var i = 0; i < object.orderBys.length; ++i) { + if (typeof object.orderBys[i] !== "object") + throw TypeError(".google.analytics.data.v1alpha.RunReportRequest.orderBys: object expected"); + message.orderBys[i] = $root.google.analytics.data.v1alpha.OrderBy.fromObject(object.orderBys[i]); + } + } + if (object.currencyCode != null) + message.currencyCode = String(object.currencyCode); + if (object.cohortSpec != null) { + if (typeof object.cohortSpec !== "object") + throw TypeError(".google.analytics.data.v1alpha.RunReportRequest.cohortSpec: object expected"); + message.cohortSpec = $root.google.analytics.data.v1alpha.CohortSpec.fromObject(object.cohortSpec); + } + if (object.keepEmptyRows != null) + message.keepEmptyRows = Boolean(object.keepEmptyRows); + if (object.returnPropertyQuota != null) + message.returnPropertyQuota = Boolean(object.returnPropertyQuota); + if (object.comparisons) { + if (!Array.isArray(object.comparisons)) + throw TypeError(".google.analytics.data.v1alpha.RunReportRequest.comparisons: array expected"); + message.comparisons = []; + for (var i = 0; i < object.comparisons.length; ++i) { + if (typeof object.comparisons[i] !== "object") + throw TypeError(".google.analytics.data.v1alpha.RunReportRequest.comparisons: object expected"); + message.comparisons[i] = $root.google.analytics.data.v1alpha.Comparison.fromObject(object.comparisons[i]); + } + } + if (object.conversionSpec != null) { + if (typeof object.conversionSpec !== "object") + throw TypeError(".google.analytics.data.v1alpha.RunReportRequest.conversionSpec: object expected"); + message.conversionSpec = $root.google.analytics.data.v1alpha.ConversionSpec.fromObject(object.conversionSpec); + } + return message; + }; + + /** + * Creates a plain object from a RunReportRequest message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1alpha.RunReportRequest + * @static + * @param {google.analytics.data.v1alpha.RunReportRequest} message RunReportRequest + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + RunReportRequest.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) { + object.dimensions = []; + object.metrics = []; + object.dateRanges = []; + object.metricAggregations = []; + object.orderBys = []; + object.comparisons = []; + } + if (options.defaults) { + object.property = ""; + object.dimensionFilter = null; + object.metricFilter = null; + if ($util.Long) { + var long = new $util.Long(0, 0, false); + object.offset = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.offset = options.longs === String ? "0" : 0; + if ($util.Long) { + var long = new $util.Long(0, 0, false); + object.limit = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.limit = options.longs === String ? "0" : 0; + object.currencyCode = ""; + object.cohortSpec = null; + object.keepEmptyRows = false; + object.returnPropertyQuota = false; + object.conversionSpec = null; + } + if (message.property != null && message.hasOwnProperty("property")) + object.property = message.property; + if (message.dimensions && message.dimensions.length) { + object.dimensions = []; + for (var j = 0; j < message.dimensions.length; ++j) + object.dimensions[j] = $root.google.analytics.data.v1alpha.Dimension.toObject(message.dimensions[j], options); + } + if (message.metrics && message.metrics.length) { + object.metrics = []; + for (var j = 0; j < message.metrics.length; ++j) + object.metrics[j] = $root.google.analytics.data.v1alpha.Metric.toObject(message.metrics[j], options); + } + if (message.dateRanges && message.dateRanges.length) { + object.dateRanges = []; + for (var j = 0; j < message.dateRanges.length; ++j) + object.dateRanges[j] = $root.google.analytics.data.v1alpha.DateRange.toObject(message.dateRanges[j], options); + } + if (message.dimensionFilter != null && message.hasOwnProperty("dimensionFilter")) + object.dimensionFilter = $root.google.analytics.data.v1alpha.FilterExpression.toObject(message.dimensionFilter, options); + if (message.metricFilter != null && message.hasOwnProperty("metricFilter")) + object.metricFilter = $root.google.analytics.data.v1alpha.FilterExpression.toObject(message.metricFilter, options); + if (message.offset != null && message.hasOwnProperty("offset")) + if (typeof message.offset === "number") + object.offset = options.longs === String ? String(message.offset) : message.offset; + else + object.offset = options.longs === String ? $util.Long.prototype.toString.call(message.offset) : options.longs === Number ? new $util.LongBits(message.offset.low >>> 0, message.offset.high >>> 0).toNumber() : message.offset; + if (message.limit != null && message.hasOwnProperty("limit")) + if (typeof message.limit === "number") + object.limit = options.longs === String ? String(message.limit) : message.limit; + else + object.limit = options.longs === String ? $util.Long.prototype.toString.call(message.limit) : options.longs === Number ? new $util.LongBits(message.limit.low >>> 0, message.limit.high >>> 0).toNumber() : message.limit; + if (message.metricAggregations && message.metricAggregations.length) { + object.metricAggregations = []; + for (var j = 0; j < message.metricAggregations.length; ++j) + object.metricAggregations[j] = options.enums === String ? $root.google.analytics.data.v1alpha.MetricAggregation[message.metricAggregations[j]] === undefined ? message.metricAggregations[j] : $root.google.analytics.data.v1alpha.MetricAggregation[message.metricAggregations[j]] : message.metricAggregations[j]; + } + if (message.orderBys && message.orderBys.length) { + object.orderBys = []; + for (var j = 0; j < message.orderBys.length; ++j) + object.orderBys[j] = $root.google.analytics.data.v1alpha.OrderBy.toObject(message.orderBys[j], options); + } + if (message.currencyCode != null && message.hasOwnProperty("currencyCode")) + object.currencyCode = message.currencyCode; + if (message.cohortSpec != null && message.hasOwnProperty("cohortSpec")) + object.cohortSpec = $root.google.analytics.data.v1alpha.CohortSpec.toObject(message.cohortSpec, options); + if (message.keepEmptyRows != null && message.hasOwnProperty("keepEmptyRows")) + object.keepEmptyRows = message.keepEmptyRows; + if (message.returnPropertyQuota != null && message.hasOwnProperty("returnPropertyQuota")) + object.returnPropertyQuota = message.returnPropertyQuota; + if (message.comparisons && message.comparisons.length) { + object.comparisons = []; + for (var j = 0; j < message.comparisons.length; ++j) + object.comparisons[j] = $root.google.analytics.data.v1alpha.Comparison.toObject(message.comparisons[j], options); + } + if (message.conversionSpec != null && message.hasOwnProperty("conversionSpec")) + object.conversionSpec = $root.google.analytics.data.v1alpha.ConversionSpec.toObject(message.conversionSpec, options); + return object; + }; + + /** + * Converts this RunReportRequest to JSON. + * @function toJSON + * @memberof google.analytics.data.v1alpha.RunReportRequest + * @instance + * @returns {Object.} JSON object + */ + RunReportRequest.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for RunReportRequest + * @function getTypeUrl + * @memberof google.analytics.data.v1alpha.RunReportRequest + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + RunReportRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.analytics.data.v1alpha.RunReportRequest"; + }; + + return RunReportRequest; })(); - v1alpha.DimensionExpression = (function() { + v1alpha.RunReportResponse = (function() { /** - * Properties of a DimensionExpression. + * Properties of a RunReportResponse. * @memberof google.analytics.data.v1alpha - * @interface IDimensionExpression - * @property {google.analytics.data.v1alpha.DimensionExpression.ICaseExpression|null} [lowerCase] DimensionExpression lowerCase - * @property {google.analytics.data.v1alpha.DimensionExpression.ICaseExpression|null} [upperCase] DimensionExpression upperCase - * @property {google.analytics.data.v1alpha.DimensionExpression.IConcatenateExpression|null} [concatenate] DimensionExpression concatenate + * @interface IRunReportResponse + * @property {Array.|null} [dimensionHeaders] RunReportResponse dimensionHeaders + * @property {Array.|null} [metricHeaders] RunReportResponse metricHeaders + * @property {Array.|null} [rows] RunReportResponse rows + * @property {Array.|null} [totals] RunReportResponse totals + * @property {Array.|null} [maximums] RunReportResponse maximums + * @property {Array.|null} [minimums] RunReportResponse minimums + * @property {number|null} [rowCount] RunReportResponse rowCount + * @property {google.analytics.data.v1alpha.IResponseMetaData|null} [metadata] RunReportResponse metadata + * @property {google.analytics.data.v1alpha.IPropertyQuota|null} [propertyQuota] RunReportResponse propertyQuota + * @property {string|null} [kind] RunReportResponse kind + * @property {string|null} [nextPageToken] RunReportResponse nextPageToken */ /** - * Constructs a new DimensionExpression. + * Constructs a new RunReportResponse. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a DimensionExpression. - * @implements IDimensionExpression + * @classdesc Represents a RunReportResponse. + * @implements IRunReportResponse * @constructor - * @param {google.analytics.data.v1alpha.IDimensionExpression=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IRunReportResponse=} [properties] Properties to set */ - function DimensionExpression(properties) { + function RunReportResponse(properties) { + this.dimensionHeaders = []; + this.metricHeaders = []; + this.rows = []; + this.totals = []; + this.maximums = []; + this.minimums = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -23919,119 +23641,244 @@ } /** - * DimensionExpression lowerCase. - * @member {google.analytics.data.v1alpha.DimensionExpression.ICaseExpression|null|undefined} lowerCase - * @memberof google.analytics.data.v1alpha.DimensionExpression + * RunReportResponse dimensionHeaders. + * @member {Array.} dimensionHeaders + * @memberof google.analytics.data.v1alpha.RunReportResponse * @instance */ - DimensionExpression.prototype.lowerCase = null; + RunReportResponse.prototype.dimensionHeaders = $util.emptyArray; /** - * DimensionExpression upperCase. - * @member {google.analytics.data.v1alpha.DimensionExpression.ICaseExpression|null|undefined} upperCase - * @memberof google.analytics.data.v1alpha.DimensionExpression + * RunReportResponse metricHeaders. + * @member {Array.} metricHeaders + * @memberof google.analytics.data.v1alpha.RunReportResponse * @instance */ - DimensionExpression.prototype.upperCase = null; + RunReportResponse.prototype.metricHeaders = $util.emptyArray; /** - * DimensionExpression concatenate. - * @member {google.analytics.data.v1alpha.DimensionExpression.IConcatenateExpression|null|undefined} concatenate - * @memberof google.analytics.data.v1alpha.DimensionExpression + * RunReportResponse rows. + * @member {Array.} rows + * @memberof google.analytics.data.v1alpha.RunReportResponse * @instance */ - DimensionExpression.prototype.concatenate = null; - - // OneOf field names bound to virtual getters and setters - var $oneOfFields; + RunReportResponse.prototype.rows = $util.emptyArray; /** - * DimensionExpression oneExpression. - * @member {"lowerCase"|"upperCase"|"concatenate"|undefined} oneExpression - * @memberof google.analytics.data.v1alpha.DimensionExpression + * RunReportResponse totals. + * @member {Array.} totals + * @memberof google.analytics.data.v1alpha.RunReportResponse * @instance */ - Object.defineProperty(DimensionExpression.prototype, "oneExpression", { - get: $util.oneOfGetter($oneOfFields = ["lowerCase", "upperCase", "concatenate"]), - set: $util.oneOfSetter($oneOfFields) - }); + RunReportResponse.prototype.totals = $util.emptyArray; /** - * Creates a new DimensionExpression instance using the specified properties. + * RunReportResponse maximums. + * @member {Array.} maximums + * @memberof google.analytics.data.v1alpha.RunReportResponse + * @instance + */ + RunReportResponse.prototype.maximums = $util.emptyArray; + + /** + * RunReportResponse minimums. + * @member {Array.} minimums + * @memberof google.analytics.data.v1alpha.RunReportResponse + * @instance + */ + RunReportResponse.prototype.minimums = $util.emptyArray; + + /** + * RunReportResponse rowCount. + * @member {number} rowCount + * @memberof google.analytics.data.v1alpha.RunReportResponse + * @instance + */ + RunReportResponse.prototype.rowCount = 0; + + /** + * RunReportResponse metadata. + * @member {google.analytics.data.v1alpha.IResponseMetaData|null|undefined} metadata + * @memberof google.analytics.data.v1alpha.RunReportResponse + * @instance + */ + RunReportResponse.prototype.metadata = null; + + /** + * RunReportResponse propertyQuota. + * @member {google.analytics.data.v1alpha.IPropertyQuota|null|undefined} propertyQuota + * @memberof google.analytics.data.v1alpha.RunReportResponse + * @instance + */ + RunReportResponse.prototype.propertyQuota = null; + + /** + * RunReportResponse kind. + * @member {string} kind + * @memberof google.analytics.data.v1alpha.RunReportResponse + * @instance + */ + RunReportResponse.prototype.kind = ""; + + /** + * RunReportResponse nextPageToken. + * @member {string|null|undefined} nextPageToken + * @memberof google.analytics.data.v1alpha.RunReportResponse + * @instance + */ + RunReportResponse.prototype.nextPageToken = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + // Virtual OneOf for proto3 optional field + Object.defineProperty(RunReportResponse.prototype, "_nextPageToken", { + get: $util.oneOfGetter($oneOfFields = ["nextPageToken"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new RunReportResponse instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.DimensionExpression + * @memberof google.analytics.data.v1alpha.RunReportResponse * @static - * @param {google.analytics.data.v1alpha.IDimensionExpression=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.DimensionExpression} DimensionExpression instance + * @param {google.analytics.data.v1alpha.IRunReportResponse=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.RunReportResponse} RunReportResponse instance */ - DimensionExpression.create = function create(properties) { - return new DimensionExpression(properties); + RunReportResponse.create = function create(properties) { + return new RunReportResponse(properties); }; /** - * Encodes the specified DimensionExpression message. Does not implicitly {@link google.analytics.data.v1alpha.DimensionExpression.verify|verify} messages. + * Encodes the specified RunReportResponse message. Does not implicitly {@link google.analytics.data.v1alpha.RunReportResponse.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.DimensionExpression + * @memberof google.analytics.data.v1alpha.RunReportResponse * @static - * @param {google.analytics.data.v1alpha.IDimensionExpression} message DimensionExpression message or plain object to encode + * @param {google.analytics.data.v1alpha.IRunReportResponse} message RunReportResponse message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - DimensionExpression.encode = function encode(message, writer) { + RunReportResponse.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.lowerCase != null && Object.hasOwnProperty.call(message, "lowerCase")) - $root.google.analytics.data.v1alpha.DimensionExpression.CaseExpression.encode(message.lowerCase, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); - if (message.upperCase != null && Object.hasOwnProperty.call(message, "upperCase")) - $root.google.analytics.data.v1alpha.DimensionExpression.CaseExpression.encode(message.upperCase, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); - if (message.concatenate != null && Object.hasOwnProperty.call(message, "concatenate")) - $root.google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression.encode(message.concatenate, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + if (message.dimensionHeaders != null && message.dimensionHeaders.length) + for (var i = 0; i < message.dimensionHeaders.length; ++i) + $root.google.analytics.data.v1alpha.DimensionHeader.encode(message.dimensionHeaders[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.metricHeaders != null && message.metricHeaders.length) + for (var i = 0; i < message.metricHeaders.length; ++i) + $root.google.analytics.data.v1alpha.MetricHeader.encode(message.metricHeaders[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.rows != null && message.rows.length) + for (var i = 0; i < message.rows.length; ++i) + $root.google.analytics.data.v1alpha.Row.encode(message.rows[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.totals != null && message.totals.length) + for (var i = 0; i < message.totals.length; ++i) + $root.google.analytics.data.v1alpha.Row.encode(message.totals[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.maximums != null && message.maximums.length) + for (var i = 0; i < message.maximums.length; ++i) + $root.google.analytics.data.v1alpha.Row.encode(message.maximums[i], writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + if (message.minimums != null && message.minimums.length) + for (var i = 0; i < message.minimums.length; ++i) + $root.google.analytics.data.v1alpha.Row.encode(message.minimums[i], writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + if (message.rowCount != null && Object.hasOwnProperty.call(message, "rowCount")) + writer.uint32(/* id 7, wireType 0 =*/56).int32(message.rowCount); + if (message.metadata != null && Object.hasOwnProperty.call(message, "metadata")) + $root.google.analytics.data.v1alpha.ResponseMetaData.encode(message.metadata, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); + if (message.propertyQuota != null && Object.hasOwnProperty.call(message, "propertyQuota")) + $root.google.analytics.data.v1alpha.PropertyQuota.encode(message.propertyQuota, writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim(); + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) + writer.uint32(/* id 10, wireType 2 =*/82).string(message.kind); + if (message.nextPageToken != null && Object.hasOwnProperty.call(message, "nextPageToken")) + writer.uint32(/* id 11, wireType 2 =*/90).string(message.nextPageToken); return writer; }; /** - * Encodes the specified DimensionExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.DimensionExpression.verify|verify} messages. + * Encodes the specified RunReportResponse message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.RunReportResponse.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.DimensionExpression + * @memberof google.analytics.data.v1alpha.RunReportResponse * @static - * @param {google.analytics.data.v1alpha.IDimensionExpression} message DimensionExpression message or plain object to encode + * @param {google.analytics.data.v1alpha.IRunReportResponse} message RunReportResponse message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - DimensionExpression.encodeDelimited = function encodeDelimited(message, writer) { + RunReportResponse.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a DimensionExpression message from the specified reader or buffer. + * Decodes a RunReportResponse message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.DimensionExpression + * @memberof google.analytics.data.v1alpha.RunReportResponse * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.DimensionExpression} DimensionExpression + * @returns {google.analytics.data.v1alpha.RunReportResponse} RunReportResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DimensionExpression.decode = function decode(reader, length, error) { + RunReportResponse.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.DimensionExpression(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.RunReportResponse(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { + case 1: { + if (!(message.dimensionHeaders && message.dimensionHeaders.length)) + message.dimensionHeaders = []; + message.dimensionHeaders.push($root.google.analytics.data.v1alpha.DimensionHeader.decode(reader, reader.uint32())); + break; + } + case 2: { + if (!(message.metricHeaders && message.metricHeaders.length)) + message.metricHeaders = []; + message.metricHeaders.push($root.google.analytics.data.v1alpha.MetricHeader.decode(reader, reader.uint32())); + break; + } + case 3: { + if (!(message.rows && message.rows.length)) + message.rows = []; + message.rows.push($root.google.analytics.data.v1alpha.Row.decode(reader, reader.uint32())); + break; + } case 4: { - message.lowerCase = $root.google.analytics.data.v1alpha.DimensionExpression.CaseExpression.decode(reader, reader.uint32()); + if (!(message.totals && message.totals.length)) + message.totals = []; + message.totals.push($root.google.analytics.data.v1alpha.Row.decode(reader, reader.uint32())); break; } case 5: { - message.upperCase = $root.google.analytics.data.v1alpha.DimensionExpression.CaseExpression.decode(reader, reader.uint32()); + if (!(message.maximums && message.maximums.length)) + message.maximums = []; + message.maximums.push($root.google.analytics.data.v1alpha.Row.decode(reader, reader.uint32())); break; } case 6: { - message.concatenate = $root.google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression.decode(reader, reader.uint32()); + if (!(message.minimums && message.minimums.length)) + message.minimums = []; + message.minimums.push($root.google.analytics.data.v1alpha.Row.decode(reader, reader.uint32())); + break; + } + case 7: { + message.rowCount = reader.int32(); + break; + } + case 8: { + message.metadata = $root.google.analytics.data.v1alpha.ResponseMetaData.decode(reader, reader.uint32()); + break; + } + case 9: { + message.propertyQuota = $root.google.analytics.data.v1alpha.PropertyQuota.decode(reader, reader.uint32()); + break; + } + case 10: { + message.kind = reader.string(); + break; + } + case 11: { + message.nextPageToken = reader.string(); break; } default: @@ -24043,730 +23890,681 @@ }; /** - * Decodes a DimensionExpression message from the specified reader or buffer, length delimited. + * Decodes a RunReportResponse message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.DimensionExpression + * @memberof google.analytics.data.v1alpha.RunReportResponse * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.DimensionExpression} DimensionExpression + * @returns {google.analytics.data.v1alpha.RunReportResponse} RunReportResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DimensionExpression.decodeDelimited = function decodeDelimited(reader) { + RunReportResponse.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a DimensionExpression message. + * Verifies a RunReportResponse message. * @function verify - * @memberof google.analytics.data.v1alpha.DimensionExpression + * @memberof google.analytics.data.v1alpha.RunReportResponse * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - DimensionExpression.verify = function verify(message) { + RunReportResponse.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; var properties = {}; - if (message.lowerCase != null && message.hasOwnProperty("lowerCase")) { - properties.oneExpression = 1; - { - var error = $root.google.analytics.data.v1alpha.DimensionExpression.CaseExpression.verify(message.lowerCase); + if (message.dimensionHeaders != null && message.hasOwnProperty("dimensionHeaders")) { + if (!Array.isArray(message.dimensionHeaders)) + return "dimensionHeaders: array expected"; + for (var i = 0; i < message.dimensionHeaders.length; ++i) { + var error = $root.google.analytics.data.v1alpha.DimensionHeader.verify(message.dimensionHeaders[i]); if (error) - return "lowerCase." + error; + return "dimensionHeaders." + error; } } - if (message.upperCase != null && message.hasOwnProperty("upperCase")) { - if (properties.oneExpression === 1) - return "oneExpression: multiple values"; - properties.oneExpression = 1; - { - var error = $root.google.analytics.data.v1alpha.DimensionExpression.CaseExpression.verify(message.upperCase); + if (message.metricHeaders != null && message.hasOwnProperty("metricHeaders")) { + if (!Array.isArray(message.metricHeaders)) + return "metricHeaders: array expected"; + for (var i = 0; i < message.metricHeaders.length; ++i) { + var error = $root.google.analytics.data.v1alpha.MetricHeader.verify(message.metricHeaders[i]); if (error) - return "upperCase." + error; + return "metricHeaders." + error; } } - if (message.concatenate != null && message.hasOwnProperty("concatenate")) { - if (properties.oneExpression === 1) - return "oneExpression: multiple values"; - properties.oneExpression = 1; - { - var error = $root.google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression.verify(message.concatenate); + 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.analytics.data.v1alpha.Row.verify(message.rows[i]); if (error) - return "concatenate." + error; + return "rows." + error; } } - return null; - }; - - /** - * Creates a DimensionExpression message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.analytics.data.v1alpha.DimensionExpression - * @static - * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.DimensionExpression} DimensionExpression - */ - DimensionExpression.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.DimensionExpression) - return object; - var message = new $root.google.analytics.data.v1alpha.DimensionExpression(); - if (object.lowerCase != null) { - if (typeof object.lowerCase !== "object") - throw TypeError(".google.analytics.data.v1alpha.DimensionExpression.lowerCase: object expected"); - message.lowerCase = $root.google.analytics.data.v1alpha.DimensionExpression.CaseExpression.fromObject(object.lowerCase); - } - if (object.upperCase != null) { - if (typeof object.upperCase !== "object") - throw TypeError(".google.analytics.data.v1alpha.DimensionExpression.upperCase: object expected"); - message.upperCase = $root.google.analytics.data.v1alpha.DimensionExpression.CaseExpression.fromObject(object.upperCase); + if (message.totals != null && message.hasOwnProperty("totals")) { + if (!Array.isArray(message.totals)) + return "totals: array expected"; + for (var i = 0; i < message.totals.length; ++i) { + var error = $root.google.analytics.data.v1alpha.Row.verify(message.totals[i]); + if (error) + return "totals." + error; + } } - if (object.concatenate != null) { - if (typeof object.concatenate !== "object") - throw TypeError(".google.analytics.data.v1alpha.DimensionExpression.concatenate: object expected"); - message.concatenate = $root.google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression.fromObject(object.concatenate); + if (message.maximums != null && message.hasOwnProperty("maximums")) { + if (!Array.isArray(message.maximums)) + return "maximums: array expected"; + for (var i = 0; i < message.maximums.length; ++i) { + var error = $root.google.analytics.data.v1alpha.Row.verify(message.maximums[i]); + if (error) + return "maximums." + error; + } } - return message; + if (message.minimums != null && message.hasOwnProperty("minimums")) { + if (!Array.isArray(message.minimums)) + return "minimums: array expected"; + for (var i = 0; i < message.minimums.length; ++i) { + var error = $root.google.analytics.data.v1alpha.Row.verify(message.minimums[i]); + if (error) + return "minimums." + error; + } + } + if (message.rowCount != null && message.hasOwnProperty("rowCount")) + if (!$util.isInteger(message.rowCount)) + return "rowCount: integer expected"; + if (message.metadata != null && message.hasOwnProperty("metadata")) { + var error = $root.google.analytics.data.v1alpha.ResponseMetaData.verify(message.metadata); + if (error) + return "metadata." + error; + } + if (message.propertyQuota != null && message.hasOwnProperty("propertyQuota")) { + var error = $root.google.analytics.data.v1alpha.PropertyQuota.verify(message.propertyQuota); + if (error) + return "propertyQuota." + error; + } + if (message.kind != null && message.hasOwnProperty("kind")) + if (!$util.isString(message.kind)) + return "kind: string expected"; + if (message.nextPageToken != null && message.hasOwnProperty("nextPageToken")) { + properties._nextPageToken = 1; + if (!$util.isString(message.nextPageToken)) + return "nextPageToken: string expected"; + } + return null; }; /** - * Creates a plain object from a DimensionExpression message. Also converts values to other types if specified. + * Creates a RunReportResponse message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1alpha.RunReportResponse + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1alpha.RunReportResponse} RunReportResponse + */ + RunReportResponse.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.RunReportResponse) + return object; + var message = new $root.google.analytics.data.v1alpha.RunReportResponse(); + if (object.dimensionHeaders) { + if (!Array.isArray(object.dimensionHeaders)) + throw TypeError(".google.analytics.data.v1alpha.RunReportResponse.dimensionHeaders: array expected"); + message.dimensionHeaders = []; + for (var i = 0; i < object.dimensionHeaders.length; ++i) { + if (typeof object.dimensionHeaders[i] !== "object") + throw TypeError(".google.analytics.data.v1alpha.RunReportResponse.dimensionHeaders: object expected"); + message.dimensionHeaders[i] = $root.google.analytics.data.v1alpha.DimensionHeader.fromObject(object.dimensionHeaders[i]); + } + } + if (object.metricHeaders) { + if (!Array.isArray(object.metricHeaders)) + throw TypeError(".google.analytics.data.v1alpha.RunReportResponse.metricHeaders: array expected"); + message.metricHeaders = []; + for (var i = 0; i < object.metricHeaders.length; ++i) { + if (typeof object.metricHeaders[i] !== "object") + throw TypeError(".google.analytics.data.v1alpha.RunReportResponse.metricHeaders: object expected"); + message.metricHeaders[i] = $root.google.analytics.data.v1alpha.MetricHeader.fromObject(object.metricHeaders[i]); + } + } + if (object.rows) { + if (!Array.isArray(object.rows)) + throw TypeError(".google.analytics.data.v1alpha.RunReportResponse.rows: array expected"); + message.rows = []; + for (var i = 0; i < object.rows.length; ++i) { + if (typeof object.rows[i] !== "object") + throw TypeError(".google.analytics.data.v1alpha.RunReportResponse.rows: object expected"); + message.rows[i] = $root.google.analytics.data.v1alpha.Row.fromObject(object.rows[i]); + } + } + if (object.totals) { + if (!Array.isArray(object.totals)) + throw TypeError(".google.analytics.data.v1alpha.RunReportResponse.totals: array expected"); + message.totals = []; + for (var i = 0; i < object.totals.length; ++i) { + if (typeof object.totals[i] !== "object") + throw TypeError(".google.analytics.data.v1alpha.RunReportResponse.totals: object expected"); + message.totals[i] = $root.google.analytics.data.v1alpha.Row.fromObject(object.totals[i]); + } + } + if (object.maximums) { + if (!Array.isArray(object.maximums)) + throw TypeError(".google.analytics.data.v1alpha.RunReportResponse.maximums: array expected"); + message.maximums = []; + for (var i = 0; i < object.maximums.length; ++i) { + if (typeof object.maximums[i] !== "object") + throw TypeError(".google.analytics.data.v1alpha.RunReportResponse.maximums: object expected"); + message.maximums[i] = $root.google.analytics.data.v1alpha.Row.fromObject(object.maximums[i]); + } + } + if (object.minimums) { + if (!Array.isArray(object.minimums)) + throw TypeError(".google.analytics.data.v1alpha.RunReportResponse.minimums: array expected"); + message.minimums = []; + for (var i = 0; i < object.minimums.length; ++i) { + if (typeof object.minimums[i] !== "object") + throw TypeError(".google.analytics.data.v1alpha.RunReportResponse.minimums: object expected"); + message.minimums[i] = $root.google.analytics.data.v1alpha.Row.fromObject(object.minimums[i]); + } + } + if (object.rowCount != null) + message.rowCount = object.rowCount | 0; + if (object.metadata != null) { + if (typeof object.metadata !== "object") + throw TypeError(".google.analytics.data.v1alpha.RunReportResponse.metadata: object expected"); + message.metadata = $root.google.analytics.data.v1alpha.ResponseMetaData.fromObject(object.metadata); + } + if (object.propertyQuota != null) { + if (typeof object.propertyQuota !== "object") + throw TypeError(".google.analytics.data.v1alpha.RunReportResponse.propertyQuota: object expected"); + message.propertyQuota = $root.google.analytics.data.v1alpha.PropertyQuota.fromObject(object.propertyQuota); + } + if (object.kind != null) + message.kind = String(object.kind); + if (object.nextPageToken != null) + message.nextPageToken = String(object.nextPageToken); + return message; + }; + + /** + * Creates a plain object from a RunReportResponse message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.DimensionExpression + * @memberof google.analytics.data.v1alpha.RunReportResponse * @static - * @param {google.analytics.data.v1alpha.DimensionExpression} message DimensionExpression + * @param {google.analytics.data.v1alpha.RunReportResponse} message RunReportResponse * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - DimensionExpression.toObject = function toObject(message, options) { + RunReportResponse.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (message.lowerCase != null && message.hasOwnProperty("lowerCase")) { - object.lowerCase = $root.google.analytics.data.v1alpha.DimensionExpression.CaseExpression.toObject(message.lowerCase, options); - if (options.oneofs) - object.oneExpression = "lowerCase"; + if (options.arrays || options.defaults) { + object.dimensionHeaders = []; + object.metricHeaders = []; + object.rows = []; + object.totals = []; + object.maximums = []; + object.minimums = []; } - if (message.upperCase != null && message.hasOwnProperty("upperCase")) { - object.upperCase = $root.google.analytics.data.v1alpha.DimensionExpression.CaseExpression.toObject(message.upperCase, options); - if (options.oneofs) - object.oneExpression = "upperCase"; + if (options.defaults) { + object.rowCount = 0; + object.metadata = null; + object.propertyQuota = null; + object.kind = ""; } - if (message.concatenate != null && message.hasOwnProperty("concatenate")) { - object.concatenate = $root.google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression.toObject(message.concatenate, options); + if (message.dimensionHeaders && message.dimensionHeaders.length) { + object.dimensionHeaders = []; + for (var j = 0; j < message.dimensionHeaders.length; ++j) + object.dimensionHeaders[j] = $root.google.analytics.data.v1alpha.DimensionHeader.toObject(message.dimensionHeaders[j], options); + } + if (message.metricHeaders && message.metricHeaders.length) { + object.metricHeaders = []; + for (var j = 0; j < message.metricHeaders.length; ++j) + object.metricHeaders[j] = $root.google.analytics.data.v1alpha.MetricHeader.toObject(message.metricHeaders[j], options); + } + if (message.rows && message.rows.length) { + object.rows = []; + for (var j = 0; j < message.rows.length; ++j) + object.rows[j] = $root.google.analytics.data.v1alpha.Row.toObject(message.rows[j], options); + } + if (message.totals && message.totals.length) { + object.totals = []; + for (var j = 0; j < message.totals.length; ++j) + object.totals[j] = $root.google.analytics.data.v1alpha.Row.toObject(message.totals[j], options); + } + if (message.maximums && message.maximums.length) { + object.maximums = []; + for (var j = 0; j < message.maximums.length; ++j) + object.maximums[j] = $root.google.analytics.data.v1alpha.Row.toObject(message.maximums[j], options); + } + if (message.minimums && message.minimums.length) { + object.minimums = []; + for (var j = 0; j < message.minimums.length; ++j) + object.minimums[j] = $root.google.analytics.data.v1alpha.Row.toObject(message.minimums[j], options); + } + if (message.rowCount != null && message.hasOwnProperty("rowCount")) + object.rowCount = message.rowCount; + if (message.metadata != null && message.hasOwnProperty("metadata")) + object.metadata = $root.google.analytics.data.v1alpha.ResponseMetaData.toObject(message.metadata, options); + if (message.propertyQuota != null && message.hasOwnProperty("propertyQuota")) + object.propertyQuota = $root.google.analytics.data.v1alpha.PropertyQuota.toObject(message.propertyQuota, options); + if (message.kind != null && message.hasOwnProperty("kind")) + object.kind = message.kind; + if (message.nextPageToken != null && message.hasOwnProperty("nextPageToken")) { + object.nextPageToken = message.nextPageToken; if (options.oneofs) - object.oneExpression = "concatenate"; + object._nextPageToken = "nextPageToken"; } return object; }; /** - * Converts this DimensionExpression to JSON. + * Converts this RunReportResponse to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.DimensionExpression + * @memberof google.analytics.data.v1alpha.RunReportResponse * @instance * @returns {Object.} JSON object */ - DimensionExpression.prototype.toJSON = function toJSON() { + RunReportResponse.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for DimensionExpression + * Gets the default type url for RunReportResponse * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.DimensionExpression + * @memberof google.analytics.data.v1alpha.RunReportResponse * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - DimensionExpression.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + RunReportResponse.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.analytics.data.v1alpha.DimensionExpression"; + return typeUrlPrefix + "/google.analytics.data.v1alpha.RunReportResponse"; }; - DimensionExpression.CaseExpression = (function() { + return RunReportResponse; + })(); - /** - * Properties of a CaseExpression. - * @memberof google.analytics.data.v1alpha.DimensionExpression - * @interface ICaseExpression - * @property {string|null} [dimensionName] CaseExpression dimensionName - */ + v1alpha.GetMetadataRequest = (function() { - /** - * Constructs a new CaseExpression. - * @memberof google.analytics.data.v1alpha.DimensionExpression - * @classdesc Represents a CaseExpression. - * @implements ICaseExpression - * @constructor - * @param {google.analytics.data.v1alpha.DimensionExpression.ICaseExpression=} [properties] Properties to set - */ - function CaseExpression(properties) { - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * Properties of a GetMetadataRequest. + * @memberof google.analytics.data.v1alpha + * @interface IGetMetadataRequest + * @property {string|null} [name] GetMetadataRequest name + */ - /** - * CaseExpression dimensionName. - * @member {string} dimensionName - * @memberof google.analytics.data.v1alpha.DimensionExpression.CaseExpression - * @instance - */ - CaseExpression.prototype.dimensionName = ""; + /** + * Constructs a new GetMetadataRequest. + * @memberof google.analytics.data.v1alpha + * @classdesc Represents a GetMetadataRequest. + * @implements IGetMetadataRequest + * @constructor + * @param {google.analytics.data.v1alpha.IGetMetadataRequest=} [properties] Properties to set + */ + function GetMetadataRequest(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * Creates a new CaseExpression instance using the specified properties. - * @function create - * @memberof google.analytics.data.v1alpha.DimensionExpression.CaseExpression - * @static - * @param {google.analytics.data.v1alpha.DimensionExpression.ICaseExpression=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.DimensionExpression.CaseExpression} CaseExpression instance - */ - CaseExpression.create = function create(properties) { - return new CaseExpression(properties); - }; + /** + * GetMetadataRequest name. + * @member {string} name + * @memberof google.analytics.data.v1alpha.GetMetadataRequest + * @instance + */ + GetMetadataRequest.prototype.name = ""; - /** - * Encodes the specified CaseExpression message. Does not implicitly {@link google.analytics.data.v1alpha.DimensionExpression.CaseExpression.verify|verify} messages. - * @function encode - * @memberof google.analytics.data.v1alpha.DimensionExpression.CaseExpression - * @static - * @param {google.analytics.data.v1alpha.DimensionExpression.ICaseExpression} message CaseExpression message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - CaseExpression.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.dimensionName != null && Object.hasOwnProperty.call(message, "dimensionName")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.dimensionName); - return writer; - }; + /** + * Creates a new GetMetadataRequest instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1alpha.GetMetadataRequest + * @static + * @param {google.analytics.data.v1alpha.IGetMetadataRequest=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.GetMetadataRequest} GetMetadataRequest instance + */ + GetMetadataRequest.create = function create(properties) { + return new GetMetadataRequest(properties); + }; - /** - * Encodes the specified CaseExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.DimensionExpression.CaseExpression.verify|verify} messages. - * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.DimensionExpression.CaseExpression - * @static - * @param {google.analytics.data.v1alpha.DimensionExpression.ICaseExpression} message CaseExpression message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - CaseExpression.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * Encodes the specified GetMetadataRequest message. Does not implicitly {@link google.analytics.data.v1alpha.GetMetadataRequest.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1alpha.GetMetadataRequest + * @static + * @param {google.analytics.data.v1alpha.IGetMetadataRequest} message GetMetadataRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetMetadataRequest.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; + }; - /** - * Decodes a CaseExpression message from the specified reader or buffer. - * @function decode - * @memberof google.analytics.data.v1alpha.DimensionExpression.CaseExpression - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.DimensionExpression.CaseExpression} CaseExpression - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - CaseExpression.decode = function decode(reader, length, error) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.DimensionExpression.CaseExpression(); - while (reader.pos < end) { - var tag = reader.uint32(); - if (tag === error) - break; - switch (tag >>> 3) { - case 1: { - message.dimensionName = reader.string(); - break; - } - default: - reader.skipType(tag & 7); + /** + * Encodes the specified GetMetadataRequest message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.GetMetadataRequest.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1alpha.GetMetadataRequest + * @static + * @param {google.analytics.data.v1alpha.IGetMetadataRequest} message GetMetadataRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetMetadataRequest.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a GetMetadataRequest message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1alpha.GetMetadataRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1alpha.GetMetadataRequest} GetMetadataRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetMetadataRequest.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.GetMetadataRequest(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.name = reader.string(); break; } + default: + reader.skipType(tag & 7); + break; } - return message; - }; - - /** - * Decodes a CaseExpression message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.DimensionExpression.CaseExpression - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.DimensionExpression.CaseExpression} CaseExpression - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - CaseExpression.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + } + return message; + }; - /** - * Verifies a CaseExpression message. - * @function verify - * @memberof google.analytics.data.v1alpha.DimensionExpression.CaseExpression - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - CaseExpression.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.dimensionName != null && message.hasOwnProperty("dimensionName")) - if (!$util.isString(message.dimensionName)) - return "dimensionName: string expected"; - return null; - }; + /** + * Decodes a GetMetadataRequest message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1alpha.GetMetadataRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1alpha.GetMetadataRequest} GetMetadataRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetMetadataRequest.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Creates a CaseExpression message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.analytics.data.v1alpha.DimensionExpression.CaseExpression - * @static - * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.DimensionExpression.CaseExpression} CaseExpression - */ - CaseExpression.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.DimensionExpression.CaseExpression) - return object; - var message = new $root.google.analytics.data.v1alpha.DimensionExpression.CaseExpression(); - if (object.dimensionName != null) - message.dimensionName = String(object.dimensionName); - return message; - }; + /** + * Verifies a GetMetadataRequest message. + * @function verify + * @memberof google.analytics.data.v1alpha.GetMetadataRequest + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + GetMetadataRequest.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 plain object from a CaseExpression message. Also converts values to other types if specified. - * @function toObject - * @memberof google.analytics.data.v1alpha.DimensionExpression.CaseExpression - * @static - * @param {google.analytics.data.v1alpha.DimensionExpression.CaseExpression} message CaseExpression - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - CaseExpression.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) - object.dimensionName = ""; - if (message.dimensionName != null && message.hasOwnProperty("dimensionName")) - object.dimensionName = message.dimensionName; + /** + * Creates a GetMetadataRequest message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1alpha.GetMetadataRequest + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1alpha.GetMetadataRequest} GetMetadataRequest + */ + GetMetadataRequest.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.GetMetadataRequest) return object; - }; - - /** - * Converts this CaseExpression to JSON. - * @function toJSON - * @memberof google.analytics.data.v1alpha.DimensionExpression.CaseExpression - * @instance - * @returns {Object.} JSON object - */ - CaseExpression.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + var message = new $root.google.analytics.data.v1alpha.GetMetadataRequest(); + if (object.name != null) + message.name = String(object.name); + return message; + }; - /** - * Gets the default type url for CaseExpression - * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.DimensionExpression.CaseExpression - * @static - * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns {string} The default type url - */ - CaseExpression.getTypeUrl = function getTypeUrl(typeUrlPrefix) { - if (typeUrlPrefix === undefined) { - typeUrlPrefix = "type.googleapis.com"; - } - return typeUrlPrefix + "/google.analytics.data.v1alpha.DimensionExpression.CaseExpression"; - }; + /** + * Creates a plain object from a GetMetadataRequest message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1alpha.GetMetadataRequest + * @static + * @param {google.analytics.data.v1alpha.GetMetadataRequest} message GetMetadataRequest + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + GetMetadataRequest.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; + }; - return CaseExpression; - })(); - - DimensionExpression.ConcatenateExpression = (function() { - - /** - * Properties of a ConcatenateExpression. - * @memberof google.analytics.data.v1alpha.DimensionExpression - * @interface IConcatenateExpression - * @property {Array.|null} [dimensionNames] ConcatenateExpression dimensionNames - * @property {string|null} [delimiter] ConcatenateExpression delimiter - */ + /** + * Converts this GetMetadataRequest to JSON. + * @function toJSON + * @memberof google.analytics.data.v1alpha.GetMetadataRequest + * @instance + * @returns {Object.} JSON object + */ + GetMetadataRequest.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * Constructs a new ConcatenateExpression. - * @memberof google.analytics.data.v1alpha.DimensionExpression - * @classdesc Represents a ConcatenateExpression. - * @implements IConcatenateExpression - * @constructor - * @param {google.analytics.data.v1alpha.DimensionExpression.IConcatenateExpression=} [properties] Properties to set - */ - function ConcatenateExpression(properties) { - this.dimensionNames = []; - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; + /** + * Gets the default type url for GetMetadataRequest + * @function getTypeUrl + * @memberof google.analytics.data.v1alpha.GetMetadataRequest + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + GetMetadataRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; } + return typeUrlPrefix + "/google.analytics.data.v1alpha.GetMetadataRequest"; + }; - /** - * ConcatenateExpression dimensionNames. - * @member {Array.} dimensionNames - * @memberof google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression - * @instance - */ - ConcatenateExpression.prototype.dimensionNames = $util.emptyArray; + return GetMetadataRequest; + })(); - /** - * ConcatenateExpression delimiter. - * @member {string} delimiter - * @memberof google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression - * @instance - */ - ConcatenateExpression.prototype.delimiter = ""; + v1alpha.Metadata = (function() { - /** - * Creates a new ConcatenateExpression instance using the specified properties. - * @function create - * @memberof google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression - * @static - * @param {google.analytics.data.v1alpha.DimensionExpression.IConcatenateExpression=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression} ConcatenateExpression instance - */ - ConcatenateExpression.create = function create(properties) { - return new ConcatenateExpression(properties); - }; + /** + * Properties of a Metadata. + * @memberof google.analytics.data.v1alpha + * @interface IMetadata + * @property {string|null} [name] Metadata name + * @property {Array.|null} [dimensions] Metadata dimensions + * @property {Array.|null} [metrics] Metadata metrics + * @property {Array.|null} [comparisons] Metadata comparisons + * @property {Array.|null} [conversions] Metadata conversions + */ - /** - * Encodes the specified ConcatenateExpression message. Does not implicitly {@link google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression.verify|verify} messages. - * @function encode - * @memberof google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression - * @static - * @param {google.analytics.data.v1alpha.DimensionExpression.IConcatenateExpression} message ConcatenateExpression message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - ConcatenateExpression.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.dimensionNames != null && message.dimensionNames.length) - for (var i = 0; i < message.dimensionNames.length; ++i) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.dimensionNames[i]); - if (message.delimiter != null && Object.hasOwnProperty.call(message, "delimiter")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.delimiter); - return writer; - }; + /** + * Constructs a new Metadata. + * @memberof google.analytics.data.v1alpha + * @classdesc Represents a Metadata. + * @implements IMetadata + * @constructor + * @param {google.analytics.data.v1alpha.IMetadata=} [properties] Properties to set + */ + function Metadata(properties) { + this.dimensions = []; + this.metrics = []; + this.comparisons = []; + this.conversions = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * Encodes the specified ConcatenateExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression.verify|verify} messages. - * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression - * @static - * @param {google.analytics.data.v1alpha.DimensionExpression.IConcatenateExpression} message ConcatenateExpression message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - ConcatenateExpression.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * Metadata name. + * @member {string} name + * @memberof google.analytics.data.v1alpha.Metadata + * @instance + */ + Metadata.prototype.name = ""; - /** - * Decodes a ConcatenateExpression message from the specified reader or buffer. - * @function decode - * @memberof google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression} ConcatenateExpression - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - ConcatenateExpression.decode = function decode(reader, length, error) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression(); - while (reader.pos < end) { - var tag = reader.uint32(); - if (tag === error) - break; - switch (tag >>> 3) { - case 1: { - if (!(message.dimensionNames && message.dimensionNames.length)) - message.dimensionNames = []; - message.dimensionNames.push(reader.string()); - break; - } - case 2: { - message.delimiter = reader.string(); - break; - } - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + /** + * Metadata dimensions. + * @member {Array.} dimensions + * @memberof google.analytics.data.v1alpha.Metadata + * @instance + */ + Metadata.prototype.dimensions = $util.emptyArray; - /** - * Decodes a ConcatenateExpression message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression} ConcatenateExpression - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - ConcatenateExpression.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * Metadata metrics. + * @member {Array.} metrics + * @memberof google.analytics.data.v1alpha.Metadata + * @instance + */ + Metadata.prototype.metrics = $util.emptyArray; - /** - * Verifies a ConcatenateExpression message. - * @function verify - * @memberof google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - ConcatenateExpression.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.dimensionNames != null && message.hasOwnProperty("dimensionNames")) { - if (!Array.isArray(message.dimensionNames)) - return "dimensionNames: array expected"; - for (var i = 0; i < message.dimensionNames.length; ++i) - if (!$util.isString(message.dimensionNames[i])) - return "dimensionNames: string[] expected"; - } - if (message.delimiter != null && message.hasOwnProperty("delimiter")) - if (!$util.isString(message.delimiter)) - return "delimiter: string expected"; - return null; - }; + /** + * Metadata comparisons. + * @member {Array.} comparisons + * @memberof google.analytics.data.v1alpha.Metadata + * @instance + */ + Metadata.prototype.comparisons = $util.emptyArray; - /** - * Creates a ConcatenateExpression message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression - * @static - * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression} ConcatenateExpression - */ - ConcatenateExpression.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression) - return object; - var message = new $root.google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression(); - if (object.dimensionNames) { - if (!Array.isArray(object.dimensionNames)) - throw TypeError(".google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression.dimensionNames: array expected"); - message.dimensionNames = []; - for (var i = 0; i < object.dimensionNames.length; ++i) - message.dimensionNames[i] = String(object.dimensionNames[i]); - } - if (object.delimiter != null) - message.delimiter = String(object.delimiter); - return message; - }; - - /** - * Creates a plain object from a ConcatenateExpression message. Also converts values to other types if specified. - * @function toObject - * @memberof google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression - * @static - * @param {google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression} message ConcatenateExpression - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - ConcatenateExpression.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.arrays || options.defaults) - object.dimensionNames = []; - if (options.defaults) - object.delimiter = ""; - if (message.dimensionNames && message.dimensionNames.length) { - object.dimensionNames = []; - for (var j = 0; j < message.dimensionNames.length; ++j) - object.dimensionNames[j] = message.dimensionNames[j]; - } - if (message.delimiter != null && message.hasOwnProperty("delimiter")) - object.delimiter = message.delimiter; - return object; - }; - - /** - * Converts this ConcatenateExpression to JSON. - * @function toJSON - * @memberof google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression - * @instance - * @returns {Object.} JSON object - */ - ConcatenateExpression.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; - - /** - * Gets the default type url for ConcatenateExpression - * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression - * @static - * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns {string} The default type url - */ - ConcatenateExpression.getTypeUrl = function getTypeUrl(typeUrlPrefix) { - if (typeUrlPrefix === undefined) { - typeUrlPrefix = "type.googleapis.com"; - } - return typeUrlPrefix + "/google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression"; - }; - - return ConcatenateExpression; - })(); - - return DimensionExpression; - })(); - - v1alpha.Metric = (function() { - - /** - * Properties of a Metric. - * @memberof google.analytics.data.v1alpha - * @interface IMetric - * @property {string|null} [name] Metric name - * @property {string|null} [expression] Metric expression - * @property {boolean|null} [invisible] Metric invisible - */ - - /** - * Constructs a new Metric. - * @memberof google.analytics.data.v1alpha - * @classdesc Represents a Metric. - * @implements IMetric - * @constructor - * @param {google.analytics.data.v1alpha.IMetric=} [properties] Properties to set - */ - function Metric(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]]; - } - - /** - * Metric name. - * @member {string} name - * @memberof google.analytics.data.v1alpha.Metric - * @instance - */ - Metric.prototype.name = ""; - - /** - * Metric expression. - * @member {string} expression - * @memberof google.analytics.data.v1alpha.Metric - * @instance - */ - Metric.prototype.expression = ""; - - /** - * Metric invisible. - * @member {boolean} invisible - * @memberof google.analytics.data.v1alpha.Metric - * @instance - */ - Metric.prototype.invisible = false; + /** + * Metadata conversions. + * @member {Array.} conversions + * @memberof google.analytics.data.v1alpha.Metadata + * @instance + */ + Metadata.prototype.conversions = $util.emptyArray; /** - * Creates a new Metric instance using the specified properties. + * Creates a new Metadata instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.Metric + * @memberof google.analytics.data.v1alpha.Metadata * @static - * @param {google.analytics.data.v1alpha.IMetric=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.Metric} Metric instance + * @param {google.analytics.data.v1alpha.IMetadata=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.Metadata} Metadata instance */ - Metric.create = function create(properties) { - return new Metric(properties); + Metadata.create = function create(properties) { + return new Metadata(properties); }; /** - * Encodes the specified Metric message. Does not implicitly {@link google.analytics.data.v1alpha.Metric.verify|verify} messages. + * Encodes the specified Metadata message. Does not implicitly {@link google.analytics.data.v1alpha.Metadata.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.Metric + * @memberof google.analytics.data.v1alpha.Metadata * @static - * @param {google.analytics.data.v1alpha.IMetric} message Metric message or plain object to encode + * @param {google.analytics.data.v1alpha.IMetadata} message Metadata message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Metric.encode = function encode(message, writer) { + Metadata.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); + if (message.dimensions != null && message.dimensions.length) + for (var i = 0; i < message.dimensions.length; ++i) + $root.google.analytics.data.v1alpha.DimensionMetadata.encode(message.dimensions[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.metrics != null && message.metrics.length) + for (var i = 0; i < message.metrics.length; ++i) + $root.google.analytics.data.v1alpha.MetricMetadata.encode(message.metrics[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); if (message.name != null && Object.hasOwnProperty.call(message, "name")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); - if (message.expression != null && Object.hasOwnProperty.call(message, "expression")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.expression); - if (message.invisible != null && Object.hasOwnProperty.call(message, "invisible")) - writer.uint32(/* id 3, wireType 0 =*/24).bool(message.invisible); + writer.uint32(/* id 3, wireType 2 =*/26).string(message.name); + if (message.comparisons != null && message.comparisons.length) + for (var i = 0; i < message.comparisons.length; ++i) + $root.google.analytics.data.v1alpha.ComparisonMetadata.encode(message.comparisons[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.conversions != null && message.conversions.length) + for (var i = 0; i < message.conversions.length; ++i) + $root.google.analytics.data.v1alpha.ConversionMetadata.encode(message.conversions[i], writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); return writer; }; /** - * Encodes the specified Metric message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.Metric.verify|verify} messages. + * Encodes the specified Metadata message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.Metadata.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.Metric + * @memberof google.analytics.data.v1alpha.Metadata * @static - * @param {google.analytics.data.v1alpha.IMetric} message Metric message or plain object to encode + * @param {google.analytics.data.v1alpha.IMetadata} message Metadata message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Metric.encodeDelimited = function encodeDelimited(message, writer) { + Metadata.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a Metric message from the specified reader or buffer. + * Decodes a Metadata message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.Metric + * @memberof google.analytics.data.v1alpha.Metadata * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.Metric} Metric + * @returns {google.analytics.data.v1alpha.Metadata} Metadata * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Metric.decode = function decode(reader, length, error) { + Metadata.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.Metric(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.Metadata(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { - case 1: { + case 3: { message.name = reader.string(); break; } + case 1: { + if (!(message.dimensions && message.dimensions.length)) + message.dimensions = []; + message.dimensions.push($root.google.analytics.data.v1alpha.DimensionMetadata.decode(reader, reader.uint32())); + break; + } case 2: { - message.expression = reader.string(); + if (!(message.metrics && message.metrics.length)) + message.metrics = []; + message.metrics.push($root.google.analytics.data.v1alpha.MetricMetadata.decode(reader, reader.uint32())); break; } - case 3: { - message.invisible = reader.bool(); + case 4: { + if (!(message.comparisons && message.comparisons.length)) + message.comparisons = []; + message.comparisons.push($root.google.analytics.data.v1alpha.ComparisonMetadata.decode(reader, reader.uint32())); + break; + } + case 5: { + if (!(message.conversions && message.conversions.length)) + message.conversions = []; + message.conversions.push($root.google.analytics.data.v1alpha.ConversionMetadata.decode(reader, reader.uint32())); break; } default: @@ -24778,142 +24576,226 @@ }; /** - * Decodes a Metric message from the specified reader or buffer, length delimited. + * Decodes a Metadata message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.Metric + * @memberof google.analytics.data.v1alpha.Metadata * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.Metric} Metric + * @returns {google.analytics.data.v1alpha.Metadata} Metadata * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Metric.decodeDelimited = function decodeDelimited(reader) { + Metadata.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a Metric message. + * Verifies a Metadata message. * @function verify - * @memberof google.analytics.data.v1alpha.Metric + * @memberof google.analytics.data.v1alpha.Metadata * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Metric.verify = function verify(message) { + Metadata.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.expression != null && message.hasOwnProperty("expression")) - if (!$util.isString(message.expression)) - return "expression: string expected"; - if (message.invisible != null && message.hasOwnProperty("invisible")) - if (typeof message.invisible !== "boolean") - return "invisible: boolean expected"; + if (message.dimensions != null && message.hasOwnProperty("dimensions")) { + if (!Array.isArray(message.dimensions)) + return "dimensions: array expected"; + for (var i = 0; i < message.dimensions.length; ++i) { + var error = $root.google.analytics.data.v1alpha.DimensionMetadata.verify(message.dimensions[i]); + if (error) + return "dimensions." + error; + } + } + if (message.metrics != null && message.hasOwnProperty("metrics")) { + if (!Array.isArray(message.metrics)) + return "metrics: array expected"; + for (var i = 0; i < message.metrics.length; ++i) { + var error = $root.google.analytics.data.v1alpha.MetricMetadata.verify(message.metrics[i]); + if (error) + return "metrics." + error; + } + } + if (message.comparisons != null && message.hasOwnProperty("comparisons")) { + if (!Array.isArray(message.comparisons)) + return "comparisons: array expected"; + for (var i = 0; i < message.comparisons.length; ++i) { + var error = $root.google.analytics.data.v1alpha.ComparisonMetadata.verify(message.comparisons[i]); + if (error) + return "comparisons." + error; + } + } + if (message.conversions != null && message.hasOwnProperty("conversions")) { + if (!Array.isArray(message.conversions)) + return "conversions: array expected"; + for (var i = 0; i < message.conversions.length; ++i) { + var error = $root.google.analytics.data.v1alpha.ConversionMetadata.verify(message.conversions[i]); + if (error) + return "conversions." + error; + } + } return null; }; /** - * Creates a Metric message from a plain object. Also converts values to their respective internal types. + * Creates a Metadata message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.Metric + * @memberof google.analytics.data.v1alpha.Metadata * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.Metric} Metric + * @returns {google.analytics.data.v1alpha.Metadata} Metadata */ - Metric.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.Metric) + Metadata.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.Metadata) return object; - var message = new $root.google.analytics.data.v1alpha.Metric(); + var message = new $root.google.analytics.data.v1alpha.Metadata(); if (object.name != null) message.name = String(object.name); - if (object.expression != null) - message.expression = String(object.expression); - if (object.invisible != null) - message.invisible = Boolean(object.invisible); + if (object.dimensions) { + if (!Array.isArray(object.dimensions)) + throw TypeError(".google.analytics.data.v1alpha.Metadata.dimensions: array expected"); + message.dimensions = []; + for (var i = 0; i < object.dimensions.length; ++i) { + if (typeof object.dimensions[i] !== "object") + throw TypeError(".google.analytics.data.v1alpha.Metadata.dimensions: object expected"); + message.dimensions[i] = $root.google.analytics.data.v1alpha.DimensionMetadata.fromObject(object.dimensions[i]); + } + } + if (object.metrics) { + if (!Array.isArray(object.metrics)) + throw TypeError(".google.analytics.data.v1alpha.Metadata.metrics: array expected"); + message.metrics = []; + for (var i = 0; i < object.metrics.length; ++i) { + if (typeof object.metrics[i] !== "object") + throw TypeError(".google.analytics.data.v1alpha.Metadata.metrics: object expected"); + message.metrics[i] = $root.google.analytics.data.v1alpha.MetricMetadata.fromObject(object.metrics[i]); + } + } + if (object.comparisons) { + if (!Array.isArray(object.comparisons)) + throw TypeError(".google.analytics.data.v1alpha.Metadata.comparisons: array expected"); + message.comparisons = []; + for (var i = 0; i < object.comparisons.length; ++i) { + if (typeof object.comparisons[i] !== "object") + throw TypeError(".google.analytics.data.v1alpha.Metadata.comparisons: object expected"); + message.comparisons[i] = $root.google.analytics.data.v1alpha.ComparisonMetadata.fromObject(object.comparisons[i]); + } + } + if (object.conversions) { + if (!Array.isArray(object.conversions)) + throw TypeError(".google.analytics.data.v1alpha.Metadata.conversions: array expected"); + message.conversions = []; + for (var i = 0; i < object.conversions.length; ++i) { + if (typeof object.conversions[i] !== "object") + throw TypeError(".google.analytics.data.v1alpha.Metadata.conversions: object expected"); + message.conversions[i] = $root.google.analytics.data.v1alpha.ConversionMetadata.fromObject(object.conversions[i]); + } + } return message; }; /** - * Creates a plain object from a Metric message. Also converts values to other types if specified. + * Creates a plain object from a Metadata message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.Metric + * @memberof google.analytics.data.v1alpha.Metadata * @static - * @param {google.analytics.data.v1alpha.Metric} message Metric + * @param {google.analytics.data.v1alpha.Metadata} message Metadata * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - Metric.toObject = function toObject(message, options) { + Metadata.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.defaults) { + if (options.arrays || options.defaults) { + object.dimensions = []; + object.metrics = []; + object.comparisons = []; + object.conversions = []; + } + if (options.defaults) object.name = ""; - object.expression = ""; - object.invisible = false; + if (message.dimensions && message.dimensions.length) { + object.dimensions = []; + for (var j = 0; j < message.dimensions.length; ++j) + object.dimensions[j] = $root.google.analytics.data.v1alpha.DimensionMetadata.toObject(message.dimensions[j], options); + } + if (message.metrics && message.metrics.length) { + object.metrics = []; + for (var j = 0; j < message.metrics.length; ++j) + object.metrics[j] = $root.google.analytics.data.v1alpha.MetricMetadata.toObject(message.metrics[j], options); } if (message.name != null && message.hasOwnProperty("name")) object.name = message.name; - if (message.expression != null && message.hasOwnProperty("expression")) - object.expression = message.expression; - if (message.invisible != null && message.hasOwnProperty("invisible")) - object.invisible = message.invisible; + if (message.comparisons && message.comparisons.length) { + object.comparisons = []; + for (var j = 0; j < message.comparisons.length; ++j) + object.comparisons[j] = $root.google.analytics.data.v1alpha.ComparisonMetadata.toObject(message.comparisons[j], options); + } + if (message.conversions && message.conversions.length) { + object.conversions = []; + for (var j = 0; j < message.conversions.length; ++j) + object.conversions[j] = $root.google.analytics.data.v1alpha.ConversionMetadata.toObject(message.conversions[j], options); + } return object; }; /** - * Converts this Metric to JSON. + * Converts this Metadata to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.Metric + * @memberof google.analytics.data.v1alpha.Metadata * @instance * @returns {Object.} JSON object */ - Metric.prototype.toJSON = function toJSON() { + Metadata.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for Metric + * Gets the default type url for Metadata * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.Metric + * @memberof google.analytics.data.v1alpha.Metadata * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - Metric.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + Metadata.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.analytics.data.v1alpha.Metric"; + return typeUrlPrefix + "/google.analytics.data.v1alpha.Metadata"; }; - return Metric; + return Metadata; })(); - v1alpha.FilterExpression = (function() { + v1alpha.DateRange = (function() { /** - * Properties of a FilterExpression. + * Properties of a DateRange. * @memberof google.analytics.data.v1alpha - * @interface IFilterExpression - * @property {google.analytics.data.v1alpha.IFilterExpressionList|null} [andGroup] FilterExpression andGroup - * @property {google.analytics.data.v1alpha.IFilterExpressionList|null} [orGroup] FilterExpression orGroup - * @property {google.analytics.data.v1alpha.IFilterExpression|null} [notExpression] FilterExpression notExpression - * @property {google.analytics.data.v1alpha.IFilter|null} [filter] FilterExpression filter + * @interface IDateRange + * @property {string|null} [startDate] DateRange startDate + * @property {string|null} [endDate] DateRange endDate + * @property {string|null} [name] DateRange name */ /** - * Constructs a new FilterExpression. + * Constructs a new DateRange. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a FilterExpression. - * @implements IFilterExpression + * @classdesc Represents a DateRange. + * @implements IDateRange * @constructor - * @param {google.analytics.data.v1alpha.IFilterExpression=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IDateRange=} [properties] Properties to set */ - function FilterExpression(properties) { + function DateRange(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -24921,133 +24803,105 @@ } /** - * FilterExpression andGroup. - * @member {google.analytics.data.v1alpha.IFilterExpressionList|null|undefined} andGroup - * @memberof google.analytics.data.v1alpha.FilterExpression - * @instance - */ - FilterExpression.prototype.andGroup = null; - - /** - * FilterExpression orGroup. - * @member {google.analytics.data.v1alpha.IFilterExpressionList|null|undefined} orGroup - * @memberof google.analytics.data.v1alpha.FilterExpression - * @instance - */ - FilterExpression.prototype.orGroup = null; - - /** - * FilterExpression notExpression. - * @member {google.analytics.data.v1alpha.IFilterExpression|null|undefined} notExpression - * @memberof google.analytics.data.v1alpha.FilterExpression + * DateRange startDate. + * @member {string} startDate + * @memberof google.analytics.data.v1alpha.DateRange * @instance */ - FilterExpression.prototype.notExpression = null; + DateRange.prototype.startDate = ""; /** - * FilterExpression filter. - * @member {google.analytics.data.v1alpha.IFilter|null|undefined} filter - * @memberof google.analytics.data.v1alpha.FilterExpression + * DateRange endDate. + * @member {string} endDate + * @memberof google.analytics.data.v1alpha.DateRange * @instance */ - FilterExpression.prototype.filter = null; - - // OneOf field names bound to virtual getters and setters - var $oneOfFields; + DateRange.prototype.endDate = ""; /** - * FilterExpression expr. - * @member {"andGroup"|"orGroup"|"notExpression"|"filter"|undefined} expr - * @memberof google.analytics.data.v1alpha.FilterExpression + * DateRange name. + * @member {string} name + * @memberof google.analytics.data.v1alpha.DateRange * @instance */ - Object.defineProperty(FilterExpression.prototype, "expr", { - get: $util.oneOfGetter($oneOfFields = ["andGroup", "orGroup", "notExpression", "filter"]), - set: $util.oneOfSetter($oneOfFields) - }); + DateRange.prototype.name = ""; /** - * Creates a new FilterExpression instance using the specified properties. + * Creates a new DateRange instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.FilterExpression + * @memberof google.analytics.data.v1alpha.DateRange * @static - * @param {google.analytics.data.v1alpha.IFilterExpression=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.FilterExpression} FilterExpression instance + * @param {google.analytics.data.v1alpha.IDateRange=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.DateRange} DateRange instance */ - FilterExpression.create = function create(properties) { - return new FilterExpression(properties); + DateRange.create = function create(properties) { + return new DateRange(properties); }; /** - * Encodes the specified FilterExpression message. Does not implicitly {@link google.analytics.data.v1alpha.FilterExpression.verify|verify} messages. + * Encodes the specified DateRange message. Does not implicitly {@link google.analytics.data.v1alpha.DateRange.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.FilterExpression + * @memberof google.analytics.data.v1alpha.DateRange * @static - * @param {google.analytics.data.v1alpha.IFilterExpression} message FilterExpression message or plain object to encode + * @param {google.analytics.data.v1alpha.IDateRange} message DateRange message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - FilterExpression.encode = function encode(message, writer) { + DateRange.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.andGroup != null && Object.hasOwnProperty.call(message, "andGroup")) - $root.google.analytics.data.v1alpha.FilterExpressionList.encode(message.andGroup, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.orGroup != null && Object.hasOwnProperty.call(message, "orGroup")) - $root.google.analytics.data.v1alpha.FilterExpressionList.encode(message.orGroup, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.notExpression != null && Object.hasOwnProperty.call(message, "notExpression")) - $root.google.analytics.data.v1alpha.FilterExpression.encode(message.notExpression, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); - if (message.filter != null && Object.hasOwnProperty.call(message, "filter")) - $root.google.analytics.data.v1alpha.Filter.encode(message.filter, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.startDate != null && Object.hasOwnProperty.call(message, "startDate")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.startDate); + if (message.endDate != null && Object.hasOwnProperty.call(message, "endDate")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.endDate); + if (message.name != null && Object.hasOwnProperty.call(message, "name")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.name); return writer; }; /** - * Encodes the specified FilterExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FilterExpression.verify|verify} messages. + * Encodes the specified DateRange message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.DateRange.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.FilterExpression + * @memberof google.analytics.data.v1alpha.DateRange * @static - * @param {google.analytics.data.v1alpha.IFilterExpression} message FilterExpression message or plain object to encode + * @param {google.analytics.data.v1alpha.IDateRange} message DateRange message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - FilterExpression.encodeDelimited = function encodeDelimited(message, writer) { + DateRange.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a FilterExpression message from the specified reader or buffer. + * Decodes a DateRange message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.FilterExpression + * @memberof google.analytics.data.v1alpha.DateRange * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.FilterExpression} FilterExpression + * @returns {google.analytics.data.v1alpha.DateRange} DateRange * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - FilterExpression.decode = function decode(reader, length, error) { + DateRange.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.FilterExpression(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.DateRange(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { case 1: { - message.andGroup = $root.google.analytics.data.v1alpha.FilterExpressionList.decode(reader, reader.uint32()); + message.startDate = reader.string(); break; } case 2: { - message.orGroup = $root.google.analytics.data.v1alpha.FilterExpressionList.decode(reader, reader.uint32()); + message.endDate = reader.string(); break; } case 3: { - message.notExpression = $root.google.analytics.data.v1alpha.FilterExpression.decode(reader, reader.uint32()); - break; - } - case 4: { - message.filter = $root.google.analytics.data.v1alpha.Filter.decode(reader, reader.uint32()); + message.name = reader.string(); break; } default: @@ -25059,193 +24913,140 @@ }; /** - * Decodes a FilterExpression message from the specified reader or buffer, length delimited. + * Decodes a DateRange message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.FilterExpression + * @memberof google.analytics.data.v1alpha.DateRange * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.FilterExpression} FilterExpression + * @returns {google.analytics.data.v1alpha.DateRange} DateRange * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - FilterExpression.decodeDelimited = function decodeDelimited(reader) { + DateRange.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a FilterExpression message. + * Verifies a DateRange message. * @function verify - * @memberof google.analytics.data.v1alpha.FilterExpression + * @memberof google.analytics.data.v1alpha.DateRange * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - FilterExpression.verify = function verify(message) { + DateRange.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - var properties = {}; - if (message.andGroup != null && message.hasOwnProperty("andGroup")) { - properties.expr = 1; - { - var error = $root.google.analytics.data.v1alpha.FilterExpressionList.verify(message.andGroup); - if (error) - return "andGroup." + error; - } - } - if (message.orGroup != null && message.hasOwnProperty("orGroup")) { - if (properties.expr === 1) - return "expr: multiple values"; - properties.expr = 1; - { - var error = $root.google.analytics.data.v1alpha.FilterExpressionList.verify(message.orGroup); - if (error) - return "orGroup." + error; - } - } - if (message.notExpression != null && message.hasOwnProperty("notExpression")) { - if (properties.expr === 1) - return "expr: multiple values"; - properties.expr = 1; - { - var error = $root.google.analytics.data.v1alpha.FilterExpression.verify(message.notExpression); - if (error) - return "notExpression." + error; - } - } - if (message.filter != null && message.hasOwnProperty("filter")) { - if (properties.expr === 1) - return "expr: multiple values"; - properties.expr = 1; - { - var error = $root.google.analytics.data.v1alpha.Filter.verify(message.filter); - if (error) - return "filter." + error; - } - } + if (message.startDate != null && message.hasOwnProperty("startDate")) + if (!$util.isString(message.startDate)) + return "startDate: string expected"; + if (message.endDate != null && message.hasOwnProperty("endDate")) + if (!$util.isString(message.endDate)) + return "endDate: string expected"; + if (message.name != null && message.hasOwnProperty("name")) + if (!$util.isString(message.name)) + return "name: string expected"; return null; }; /** - * Creates a FilterExpression message from a plain object. Also converts values to their respective internal types. + * Creates a DateRange message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.FilterExpression + * @memberof google.analytics.data.v1alpha.DateRange * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.FilterExpression} FilterExpression + * @returns {google.analytics.data.v1alpha.DateRange} DateRange */ - FilterExpression.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.FilterExpression) + DateRange.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.DateRange) return object; - var message = new $root.google.analytics.data.v1alpha.FilterExpression(); - if (object.andGroup != null) { - if (typeof object.andGroup !== "object") - throw TypeError(".google.analytics.data.v1alpha.FilterExpression.andGroup: object expected"); - message.andGroup = $root.google.analytics.data.v1alpha.FilterExpressionList.fromObject(object.andGroup); - } - if (object.orGroup != null) { - if (typeof object.orGroup !== "object") - throw TypeError(".google.analytics.data.v1alpha.FilterExpression.orGroup: object expected"); - message.orGroup = $root.google.analytics.data.v1alpha.FilterExpressionList.fromObject(object.orGroup); - } - if (object.notExpression != null) { - if (typeof object.notExpression !== "object") - throw TypeError(".google.analytics.data.v1alpha.FilterExpression.notExpression: object expected"); - message.notExpression = $root.google.analytics.data.v1alpha.FilterExpression.fromObject(object.notExpression); - } - if (object.filter != null) { - if (typeof object.filter !== "object") - throw TypeError(".google.analytics.data.v1alpha.FilterExpression.filter: object expected"); - message.filter = $root.google.analytics.data.v1alpha.Filter.fromObject(object.filter); - } + var message = new $root.google.analytics.data.v1alpha.DateRange(); + if (object.startDate != null) + message.startDate = String(object.startDate); + if (object.endDate != null) + message.endDate = String(object.endDate); + if (object.name != null) + message.name = String(object.name); return message; }; /** - * Creates a plain object from a FilterExpression message. Also converts values to other types if specified. + * Creates a plain object from a DateRange message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.FilterExpression + * @memberof google.analytics.data.v1alpha.DateRange * @static - * @param {google.analytics.data.v1alpha.FilterExpression} message FilterExpression + * @param {google.analytics.data.v1alpha.DateRange} message DateRange * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - FilterExpression.toObject = function toObject(message, options) { + DateRange.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (message.andGroup != null && message.hasOwnProperty("andGroup")) { - object.andGroup = $root.google.analytics.data.v1alpha.FilterExpressionList.toObject(message.andGroup, options); - if (options.oneofs) - object.expr = "andGroup"; - } - if (message.orGroup != null && message.hasOwnProperty("orGroup")) { - object.orGroup = $root.google.analytics.data.v1alpha.FilterExpressionList.toObject(message.orGroup, options); - if (options.oneofs) - object.expr = "orGroup"; - } - if (message.notExpression != null && message.hasOwnProperty("notExpression")) { - object.notExpression = $root.google.analytics.data.v1alpha.FilterExpression.toObject(message.notExpression, options); - if (options.oneofs) - object.expr = "notExpression"; - } - if (message.filter != null && message.hasOwnProperty("filter")) { - object.filter = $root.google.analytics.data.v1alpha.Filter.toObject(message.filter, options); - if (options.oneofs) - object.expr = "filter"; + if (options.defaults) { + object.startDate = ""; + object.endDate = ""; + object.name = ""; } + if (message.startDate != null && message.hasOwnProperty("startDate")) + object.startDate = message.startDate; + if (message.endDate != null && message.hasOwnProperty("endDate")) + object.endDate = message.endDate; + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; return object; }; /** - * Converts this FilterExpression to JSON. + * Converts this DateRange to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.FilterExpression + * @memberof google.analytics.data.v1alpha.DateRange * @instance * @returns {Object.} JSON object */ - FilterExpression.prototype.toJSON = function toJSON() { + DateRange.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for FilterExpression + * Gets the default type url for DateRange * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.FilterExpression + * @memberof google.analytics.data.v1alpha.DateRange * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - FilterExpression.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + DateRange.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.analytics.data.v1alpha.FilterExpression"; + return typeUrlPrefix + "/google.analytics.data.v1alpha.DateRange"; }; - return FilterExpression; + return DateRange; })(); - v1alpha.FilterExpressionList = (function() { + v1alpha.Dimension = (function() { /** - * Properties of a FilterExpressionList. + * Properties of a Dimension. * @memberof google.analytics.data.v1alpha - * @interface IFilterExpressionList - * @property {Array.|null} [expressions] FilterExpressionList expressions + * @interface IDimension + * @property {string|null} [name] Dimension name + * @property {google.analytics.data.v1alpha.IDimensionExpression|null} [dimensionExpression] Dimension dimensionExpression */ /** - * Constructs a new FilterExpressionList. + * Constructs a new Dimension. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a FilterExpressionList. - * @implements IFilterExpressionList + * @classdesc Represents a Dimension. + * @implements IDimension * @constructor - * @param {google.analytics.data.v1alpha.IFilterExpressionList=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IDimension=} [properties] Properties to set */ - function FilterExpressionList(properties) { - this.expressions = []; + function Dimension(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -25253,80 +25054,91 @@ } /** - * FilterExpressionList expressions. - * @member {Array.} expressions - * @memberof google.analytics.data.v1alpha.FilterExpressionList + * Dimension name. + * @member {string} name + * @memberof google.analytics.data.v1alpha.Dimension * @instance */ - FilterExpressionList.prototype.expressions = $util.emptyArray; + Dimension.prototype.name = ""; /** - * Creates a new FilterExpressionList instance using the specified properties. + * Dimension dimensionExpression. + * @member {google.analytics.data.v1alpha.IDimensionExpression|null|undefined} dimensionExpression + * @memberof google.analytics.data.v1alpha.Dimension + * @instance + */ + Dimension.prototype.dimensionExpression = null; + + /** + * Creates a new Dimension instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.FilterExpressionList + * @memberof google.analytics.data.v1alpha.Dimension * @static - * @param {google.analytics.data.v1alpha.IFilterExpressionList=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.FilterExpressionList} FilterExpressionList instance + * @param {google.analytics.data.v1alpha.IDimension=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.Dimension} Dimension instance */ - FilterExpressionList.create = function create(properties) { - return new FilterExpressionList(properties); + Dimension.create = function create(properties) { + return new Dimension(properties); }; /** - * Encodes the specified FilterExpressionList message. Does not implicitly {@link google.analytics.data.v1alpha.FilterExpressionList.verify|verify} messages. + * Encodes the specified Dimension message. Does not implicitly {@link google.analytics.data.v1alpha.Dimension.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.FilterExpressionList + * @memberof google.analytics.data.v1alpha.Dimension * @static - * @param {google.analytics.data.v1alpha.IFilterExpressionList} message FilterExpressionList message or plain object to encode + * @param {google.analytics.data.v1alpha.IDimension} message Dimension message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - FilterExpressionList.encode = function encode(message, writer) { + Dimension.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.expressions != null && message.expressions.length) - for (var i = 0; i < message.expressions.length; ++i) - $root.google.analytics.data.v1alpha.FilterExpression.encode(message.expressions[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.name != null && Object.hasOwnProperty.call(message, "name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + if (message.dimensionExpression != null && Object.hasOwnProperty.call(message, "dimensionExpression")) + $root.google.analytics.data.v1alpha.DimensionExpression.encode(message.dimensionExpression, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); return writer; }; /** - * Encodes the specified FilterExpressionList message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FilterExpressionList.verify|verify} messages. + * Encodes the specified Dimension message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.Dimension.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.FilterExpressionList + * @memberof google.analytics.data.v1alpha.Dimension * @static - * @param {google.analytics.data.v1alpha.IFilterExpressionList} message FilterExpressionList message or plain object to encode + * @param {google.analytics.data.v1alpha.IDimension} message Dimension message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - FilterExpressionList.encodeDelimited = function encodeDelimited(message, writer) { + Dimension.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a FilterExpressionList message from the specified reader or buffer. + * Decodes a Dimension message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.FilterExpressionList + * @memberof google.analytics.data.v1alpha.Dimension * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.FilterExpressionList} FilterExpressionList + * @returns {google.analytics.data.v1alpha.Dimension} Dimension * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - FilterExpressionList.decode = function decode(reader, length, error) { + Dimension.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.FilterExpressionList(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.Dimension(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { case 1: { - if (!(message.expressions && message.expressions.length)) - message.expressions = []; - message.expressions.push($root.google.analytics.data.v1alpha.FilterExpression.decode(reader, reader.uint32())); + message.name = reader.string(); + break; + } + case 2: { + message.dimensionExpression = $root.google.analytics.data.v1alpha.DimensionExpression.decode(reader, reader.uint32()); break; } default: @@ -25338,144 +25150,138 @@ }; /** - * Decodes a FilterExpressionList message from the specified reader or buffer, length delimited. + * Decodes a Dimension message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.FilterExpressionList + * @memberof google.analytics.data.v1alpha.Dimension * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.FilterExpressionList} FilterExpressionList + * @returns {google.analytics.data.v1alpha.Dimension} Dimension * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - FilterExpressionList.decodeDelimited = function decodeDelimited(reader) { + Dimension.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a FilterExpressionList message. + * Verifies a Dimension message. * @function verify - * @memberof google.analytics.data.v1alpha.FilterExpressionList + * @memberof google.analytics.data.v1alpha.Dimension * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - FilterExpressionList.verify = function verify(message) { + Dimension.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.expressions != null && message.hasOwnProperty("expressions")) { - if (!Array.isArray(message.expressions)) - return "expressions: array expected"; - for (var i = 0; i < message.expressions.length; ++i) { - var error = $root.google.analytics.data.v1alpha.FilterExpression.verify(message.expressions[i]); - if (error) - return "expressions." + error; - } + if (message.name != null && message.hasOwnProperty("name")) + if (!$util.isString(message.name)) + return "name: string expected"; + if (message.dimensionExpression != null && message.hasOwnProperty("dimensionExpression")) { + var error = $root.google.analytics.data.v1alpha.DimensionExpression.verify(message.dimensionExpression); + if (error) + return "dimensionExpression." + error; } return null; }; /** - * Creates a FilterExpressionList message from a plain object. Also converts values to their respective internal types. + * Creates a Dimension message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.FilterExpressionList + * @memberof google.analytics.data.v1alpha.Dimension * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.FilterExpressionList} FilterExpressionList + * @returns {google.analytics.data.v1alpha.Dimension} Dimension */ - FilterExpressionList.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.FilterExpressionList) + Dimension.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.Dimension) return object; - var message = new $root.google.analytics.data.v1alpha.FilterExpressionList(); - if (object.expressions) { - if (!Array.isArray(object.expressions)) - throw TypeError(".google.analytics.data.v1alpha.FilterExpressionList.expressions: array expected"); - message.expressions = []; - for (var i = 0; i < object.expressions.length; ++i) { - if (typeof object.expressions[i] !== "object") - throw TypeError(".google.analytics.data.v1alpha.FilterExpressionList.expressions: object expected"); - message.expressions[i] = $root.google.analytics.data.v1alpha.FilterExpression.fromObject(object.expressions[i]); - } + var message = new $root.google.analytics.data.v1alpha.Dimension(); + if (object.name != null) + message.name = String(object.name); + if (object.dimensionExpression != null) { + if (typeof object.dimensionExpression !== "object") + throw TypeError(".google.analytics.data.v1alpha.Dimension.dimensionExpression: object expected"); + message.dimensionExpression = $root.google.analytics.data.v1alpha.DimensionExpression.fromObject(object.dimensionExpression); } return message; }; /** - * Creates a plain object from a FilterExpressionList message. Also converts values to other types if specified. + * Creates a plain object from a Dimension message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.FilterExpressionList + * @memberof google.analytics.data.v1alpha.Dimension * @static - * @param {google.analytics.data.v1alpha.FilterExpressionList} message FilterExpressionList + * @param {google.analytics.data.v1alpha.Dimension} message Dimension * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - FilterExpressionList.toObject = function toObject(message, options) { + Dimension.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.arrays || options.defaults) - object.expressions = []; - if (message.expressions && message.expressions.length) { - object.expressions = []; - for (var j = 0; j < message.expressions.length; ++j) - object.expressions[j] = $root.google.analytics.data.v1alpha.FilterExpression.toObject(message.expressions[j], options); + if (options.defaults) { + object.name = ""; + object.dimensionExpression = null; } + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + if (message.dimensionExpression != null && message.hasOwnProperty("dimensionExpression")) + object.dimensionExpression = $root.google.analytics.data.v1alpha.DimensionExpression.toObject(message.dimensionExpression, options); return object; }; /** - * Converts this FilterExpressionList to JSON. + * Converts this Dimension to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.FilterExpressionList + * @memberof google.analytics.data.v1alpha.Dimension * @instance * @returns {Object.} JSON object */ - FilterExpressionList.prototype.toJSON = function toJSON() { + Dimension.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for FilterExpressionList + * Gets the default type url for Dimension * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.FilterExpressionList + * @memberof google.analytics.data.v1alpha.Dimension * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - FilterExpressionList.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + Dimension.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.analytics.data.v1alpha.FilterExpressionList"; + return typeUrlPrefix + "/google.analytics.data.v1alpha.Dimension"; }; - return FilterExpressionList; + return Dimension; })(); - v1alpha.Filter = (function() { + v1alpha.DimensionExpression = (function() { /** - * Properties of a Filter. + * Properties of a DimensionExpression. * @memberof google.analytics.data.v1alpha - * @interface IFilter - * @property {string|null} [fieldName] Filter fieldName - * @property {google.analytics.data.v1alpha.IStringFilter|null} [stringFilter] Filter stringFilter - * @property {google.analytics.data.v1alpha.IInListFilter|null} [inListFilter] Filter inListFilter - * @property {google.analytics.data.v1alpha.INumericFilter|null} [numericFilter] Filter numericFilter - * @property {google.analytics.data.v1alpha.IBetweenFilter|null} [betweenFilter] Filter betweenFilter - * @property {google.analytics.data.v1alpha.IEmptyFilter|null} [emptyFilter] Filter emptyFilter + * @interface IDimensionExpression + * @property {google.analytics.data.v1alpha.DimensionExpression.ICaseExpression|null} [lowerCase] DimensionExpression lowerCase + * @property {google.analytics.data.v1alpha.DimensionExpression.ICaseExpression|null} [upperCase] DimensionExpression upperCase + * @property {google.analytics.data.v1alpha.DimensionExpression.IConcatenateExpression|null} [concatenate] DimensionExpression concatenate */ /** - * Constructs a new Filter. + * Constructs a new DimensionExpression. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a Filter. - * @implements IFilter + * @classdesc Represents a DimensionExpression. + * @implements IDimensionExpression * @constructor - * @param {google.analytics.data.v1alpha.IFilter=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IDimensionExpression=} [properties] Properties to set */ - function Filter(properties) { + function DimensionExpression(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -25483,161 +25289,119 @@ } /** - * Filter fieldName. - * @member {string} fieldName - * @memberof google.analytics.data.v1alpha.Filter - * @instance - */ - Filter.prototype.fieldName = ""; - - /** - * Filter stringFilter. - * @member {google.analytics.data.v1alpha.IStringFilter|null|undefined} stringFilter - * @memberof google.analytics.data.v1alpha.Filter - * @instance - */ - Filter.prototype.stringFilter = null; - - /** - * Filter inListFilter. - * @member {google.analytics.data.v1alpha.IInListFilter|null|undefined} inListFilter - * @memberof google.analytics.data.v1alpha.Filter - * @instance - */ - Filter.prototype.inListFilter = null; - - /** - * Filter numericFilter. - * @member {google.analytics.data.v1alpha.INumericFilter|null|undefined} numericFilter - * @memberof google.analytics.data.v1alpha.Filter + * DimensionExpression lowerCase. + * @member {google.analytics.data.v1alpha.DimensionExpression.ICaseExpression|null|undefined} lowerCase + * @memberof google.analytics.data.v1alpha.DimensionExpression * @instance */ - Filter.prototype.numericFilter = null; + DimensionExpression.prototype.lowerCase = null; /** - * Filter betweenFilter. - * @member {google.analytics.data.v1alpha.IBetweenFilter|null|undefined} betweenFilter - * @memberof google.analytics.data.v1alpha.Filter + * DimensionExpression upperCase. + * @member {google.analytics.data.v1alpha.DimensionExpression.ICaseExpression|null|undefined} upperCase + * @memberof google.analytics.data.v1alpha.DimensionExpression * @instance */ - Filter.prototype.betweenFilter = null; + DimensionExpression.prototype.upperCase = null; /** - * Filter emptyFilter. - * @member {google.analytics.data.v1alpha.IEmptyFilter|null|undefined} emptyFilter - * @memberof google.analytics.data.v1alpha.Filter + * DimensionExpression concatenate. + * @member {google.analytics.data.v1alpha.DimensionExpression.IConcatenateExpression|null|undefined} concatenate + * @memberof google.analytics.data.v1alpha.DimensionExpression * @instance */ - Filter.prototype.emptyFilter = null; + DimensionExpression.prototype.concatenate = null; // OneOf field names bound to virtual getters and setters var $oneOfFields; /** - * Filter oneFilter. - * @member {"stringFilter"|"inListFilter"|"numericFilter"|"betweenFilter"|"emptyFilter"|undefined} oneFilter - * @memberof google.analytics.data.v1alpha.Filter + * DimensionExpression oneExpression. + * @member {"lowerCase"|"upperCase"|"concatenate"|undefined} oneExpression + * @memberof google.analytics.data.v1alpha.DimensionExpression * @instance */ - Object.defineProperty(Filter.prototype, "oneFilter", { - get: $util.oneOfGetter($oneOfFields = ["stringFilter", "inListFilter", "numericFilter", "betweenFilter", "emptyFilter"]), + Object.defineProperty(DimensionExpression.prototype, "oneExpression", { + get: $util.oneOfGetter($oneOfFields = ["lowerCase", "upperCase", "concatenate"]), set: $util.oneOfSetter($oneOfFields) }); /** - * Creates a new Filter instance using the specified properties. + * Creates a new DimensionExpression instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.Filter + * @memberof google.analytics.data.v1alpha.DimensionExpression * @static - * @param {google.analytics.data.v1alpha.IFilter=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.Filter} Filter instance + * @param {google.analytics.data.v1alpha.IDimensionExpression=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.DimensionExpression} DimensionExpression instance */ - Filter.create = function create(properties) { - return new Filter(properties); + DimensionExpression.create = function create(properties) { + return new DimensionExpression(properties); }; /** - * Encodes the specified Filter message. Does not implicitly {@link google.analytics.data.v1alpha.Filter.verify|verify} messages. + * Encodes the specified DimensionExpression message. Does not implicitly {@link google.analytics.data.v1alpha.DimensionExpression.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.Filter + * @memberof google.analytics.data.v1alpha.DimensionExpression * @static - * @param {google.analytics.data.v1alpha.IFilter} message Filter message or plain object to encode + * @param {google.analytics.data.v1alpha.IDimensionExpression} message DimensionExpression message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Filter.encode = function encode(message, writer) { + DimensionExpression.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.fieldName != null && Object.hasOwnProperty.call(message, "fieldName")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.fieldName); - if (message.stringFilter != null && Object.hasOwnProperty.call(message, "stringFilter")) - $root.google.analytics.data.v1alpha.StringFilter.encode(message.stringFilter, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.inListFilter != null && Object.hasOwnProperty.call(message, "inListFilter")) - $root.google.analytics.data.v1alpha.InListFilter.encode(message.inListFilter, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); - if (message.numericFilter != null && Object.hasOwnProperty.call(message, "numericFilter")) - $root.google.analytics.data.v1alpha.NumericFilter.encode(message.numericFilter, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); - if (message.betweenFilter != null && Object.hasOwnProperty.call(message, "betweenFilter")) - $root.google.analytics.data.v1alpha.BetweenFilter.encode(message.betweenFilter, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); - if (message.emptyFilter != null && Object.hasOwnProperty.call(message, "emptyFilter")) - $root.google.analytics.data.v1alpha.EmptyFilter.encode(message.emptyFilter, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + if (message.lowerCase != null && Object.hasOwnProperty.call(message, "lowerCase")) + $root.google.analytics.data.v1alpha.DimensionExpression.CaseExpression.encode(message.lowerCase, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.upperCase != null && Object.hasOwnProperty.call(message, "upperCase")) + $root.google.analytics.data.v1alpha.DimensionExpression.CaseExpression.encode(message.upperCase, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + if (message.concatenate != null && Object.hasOwnProperty.call(message, "concatenate")) + $root.google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression.encode(message.concatenate, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); return writer; }; /** - * Encodes the specified Filter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.Filter.verify|verify} messages. + * Encodes the specified DimensionExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.DimensionExpression.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.Filter + * @memberof google.analytics.data.v1alpha.DimensionExpression * @static - * @param {google.analytics.data.v1alpha.IFilter} message Filter message or plain object to encode + * @param {google.analytics.data.v1alpha.IDimensionExpression} message DimensionExpression message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Filter.encodeDelimited = function encodeDelimited(message, writer) { + DimensionExpression.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a Filter message from the specified reader or buffer. + * Decodes a DimensionExpression message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.Filter + * @memberof google.analytics.data.v1alpha.DimensionExpression * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.Filter} Filter + * @returns {google.analytics.data.v1alpha.DimensionExpression} DimensionExpression * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Filter.decode = function decode(reader, length, error) { + DimensionExpression.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.Filter(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.DimensionExpression(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { - case 1: { - message.fieldName = reader.string(); - break; - } - case 2: { - message.stringFilter = $root.google.analytics.data.v1alpha.StringFilter.decode(reader, reader.uint32()); - break; - } - case 3: { - message.inListFilter = $root.google.analytics.data.v1alpha.InListFilter.decode(reader, reader.uint32()); - break; - } case 4: { - message.numericFilter = $root.google.analytics.data.v1alpha.NumericFilter.decode(reader, reader.uint32()); + message.lowerCase = $root.google.analytics.data.v1alpha.DimensionExpression.CaseExpression.decode(reader, reader.uint32()); break; } case 5: { - message.betweenFilter = $root.google.analytics.data.v1alpha.BetweenFilter.decode(reader, reader.uint32()); + message.upperCase = $root.google.analytics.data.v1alpha.DimensionExpression.CaseExpression.decode(reader, reader.uint32()); break; } case 6: { - message.emptyFilter = $root.google.analytics.data.v1alpha.EmptyFilter.decode(reader, reader.uint32()); + message.concatenate = $root.google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression.decode(reader, reader.uint32()); break; } default: @@ -25649,787 +25413,624 @@ }; /** - * Decodes a Filter message from the specified reader or buffer, length delimited. + * Decodes a DimensionExpression message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.Filter + * @memberof google.analytics.data.v1alpha.DimensionExpression * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.Filter} Filter + * @returns {google.analytics.data.v1alpha.DimensionExpression} DimensionExpression * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Filter.decodeDelimited = function decodeDelimited(reader) { + DimensionExpression.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a Filter message. + * Verifies a DimensionExpression message. * @function verify - * @memberof google.analytics.data.v1alpha.Filter + * @memberof google.analytics.data.v1alpha.DimensionExpression * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Filter.verify = function verify(message) { + DimensionExpression.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; var properties = {}; - if (message.fieldName != null && message.hasOwnProperty("fieldName")) - if (!$util.isString(message.fieldName)) - return "fieldName: string expected"; - if (message.stringFilter != null && message.hasOwnProperty("stringFilter")) { - properties.oneFilter = 1; - { - var error = $root.google.analytics.data.v1alpha.StringFilter.verify(message.stringFilter); - if (error) - return "stringFilter." + error; - } - } - if (message.inListFilter != null && message.hasOwnProperty("inListFilter")) { - if (properties.oneFilter === 1) - return "oneFilter: multiple values"; - properties.oneFilter = 1; - { - var error = $root.google.analytics.data.v1alpha.InListFilter.verify(message.inListFilter); - if (error) - return "inListFilter." + error; - } - } - if (message.numericFilter != null && message.hasOwnProperty("numericFilter")) { - if (properties.oneFilter === 1) - return "oneFilter: multiple values"; - properties.oneFilter = 1; + if (message.lowerCase != null && message.hasOwnProperty("lowerCase")) { + properties.oneExpression = 1; { - var error = $root.google.analytics.data.v1alpha.NumericFilter.verify(message.numericFilter); + var error = $root.google.analytics.data.v1alpha.DimensionExpression.CaseExpression.verify(message.lowerCase); if (error) - return "numericFilter." + error; + return "lowerCase." + error; } } - if (message.betweenFilter != null && message.hasOwnProperty("betweenFilter")) { - if (properties.oneFilter === 1) - return "oneFilter: multiple values"; - properties.oneFilter = 1; + if (message.upperCase != null && message.hasOwnProperty("upperCase")) { + if (properties.oneExpression === 1) + return "oneExpression: multiple values"; + properties.oneExpression = 1; { - var error = $root.google.analytics.data.v1alpha.BetweenFilter.verify(message.betweenFilter); + var error = $root.google.analytics.data.v1alpha.DimensionExpression.CaseExpression.verify(message.upperCase); if (error) - return "betweenFilter." + error; + return "upperCase." + error; } } - if (message.emptyFilter != null && message.hasOwnProperty("emptyFilter")) { - if (properties.oneFilter === 1) - return "oneFilter: multiple values"; - properties.oneFilter = 1; + if (message.concatenate != null && message.hasOwnProperty("concatenate")) { + if (properties.oneExpression === 1) + return "oneExpression: multiple values"; + properties.oneExpression = 1; { - var error = $root.google.analytics.data.v1alpha.EmptyFilter.verify(message.emptyFilter); + var error = $root.google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression.verify(message.concatenate); if (error) - return "emptyFilter." + error; + return "concatenate." + error; } } return null; }; /** - * Creates a Filter message from a plain object. Also converts values to their respective internal types. + * Creates a DimensionExpression message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.Filter + * @memberof google.analytics.data.v1alpha.DimensionExpression * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.Filter} Filter + * @returns {google.analytics.data.v1alpha.DimensionExpression} DimensionExpression */ - Filter.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.Filter) + DimensionExpression.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.DimensionExpression) return object; - var message = new $root.google.analytics.data.v1alpha.Filter(); - if (object.fieldName != null) - message.fieldName = String(object.fieldName); - if (object.stringFilter != null) { - if (typeof object.stringFilter !== "object") - throw TypeError(".google.analytics.data.v1alpha.Filter.stringFilter: object expected"); - message.stringFilter = $root.google.analytics.data.v1alpha.StringFilter.fromObject(object.stringFilter); - } - if (object.inListFilter != null) { - if (typeof object.inListFilter !== "object") - throw TypeError(".google.analytics.data.v1alpha.Filter.inListFilter: object expected"); - message.inListFilter = $root.google.analytics.data.v1alpha.InListFilter.fromObject(object.inListFilter); - } - if (object.numericFilter != null) { - if (typeof object.numericFilter !== "object") - throw TypeError(".google.analytics.data.v1alpha.Filter.numericFilter: object expected"); - message.numericFilter = $root.google.analytics.data.v1alpha.NumericFilter.fromObject(object.numericFilter); + var message = new $root.google.analytics.data.v1alpha.DimensionExpression(); + if (object.lowerCase != null) { + if (typeof object.lowerCase !== "object") + throw TypeError(".google.analytics.data.v1alpha.DimensionExpression.lowerCase: object expected"); + message.lowerCase = $root.google.analytics.data.v1alpha.DimensionExpression.CaseExpression.fromObject(object.lowerCase); } - if (object.betweenFilter != null) { - if (typeof object.betweenFilter !== "object") - throw TypeError(".google.analytics.data.v1alpha.Filter.betweenFilter: object expected"); - message.betweenFilter = $root.google.analytics.data.v1alpha.BetweenFilter.fromObject(object.betweenFilter); + if (object.upperCase != null) { + if (typeof object.upperCase !== "object") + throw TypeError(".google.analytics.data.v1alpha.DimensionExpression.upperCase: object expected"); + message.upperCase = $root.google.analytics.data.v1alpha.DimensionExpression.CaseExpression.fromObject(object.upperCase); } - if (object.emptyFilter != null) { - if (typeof object.emptyFilter !== "object") - throw TypeError(".google.analytics.data.v1alpha.Filter.emptyFilter: object expected"); - message.emptyFilter = $root.google.analytics.data.v1alpha.EmptyFilter.fromObject(object.emptyFilter); + if (object.concatenate != null) { + if (typeof object.concatenate !== "object") + throw TypeError(".google.analytics.data.v1alpha.DimensionExpression.concatenate: object expected"); + message.concatenate = $root.google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression.fromObject(object.concatenate); } return message; }; /** - * Creates a plain object from a Filter message. Also converts values to other types if specified. + * Creates a plain object from a DimensionExpression message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.Filter + * @memberof google.analytics.data.v1alpha.DimensionExpression * @static - * @param {google.analytics.data.v1alpha.Filter} message Filter + * @param {google.analytics.data.v1alpha.DimensionExpression} message DimensionExpression * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - Filter.toObject = function toObject(message, options) { + DimensionExpression.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.defaults) - object.fieldName = ""; - if (message.fieldName != null && message.hasOwnProperty("fieldName")) - object.fieldName = message.fieldName; - if (message.stringFilter != null && message.hasOwnProperty("stringFilter")) { - object.stringFilter = $root.google.analytics.data.v1alpha.StringFilter.toObject(message.stringFilter, options); - if (options.oneofs) - object.oneFilter = "stringFilter"; - } - if (message.inListFilter != null && message.hasOwnProperty("inListFilter")) { - object.inListFilter = $root.google.analytics.data.v1alpha.InListFilter.toObject(message.inListFilter, options); - if (options.oneofs) - object.oneFilter = "inListFilter"; - } - if (message.numericFilter != null && message.hasOwnProperty("numericFilter")) { - object.numericFilter = $root.google.analytics.data.v1alpha.NumericFilter.toObject(message.numericFilter, options); + if (message.lowerCase != null && message.hasOwnProperty("lowerCase")) { + object.lowerCase = $root.google.analytics.data.v1alpha.DimensionExpression.CaseExpression.toObject(message.lowerCase, options); if (options.oneofs) - object.oneFilter = "numericFilter"; + object.oneExpression = "lowerCase"; } - if (message.betweenFilter != null && message.hasOwnProperty("betweenFilter")) { - object.betweenFilter = $root.google.analytics.data.v1alpha.BetweenFilter.toObject(message.betweenFilter, options); + if (message.upperCase != null && message.hasOwnProperty("upperCase")) { + object.upperCase = $root.google.analytics.data.v1alpha.DimensionExpression.CaseExpression.toObject(message.upperCase, options); if (options.oneofs) - object.oneFilter = "betweenFilter"; + object.oneExpression = "upperCase"; } - if (message.emptyFilter != null && message.hasOwnProperty("emptyFilter")) { - object.emptyFilter = $root.google.analytics.data.v1alpha.EmptyFilter.toObject(message.emptyFilter, options); + if (message.concatenate != null && message.hasOwnProperty("concatenate")) { + object.concatenate = $root.google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression.toObject(message.concatenate, options); if (options.oneofs) - object.oneFilter = "emptyFilter"; + object.oneExpression = "concatenate"; } return object; }; /** - * Converts this Filter to JSON. + * Converts this DimensionExpression to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.Filter + * @memberof google.analytics.data.v1alpha.DimensionExpression * @instance * @returns {Object.} JSON object */ - Filter.prototype.toJSON = function toJSON() { + DimensionExpression.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for Filter + * Gets the default type url for DimensionExpression * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.Filter + * @memberof google.analytics.data.v1alpha.DimensionExpression * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - Filter.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + DimensionExpression.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.analytics.data.v1alpha.Filter"; + return typeUrlPrefix + "/google.analytics.data.v1alpha.DimensionExpression"; }; - return Filter; - })(); - - v1alpha.StringFilter = (function() { - - /** - * Properties of a StringFilter. - * @memberof google.analytics.data.v1alpha - * @interface IStringFilter - * @property {google.analytics.data.v1alpha.StringFilter.MatchType|null} [matchType] StringFilter matchType - * @property {string|null} [value] StringFilter value - * @property {boolean|null} [caseSensitive] StringFilter caseSensitive - */ - - /** - * Constructs a new StringFilter. - * @memberof google.analytics.data.v1alpha - * @classdesc Represents a StringFilter. - * @implements IStringFilter - * @constructor - * @param {google.analytics.data.v1alpha.IStringFilter=} [properties] Properties to set - */ - function StringFilter(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]]; - } + DimensionExpression.CaseExpression = (function() { - /** - * StringFilter matchType. - * @member {google.analytics.data.v1alpha.StringFilter.MatchType} matchType - * @memberof google.analytics.data.v1alpha.StringFilter - * @instance - */ - StringFilter.prototype.matchType = 0; + /** + * Properties of a CaseExpression. + * @memberof google.analytics.data.v1alpha.DimensionExpression + * @interface ICaseExpression + * @property {string|null} [dimensionName] CaseExpression dimensionName + */ - /** - * StringFilter value. - * @member {string} value - * @memberof google.analytics.data.v1alpha.StringFilter - * @instance - */ - StringFilter.prototype.value = ""; + /** + * Constructs a new CaseExpression. + * @memberof google.analytics.data.v1alpha.DimensionExpression + * @classdesc Represents a CaseExpression. + * @implements ICaseExpression + * @constructor + * @param {google.analytics.data.v1alpha.DimensionExpression.ICaseExpression=} [properties] Properties to set + */ + function CaseExpression(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]]; + } - /** - * StringFilter caseSensitive. - * @member {boolean} caseSensitive - * @memberof google.analytics.data.v1alpha.StringFilter - * @instance - */ - StringFilter.prototype.caseSensitive = false; + /** + * CaseExpression dimensionName. + * @member {string} dimensionName + * @memberof google.analytics.data.v1alpha.DimensionExpression.CaseExpression + * @instance + */ + CaseExpression.prototype.dimensionName = ""; - /** - * Creates a new StringFilter instance using the specified properties. - * @function create - * @memberof google.analytics.data.v1alpha.StringFilter - * @static - * @param {google.analytics.data.v1alpha.IStringFilter=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.StringFilter} StringFilter instance - */ - StringFilter.create = function create(properties) { - return new StringFilter(properties); - }; + /** + * Creates a new CaseExpression instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1alpha.DimensionExpression.CaseExpression + * @static + * @param {google.analytics.data.v1alpha.DimensionExpression.ICaseExpression=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.DimensionExpression.CaseExpression} CaseExpression instance + */ + CaseExpression.create = function create(properties) { + return new CaseExpression(properties); + }; - /** - * Encodes the specified StringFilter message. Does not implicitly {@link google.analytics.data.v1alpha.StringFilter.verify|verify} messages. - * @function encode - * @memberof google.analytics.data.v1alpha.StringFilter - * @static - * @param {google.analytics.data.v1alpha.IStringFilter} message StringFilter message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - StringFilter.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.matchType != null && Object.hasOwnProperty.call(message, "matchType")) - writer.uint32(/* id 1, wireType 0 =*/8).int32(message.matchType); - if (message.value != null && Object.hasOwnProperty.call(message, "value")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.value); - if (message.caseSensitive != null && Object.hasOwnProperty.call(message, "caseSensitive")) - writer.uint32(/* id 3, wireType 0 =*/24).bool(message.caseSensitive); - return writer; - }; + /** + * Encodes the specified CaseExpression message. Does not implicitly {@link google.analytics.data.v1alpha.DimensionExpression.CaseExpression.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1alpha.DimensionExpression.CaseExpression + * @static + * @param {google.analytics.data.v1alpha.DimensionExpression.ICaseExpression} message CaseExpression message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CaseExpression.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.dimensionName != null && Object.hasOwnProperty.call(message, "dimensionName")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.dimensionName); + return writer; + }; - /** - * Encodes the specified StringFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.StringFilter.verify|verify} messages. - * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.StringFilter - * @static - * @param {google.analytics.data.v1alpha.IStringFilter} message StringFilter message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - StringFilter.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * Encodes the specified CaseExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.DimensionExpression.CaseExpression.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1alpha.DimensionExpression.CaseExpression + * @static + * @param {google.analytics.data.v1alpha.DimensionExpression.ICaseExpression} message CaseExpression message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CaseExpression.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * Decodes a StringFilter message from the specified reader or buffer. - * @function decode - * @memberof google.analytics.data.v1alpha.StringFilter - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.StringFilter} StringFilter - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - StringFilter.decode = function decode(reader, length, error) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.StringFilter(); - while (reader.pos < end) { - var tag = reader.uint32(); - if (tag === error) - break; - switch (tag >>> 3) { - case 1: { - message.matchType = reader.int32(); + /** + * Decodes a CaseExpression message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1alpha.DimensionExpression.CaseExpression + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1alpha.DimensionExpression.CaseExpression} CaseExpression + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CaseExpression.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.DimensionExpression.CaseExpression(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.dimensionName = reader.string(); + break; + } + default: + reader.skipType(tag & 7); break; } - case 2: { - message.value = reader.string(); - break; - } - case 3: { - message.caseSensitive = reader.bool(); - break; - } - default: - reader.skipType(tag & 7); - break; } - } - return message; - }; + return message; + }; - /** - * Decodes a StringFilter message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.StringFilter - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.StringFilter} StringFilter - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - StringFilter.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * Decodes a CaseExpression message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1alpha.DimensionExpression.CaseExpression + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1alpha.DimensionExpression.CaseExpression} CaseExpression + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CaseExpression.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Verifies a StringFilter message. - * @function verify - * @memberof google.analytics.data.v1alpha.StringFilter - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - StringFilter.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.matchType != null && message.hasOwnProperty("matchType")) - switch (message.matchType) { - default: - return "matchType: enum value expected"; - case 0: - case 1: - case 2: - case 3: - case 4: - case 5: - case 6: - break; - } - if (message.value != null && message.hasOwnProperty("value")) - if (!$util.isString(message.value)) - return "value: string expected"; - if (message.caseSensitive != null && message.hasOwnProperty("caseSensitive")) - if (typeof message.caseSensitive !== "boolean") - return "caseSensitive: boolean expected"; - return null; - }; + /** + * Verifies a CaseExpression message. + * @function verify + * @memberof google.analytics.data.v1alpha.DimensionExpression.CaseExpression + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + CaseExpression.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.dimensionName != null && message.hasOwnProperty("dimensionName")) + if (!$util.isString(message.dimensionName)) + return "dimensionName: string expected"; + return null; + }; - /** - * Creates a StringFilter message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.analytics.data.v1alpha.StringFilter - * @static - * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.StringFilter} StringFilter - */ - StringFilter.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.StringFilter) + /** + * Creates a CaseExpression message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1alpha.DimensionExpression.CaseExpression + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1alpha.DimensionExpression.CaseExpression} CaseExpression + */ + CaseExpression.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.DimensionExpression.CaseExpression) + return object; + var message = new $root.google.analytics.data.v1alpha.DimensionExpression.CaseExpression(); + if (object.dimensionName != null) + message.dimensionName = String(object.dimensionName); + return message; + }; + + /** + * Creates a plain object from a CaseExpression message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1alpha.DimensionExpression.CaseExpression + * @static + * @param {google.analytics.data.v1alpha.DimensionExpression.CaseExpression} message CaseExpression + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + CaseExpression.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.dimensionName = ""; + if (message.dimensionName != null && message.hasOwnProperty("dimensionName")) + object.dimensionName = message.dimensionName; return object; - var message = new $root.google.analytics.data.v1alpha.StringFilter(); - switch (object.matchType) { - default: - if (typeof object.matchType === "number") { - message.matchType = object.matchType; - break; + }; + + /** + * Converts this CaseExpression to JSON. + * @function toJSON + * @memberof google.analytics.data.v1alpha.DimensionExpression.CaseExpression + * @instance + * @returns {Object.} JSON object + */ + CaseExpression.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for CaseExpression + * @function getTypeUrl + * @memberof google.analytics.data.v1alpha.DimensionExpression.CaseExpression + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + CaseExpression.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; } - break; - case "MATCH_TYPE_UNSPECIFIED": - case 0: - message.matchType = 0; - break; - case "EXACT": - case 1: - message.matchType = 1; - break; - case "BEGINS_WITH": - case 2: - message.matchType = 2; - break; - case "ENDS_WITH": - case 3: - message.matchType = 3; - break; - case "CONTAINS": - case 4: - message.matchType = 4; - break; - case "FULL_REGEXP": - case 5: - message.matchType = 5; - break; - case "PARTIAL_REGEXP": - case 6: - message.matchType = 6; - break; - } - if (object.value != null) - message.value = String(object.value); - if (object.caseSensitive != null) - message.caseSensitive = Boolean(object.caseSensitive); - return message; - }; + return typeUrlPrefix + "/google.analytics.data.v1alpha.DimensionExpression.CaseExpression"; + }; - /** - * Creates a plain object from a StringFilter message. Also converts values to other types if specified. - * @function toObject - * @memberof google.analytics.data.v1alpha.StringFilter - * @static - * @param {google.analytics.data.v1alpha.StringFilter} message StringFilter - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - StringFilter.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) { - object.matchType = options.enums === String ? "MATCH_TYPE_UNSPECIFIED" : 0; - object.value = ""; - object.caseSensitive = false; - } - if (message.matchType != null && message.hasOwnProperty("matchType")) - object.matchType = options.enums === String ? $root.google.analytics.data.v1alpha.StringFilter.MatchType[message.matchType] === undefined ? message.matchType : $root.google.analytics.data.v1alpha.StringFilter.MatchType[message.matchType] : message.matchType; - if (message.value != null && message.hasOwnProperty("value")) - object.value = message.value; - if (message.caseSensitive != null && message.hasOwnProperty("caseSensitive")) - object.caseSensitive = message.caseSensitive; - return object; - }; + return CaseExpression; + })(); - /** - * Converts this StringFilter to JSON. - * @function toJSON - * @memberof google.analytics.data.v1alpha.StringFilter - * @instance - * @returns {Object.} JSON object - */ - StringFilter.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + DimensionExpression.ConcatenateExpression = (function() { - /** - * Gets the default type url for StringFilter - * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.StringFilter - * @static - * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns {string} The default type url - */ - StringFilter.getTypeUrl = function getTypeUrl(typeUrlPrefix) { - if (typeUrlPrefix === undefined) { - typeUrlPrefix = "type.googleapis.com"; - } - return typeUrlPrefix + "/google.analytics.data.v1alpha.StringFilter"; - }; - - /** - * MatchType enum. - * @name google.analytics.data.v1alpha.StringFilter.MatchType - * @enum {number} - * @property {number} MATCH_TYPE_UNSPECIFIED=0 MATCH_TYPE_UNSPECIFIED value - * @property {number} EXACT=1 EXACT value - * @property {number} BEGINS_WITH=2 BEGINS_WITH value - * @property {number} ENDS_WITH=3 ENDS_WITH value - * @property {number} CONTAINS=4 CONTAINS value - * @property {number} FULL_REGEXP=5 FULL_REGEXP value - * @property {number} PARTIAL_REGEXP=6 PARTIAL_REGEXP value - */ - StringFilter.MatchType = (function() { - var valuesById = {}, values = Object.create(valuesById); - values[valuesById[0] = "MATCH_TYPE_UNSPECIFIED"] = 0; - values[valuesById[1] = "EXACT"] = 1; - values[valuesById[2] = "BEGINS_WITH"] = 2; - values[valuesById[3] = "ENDS_WITH"] = 3; - values[valuesById[4] = "CONTAINS"] = 4; - values[valuesById[5] = "FULL_REGEXP"] = 5; - values[valuesById[6] = "PARTIAL_REGEXP"] = 6; - return values; - })(); - - return StringFilter; - })(); - - v1alpha.InListFilter = (function() { - - /** - * Properties of an InListFilter. - * @memberof google.analytics.data.v1alpha - * @interface IInListFilter - * @property {Array.|null} [values] InListFilter values - * @property {boolean|null} [caseSensitive] InListFilter caseSensitive - */ + /** + * Properties of a ConcatenateExpression. + * @memberof google.analytics.data.v1alpha.DimensionExpression + * @interface IConcatenateExpression + * @property {Array.|null} [dimensionNames] ConcatenateExpression dimensionNames + * @property {string|null} [delimiter] ConcatenateExpression delimiter + */ - /** - * Constructs a new InListFilter. - * @memberof google.analytics.data.v1alpha - * @classdesc Represents an InListFilter. - * @implements IInListFilter - * @constructor - * @param {google.analytics.data.v1alpha.IInListFilter=} [properties] Properties to set - */ - function InListFilter(properties) { - this.values = []; - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * Constructs a new ConcatenateExpression. + * @memberof google.analytics.data.v1alpha.DimensionExpression + * @classdesc Represents a ConcatenateExpression. + * @implements IConcatenateExpression + * @constructor + * @param {google.analytics.data.v1alpha.DimensionExpression.IConcatenateExpression=} [properties] Properties to set + */ + function ConcatenateExpression(properties) { + this.dimensionNames = []; + 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]]; + } - /** - * InListFilter values. - * @member {Array.} values - * @memberof google.analytics.data.v1alpha.InListFilter - * @instance - */ - InListFilter.prototype.values = $util.emptyArray; + /** + * ConcatenateExpression dimensionNames. + * @member {Array.} dimensionNames + * @memberof google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression + * @instance + */ + ConcatenateExpression.prototype.dimensionNames = $util.emptyArray; - /** - * InListFilter caseSensitive. - * @member {boolean} caseSensitive - * @memberof google.analytics.data.v1alpha.InListFilter - * @instance - */ - InListFilter.prototype.caseSensitive = false; + /** + * ConcatenateExpression delimiter. + * @member {string} delimiter + * @memberof google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression + * @instance + */ + ConcatenateExpression.prototype.delimiter = ""; - /** - * Creates a new InListFilter instance using the specified properties. - * @function create - * @memberof google.analytics.data.v1alpha.InListFilter - * @static - * @param {google.analytics.data.v1alpha.IInListFilter=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.InListFilter} InListFilter instance - */ - InListFilter.create = function create(properties) { - return new InListFilter(properties); - }; + /** + * Creates a new ConcatenateExpression instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression + * @static + * @param {google.analytics.data.v1alpha.DimensionExpression.IConcatenateExpression=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression} ConcatenateExpression instance + */ + ConcatenateExpression.create = function create(properties) { + return new ConcatenateExpression(properties); + }; - /** - * Encodes the specified InListFilter message. Does not implicitly {@link google.analytics.data.v1alpha.InListFilter.verify|verify} messages. - * @function encode - * @memberof google.analytics.data.v1alpha.InListFilter - * @static - * @param {google.analytics.data.v1alpha.IInListFilter} message InListFilter message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - InListFilter.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.values != null && message.values.length) - for (var i = 0; i < message.values.length; ++i) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.values[i]); - if (message.caseSensitive != null && Object.hasOwnProperty.call(message, "caseSensitive")) - writer.uint32(/* id 2, wireType 0 =*/16).bool(message.caseSensitive); - return writer; - }; + /** + * Encodes the specified ConcatenateExpression message. Does not implicitly {@link google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression + * @static + * @param {google.analytics.data.v1alpha.DimensionExpression.IConcatenateExpression} message ConcatenateExpression message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ConcatenateExpression.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.dimensionNames != null && message.dimensionNames.length) + for (var i = 0; i < message.dimensionNames.length; ++i) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.dimensionNames[i]); + if (message.delimiter != null && Object.hasOwnProperty.call(message, "delimiter")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.delimiter); + return writer; + }; - /** - * Encodes the specified InListFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.InListFilter.verify|verify} messages. - * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.InListFilter - * @static - * @param {google.analytics.data.v1alpha.IInListFilter} message InListFilter message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - InListFilter.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * Encodes the specified ConcatenateExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression + * @static + * @param {google.analytics.data.v1alpha.DimensionExpression.IConcatenateExpression} message ConcatenateExpression message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ConcatenateExpression.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * Decodes an InListFilter message from the specified reader or buffer. - * @function decode - * @memberof google.analytics.data.v1alpha.InListFilter - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.InListFilter} InListFilter - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - InListFilter.decode = function decode(reader, length, error) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.InListFilter(); - while (reader.pos < end) { - var tag = reader.uint32(); - if (tag === error) - break; - switch (tag >>> 3) { - case 1: { - if (!(message.values && message.values.length)) - message.values = []; - message.values.push(reader.string()); + /** + * Decodes a ConcatenateExpression message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression} ConcatenateExpression + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ConcatenateExpression.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) break; - } - case 2: { - message.caseSensitive = reader.bool(); + switch (tag >>> 3) { + case 1: { + if (!(message.dimensionNames && message.dimensionNames.length)) + message.dimensionNames = []; + message.dimensionNames.push(reader.string()); + break; + } + case 2: { + message.delimiter = reader.string(); + break; + } + default: + reader.skipType(tag & 7); break; } - default: - reader.skipType(tag & 7); - break; } - } - return message; - }; + return message; + }; - /** - * Decodes an InListFilter message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.InListFilter - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.InListFilter} InListFilter - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - InListFilter.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * Decodes a ConcatenateExpression message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression} ConcatenateExpression + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ConcatenateExpression.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Verifies an InListFilter message. - * @function verify - * @memberof google.analytics.data.v1alpha.InListFilter - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - InListFilter.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.values != null && message.hasOwnProperty("values")) { - if (!Array.isArray(message.values)) - return "values: array expected"; - for (var i = 0; i < message.values.length; ++i) - if (!$util.isString(message.values[i])) - return "values: string[] expected"; - } - if (message.caseSensitive != null && message.hasOwnProperty("caseSensitive")) - if (typeof message.caseSensitive !== "boolean") - return "caseSensitive: boolean expected"; - return null; - }; + /** + * Verifies a ConcatenateExpression message. + * @function verify + * @memberof google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ConcatenateExpression.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.dimensionNames != null && message.hasOwnProperty("dimensionNames")) { + if (!Array.isArray(message.dimensionNames)) + return "dimensionNames: array expected"; + for (var i = 0; i < message.dimensionNames.length; ++i) + if (!$util.isString(message.dimensionNames[i])) + return "dimensionNames: string[] expected"; + } + if (message.delimiter != null && message.hasOwnProperty("delimiter")) + if (!$util.isString(message.delimiter)) + return "delimiter: string expected"; + return null; + }; - /** - * Creates an InListFilter message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.analytics.data.v1alpha.InListFilter - * @static - * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.InListFilter} InListFilter - */ - InListFilter.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.InListFilter) + /** + * Creates a ConcatenateExpression message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression} ConcatenateExpression + */ + ConcatenateExpression.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression) + return object; + var message = new $root.google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression(); + if (object.dimensionNames) { + if (!Array.isArray(object.dimensionNames)) + throw TypeError(".google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression.dimensionNames: array expected"); + message.dimensionNames = []; + for (var i = 0; i < object.dimensionNames.length; ++i) + message.dimensionNames[i] = String(object.dimensionNames[i]); + } + if (object.delimiter != null) + message.delimiter = String(object.delimiter); + return message; + }; + + /** + * Creates a plain object from a ConcatenateExpression message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression + * @static + * @param {google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression} message ConcatenateExpression + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ConcatenateExpression.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.dimensionNames = []; + if (options.defaults) + object.delimiter = ""; + if (message.dimensionNames && message.dimensionNames.length) { + object.dimensionNames = []; + for (var j = 0; j < message.dimensionNames.length; ++j) + object.dimensionNames[j] = message.dimensionNames[j]; + } + if (message.delimiter != null && message.hasOwnProperty("delimiter")) + object.delimiter = message.delimiter; return object; - var message = new $root.google.analytics.data.v1alpha.InListFilter(); - if (object.values) { - if (!Array.isArray(object.values)) - throw TypeError(".google.analytics.data.v1alpha.InListFilter.values: array expected"); - message.values = []; - for (var i = 0; i < object.values.length; ++i) - message.values[i] = String(object.values[i]); - } - if (object.caseSensitive != null) - message.caseSensitive = Boolean(object.caseSensitive); - return message; - }; + }; - /** - * Creates a plain object from an InListFilter message. Also converts values to other types if specified. - * @function toObject - * @memberof google.analytics.data.v1alpha.InListFilter - * @static - * @param {google.analytics.data.v1alpha.InListFilter} message InListFilter - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - InListFilter.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.arrays || options.defaults) - object.values = []; - if (options.defaults) - object.caseSensitive = false; - if (message.values && message.values.length) { - object.values = []; - for (var j = 0; j < message.values.length; ++j) - object.values[j] = message.values[j]; - } - if (message.caseSensitive != null && message.hasOwnProperty("caseSensitive")) - object.caseSensitive = message.caseSensitive; - return object; - }; + /** + * Converts this ConcatenateExpression to JSON. + * @function toJSON + * @memberof google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression + * @instance + * @returns {Object.} JSON object + */ + ConcatenateExpression.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * Converts this InListFilter to JSON. - * @function toJSON - * @memberof google.analytics.data.v1alpha.InListFilter - * @instance - * @returns {Object.} JSON object - */ - InListFilter.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Gets the default type url for ConcatenateExpression + * @function getTypeUrl + * @memberof google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + ConcatenateExpression.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression"; + }; - /** - * Gets the default type url for InListFilter - * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.InListFilter - * @static - * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns {string} The default type url - */ - InListFilter.getTypeUrl = function getTypeUrl(typeUrlPrefix) { - if (typeUrlPrefix === undefined) { - typeUrlPrefix = "type.googleapis.com"; - } - return typeUrlPrefix + "/google.analytics.data.v1alpha.InListFilter"; - }; + return ConcatenateExpression; + })(); - return InListFilter; + return DimensionExpression; })(); - v1alpha.NumericFilter = (function() { + v1alpha.Metric = (function() { /** - * Properties of a NumericFilter. + * Properties of a Metric. * @memberof google.analytics.data.v1alpha - * @interface INumericFilter - * @property {google.analytics.data.v1alpha.NumericFilter.Operation|null} [operation] NumericFilter operation - * @property {google.analytics.data.v1alpha.INumericValue|null} [value] NumericFilter value + * @interface IMetric + * @property {string|null} [name] Metric name + * @property {string|null} [expression] Metric expression + * @property {boolean|null} [invisible] Metric invisible */ /** - * Constructs a new NumericFilter. + * Constructs a new Metric. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a NumericFilter. - * @implements INumericFilter + * @classdesc Represents a Metric. + * @implements IMetric * @constructor - * @param {google.analytics.data.v1alpha.INumericFilter=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IMetric=} [properties] Properties to set */ - function NumericFilter(properties) { + function Metric(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -26437,91 +26038,105 @@ } /** - * NumericFilter operation. - * @member {google.analytics.data.v1alpha.NumericFilter.Operation} operation - * @memberof google.analytics.data.v1alpha.NumericFilter + * Metric name. + * @member {string} name + * @memberof google.analytics.data.v1alpha.Metric * @instance */ - NumericFilter.prototype.operation = 0; + Metric.prototype.name = ""; /** - * NumericFilter value. - * @member {google.analytics.data.v1alpha.INumericValue|null|undefined} value - * @memberof google.analytics.data.v1alpha.NumericFilter - * @instance + * Metric expression. + * @member {string} expression + * @memberof google.analytics.data.v1alpha.Metric + * @instance */ - NumericFilter.prototype.value = null; + Metric.prototype.expression = ""; /** - * Creates a new NumericFilter instance using the specified properties. + * Metric invisible. + * @member {boolean} invisible + * @memberof google.analytics.data.v1alpha.Metric + * @instance + */ + Metric.prototype.invisible = false; + + /** + * Creates a new Metric instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.NumericFilter + * @memberof google.analytics.data.v1alpha.Metric * @static - * @param {google.analytics.data.v1alpha.INumericFilter=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.NumericFilter} NumericFilter instance + * @param {google.analytics.data.v1alpha.IMetric=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.Metric} Metric instance */ - NumericFilter.create = function create(properties) { - return new NumericFilter(properties); + Metric.create = function create(properties) { + return new Metric(properties); }; /** - * Encodes the specified NumericFilter message. Does not implicitly {@link google.analytics.data.v1alpha.NumericFilter.verify|verify} messages. + * Encodes the specified Metric message. Does not implicitly {@link google.analytics.data.v1alpha.Metric.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.NumericFilter + * @memberof google.analytics.data.v1alpha.Metric * @static - * @param {google.analytics.data.v1alpha.INumericFilter} message NumericFilter message or plain object to encode + * @param {google.analytics.data.v1alpha.IMetric} message Metric message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - NumericFilter.encode = function encode(message, writer) { + Metric.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.operation != null && Object.hasOwnProperty.call(message, "operation")) - writer.uint32(/* id 1, wireType 0 =*/8).int32(message.operation); - if (message.value != null && Object.hasOwnProperty.call(message, "value")) - $root.google.analytics.data.v1alpha.NumericValue.encode(message.value, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.name != null && Object.hasOwnProperty.call(message, "name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + if (message.expression != null && Object.hasOwnProperty.call(message, "expression")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.expression); + if (message.invisible != null && Object.hasOwnProperty.call(message, "invisible")) + writer.uint32(/* id 3, wireType 0 =*/24).bool(message.invisible); return writer; }; /** - * Encodes the specified NumericFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.NumericFilter.verify|verify} messages. + * Encodes the specified Metric message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.Metric.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.NumericFilter + * @memberof google.analytics.data.v1alpha.Metric * @static - * @param {google.analytics.data.v1alpha.INumericFilter} message NumericFilter message or plain object to encode + * @param {google.analytics.data.v1alpha.IMetric} message Metric message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - NumericFilter.encodeDelimited = function encodeDelimited(message, writer) { + Metric.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a NumericFilter message from the specified reader or buffer. + * Decodes a Metric message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.NumericFilter + * @memberof google.analytics.data.v1alpha.Metric * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.NumericFilter} NumericFilter + * @returns {google.analytics.data.v1alpha.Metric} Metric * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - NumericFilter.decode = function decode(reader, length, error) { + Metric.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.NumericFilter(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.Metric(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { case 1: { - message.operation = reader.int32(); + message.name = reader.string(); break; } case 2: { - message.value = $root.google.analytics.data.v1alpha.NumericValue.decode(reader, reader.uint32()); + message.expression = reader.string(); + break; + } + case 3: { + message.invisible = reader.bool(); break; } default: @@ -26533,199 +26148,141 @@ }; /** - * Decodes a NumericFilter message from the specified reader or buffer, length delimited. + * Decodes a Metric message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.NumericFilter + * @memberof google.analytics.data.v1alpha.Metric * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.NumericFilter} NumericFilter + * @returns {google.analytics.data.v1alpha.Metric} Metric * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - NumericFilter.decodeDelimited = function decodeDelimited(reader) { + Metric.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a NumericFilter message. + * Verifies a Metric message. * @function verify - * @memberof google.analytics.data.v1alpha.NumericFilter + * @memberof google.analytics.data.v1alpha.Metric * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - NumericFilter.verify = function verify(message) { + Metric.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.operation != null && message.hasOwnProperty("operation")) - switch (message.operation) { - default: - return "operation: enum value expected"; - case 0: - case 1: - case 2: - case 3: - case 4: - case 5: - break; - } - if (message.value != null && message.hasOwnProperty("value")) { - var error = $root.google.analytics.data.v1alpha.NumericValue.verify(message.value); - if (error) - return "value." + error; - } + if (message.name != null && message.hasOwnProperty("name")) + if (!$util.isString(message.name)) + return "name: string expected"; + if (message.expression != null && message.hasOwnProperty("expression")) + if (!$util.isString(message.expression)) + return "expression: string expected"; + if (message.invisible != null && message.hasOwnProperty("invisible")) + if (typeof message.invisible !== "boolean") + return "invisible: boolean expected"; return null; }; /** - * Creates a NumericFilter message from a plain object. Also converts values to their respective internal types. + * Creates a Metric message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.NumericFilter + * @memberof google.analytics.data.v1alpha.Metric * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.NumericFilter} NumericFilter + * @returns {google.analytics.data.v1alpha.Metric} Metric */ - NumericFilter.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.NumericFilter) + Metric.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.Metric) return object; - var message = new $root.google.analytics.data.v1alpha.NumericFilter(); - switch (object.operation) { - default: - if (typeof object.operation === "number") { - message.operation = object.operation; - break; - } - break; - case "OPERATION_UNSPECIFIED": - case 0: - message.operation = 0; - break; - case "EQUAL": - case 1: - message.operation = 1; - break; - case "LESS_THAN": - case 2: - message.operation = 2; - break; - case "LESS_THAN_OR_EQUAL": - case 3: - message.operation = 3; - break; - case "GREATER_THAN": - case 4: - message.operation = 4; - break; - case "GREATER_THAN_OR_EQUAL": - case 5: - message.operation = 5; - break; - } - if (object.value != null) { - if (typeof object.value !== "object") - throw TypeError(".google.analytics.data.v1alpha.NumericFilter.value: object expected"); - message.value = $root.google.analytics.data.v1alpha.NumericValue.fromObject(object.value); - } + var message = new $root.google.analytics.data.v1alpha.Metric(); + if (object.name != null) + message.name = String(object.name); + if (object.expression != null) + message.expression = String(object.expression); + if (object.invisible != null) + message.invisible = Boolean(object.invisible); return message; }; /** - * Creates a plain object from a NumericFilter message. Also converts values to other types if specified. + * Creates a plain object from a Metric message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.NumericFilter + * @memberof google.analytics.data.v1alpha.Metric * @static - * @param {google.analytics.data.v1alpha.NumericFilter} message NumericFilter + * @param {google.analytics.data.v1alpha.Metric} message Metric * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - NumericFilter.toObject = function toObject(message, options) { + Metric.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; if (options.defaults) { - object.operation = options.enums === String ? "OPERATION_UNSPECIFIED" : 0; - object.value = null; + object.name = ""; + object.expression = ""; + object.invisible = false; } - if (message.operation != null && message.hasOwnProperty("operation")) - object.operation = options.enums === String ? $root.google.analytics.data.v1alpha.NumericFilter.Operation[message.operation] === undefined ? message.operation : $root.google.analytics.data.v1alpha.NumericFilter.Operation[message.operation] : message.operation; - if (message.value != null && message.hasOwnProperty("value")) - object.value = $root.google.analytics.data.v1alpha.NumericValue.toObject(message.value, options); + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + if (message.expression != null && message.hasOwnProperty("expression")) + object.expression = message.expression; + if (message.invisible != null && message.hasOwnProperty("invisible")) + object.invisible = message.invisible; return object; }; /** - * Converts this NumericFilter to JSON. + * Converts this Metric to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.NumericFilter + * @memberof google.analytics.data.v1alpha.Metric * @instance * @returns {Object.} JSON object */ - NumericFilter.prototype.toJSON = function toJSON() { + Metric.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for NumericFilter + * Gets the default type url for Metric * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.NumericFilter + * @memberof google.analytics.data.v1alpha.Metric * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - NumericFilter.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + Metric.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.analytics.data.v1alpha.NumericFilter"; + return typeUrlPrefix + "/google.analytics.data.v1alpha.Metric"; }; - /** - * Operation enum. - * @name google.analytics.data.v1alpha.NumericFilter.Operation - * @enum {number} - * @property {number} OPERATION_UNSPECIFIED=0 OPERATION_UNSPECIFIED value - * @property {number} EQUAL=1 EQUAL value - * @property {number} LESS_THAN=2 LESS_THAN value - * @property {number} LESS_THAN_OR_EQUAL=3 LESS_THAN_OR_EQUAL value - * @property {number} GREATER_THAN=4 GREATER_THAN value - * @property {number} GREATER_THAN_OR_EQUAL=5 GREATER_THAN_OR_EQUAL value - */ - NumericFilter.Operation = (function() { - var valuesById = {}, values = Object.create(valuesById); - values[valuesById[0] = "OPERATION_UNSPECIFIED"] = 0; - values[valuesById[1] = "EQUAL"] = 1; - values[valuesById[2] = "LESS_THAN"] = 2; - values[valuesById[3] = "LESS_THAN_OR_EQUAL"] = 3; - values[valuesById[4] = "GREATER_THAN"] = 4; - values[valuesById[5] = "GREATER_THAN_OR_EQUAL"] = 5; - return values; - })(); - - return NumericFilter; + return Metric; })(); - v1alpha.OrderBy = (function() { + v1alpha.Comparison = (function() { /** - * Properties of an OrderBy. + * Properties of a Comparison. * @memberof google.analytics.data.v1alpha - * @interface IOrderBy - * @property {google.analytics.data.v1alpha.OrderBy.IMetricOrderBy|null} [metric] OrderBy metric - * @property {google.analytics.data.v1alpha.OrderBy.IDimensionOrderBy|null} [dimension] OrderBy dimension - * @property {boolean|null} [desc] OrderBy desc + * @interface IComparison + * @property {string|null} [name] Comparison name + * @property {google.analytics.data.v1alpha.IFilterExpression|null} [dimensionFilter] Comparison dimensionFilter + * @property {string|null} [comparison] Comparison comparison */ /** - * Constructs a new OrderBy. + * Constructs a new Comparison. * @memberof google.analytics.data.v1alpha - * @classdesc Represents an OrderBy. - * @implements IOrderBy + * @classdesc Represents a Comparison. + * @implements IComparison * @constructor - * @param {google.analytics.data.v1alpha.IOrderBy=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IComparison=} [properties] Properties to set */ - function OrderBy(properties) { + function Comparison(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -26733,119 +26290,125 @@ } /** - * OrderBy metric. - * @member {google.analytics.data.v1alpha.OrderBy.IMetricOrderBy|null|undefined} metric - * @memberof google.analytics.data.v1alpha.OrderBy + * Comparison name. + * @member {string|null|undefined} name + * @memberof google.analytics.data.v1alpha.Comparison * @instance */ - OrderBy.prototype.metric = null; + Comparison.prototype.name = null; /** - * OrderBy dimension. - * @member {google.analytics.data.v1alpha.OrderBy.IDimensionOrderBy|null|undefined} dimension - * @memberof google.analytics.data.v1alpha.OrderBy - * @instance + * Comparison dimensionFilter. + * @member {google.analytics.data.v1alpha.IFilterExpression|null|undefined} dimensionFilter + * @memberof google.analytics.data.v1alpha.Comparison + * @instance */ - OrderBy.prototype.dimension = null; + Comparison.prototype.dimensionFilter = null; /** - * OrderBy desc. - * @member {boolean} desc - * @memberof google.analytics.data.v1alpha.OrderBy + * Comparison comparison. + * @member {string|null|undefined} comparison + * @memberof google.analytics.data.v1alpha.Comparison * @instance */ - OrderBy.prototype.desc = false; + Comparison.prototype.comparison = null; // OneOf field names bound to virtual getters and setters var $oneOfFields; + // Virtual OneOf for proto3 optional field + Object.defineProperty(Comparison.prototype, "_name", { + get: $util.oneOfGetter($oneOfFields = ["name"]), + set: $util.oneOfSetter($oneOfFields) + }); + /** - * OrderBy oneOrderBy. - * @member {"metric"|"dimension"|undefined} oneOrderBy - * @memberof google.analytics.data.v1alpha.OrderBy + * Comparison oneComparison. + * @member {"dimensionFilter"|"comparison"|undefined} oneComparison + * @memberof google.analytics.data.v1alpha.Comparison * @instance */ - Object.defineProperty(OrderBy.prototype, "oneOrderBy", { - get: $util.oneOfGetter($oneOfFields = ["metric", "dimension"]), + Object.defineProperty(Comparison.prototype, "oneComparison", { + get: $util.oneOfGetter($oneOfFields = ["dimensionFilter", "comparison"]), set: $util.oneOfSetter($oneOfFields) }); /** - * Creates a new OrderBy instance using the specified properties. + * Creates a new Comparison instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.OrderBy + * @memberof google.analytics.data.v1alpha.Comparison * @static - * @param {google.analytics.data.v1alpha.IOrderBy=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.OrderBy} OrderBy instance + * @param {google.analytics.data.v1alpha.IComparison=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.Comparison} Comparison instance */ - OrderBy.create = function create(properties) { - return new OrderBy(properties); + Comparison.create = function create(properties) { + return new Comparison(properties); }; /** - * Encodes the specified OrderBy message. Does not implicitly {@link google.analytics.data.v1alpha.OrderBy.verify|verify} messages. + * Encodes the specified Comparison message. Does not implicitly {@link google.analytics.data.v1alpha.Comparison.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.OrderBy + * @memberof google.analytics.data.v1alpha.Comparison * @static - * @param {google.analytics.data.v1alpha.IOrderBy} message OrderBy message or plain object to encode + * @param {google.analytics.data.v1alpha.IComparison} message Comparison message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - OrderBy.encode = function encode(message, writer) { + Comparison.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.metric != null && Object.hasOwnProperty.call(message, "metric")) - $root.google.analytics.data.v1alpha.OrderBy.MetricOrderBy.encode(message.metric, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.dimension != null && Object.hasOwnProperty.call(message, "dimension")) - $root.google.analytics.data.v1alpha.OrderBy.DimensionOrderBy.encode(message.dimension, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.desc != null && Object.hasOwnProperty.call(message, "desc")) - writer.uint32(/* id 4, wireType 0 =*/32).bool(message.desc); + if (message.name != null && Object.hasOwnProperty.call(message, "name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + if (message.dimensionFilter != null && Object.hasOwnProperty.call(message, "dimensionFilter")) + $root.google.analytics.data.v1alpha.FilterExpression.encode(message.dimensionFilter, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.comparison != null && Object.hasOwnProperty.call(message, "comparison")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.comparison); return writer; }; /** - * Encodes the specified OrderBy message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.OrderBy.verify|verify} messages. + * Encodes the specified Comparison message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.Comparison.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.OrderBy + * @memberof google.analytics.data.v1alpha.Comparison * @static - * @param {google.analytics.data.v1alpha.IOrderBy} message OrderBy message or plain object to encode + * @param {google.analytics.data.v1alpha.IComparison} message Comparison message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - OrderBy.encodeDelimited = function encodeDelimited(message, writer) { + Comparison.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes an OrderBy message from the specified reader or buffer. + * Decodes a Comparison message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.OrderBy + * @memberof google.analytics.data.v1alpha.Comparison * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.OrderBy} OrderBy + * @returns {google.analytics.data.v1alpha.Comparison} Comparison * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - OrderBy.decode = function decode(reader, length, error) { + Comparison.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.OrderBy(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.Comparison(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { case 1: { - message.metric = $root.google.analytics.data.v1alpha.OrderBy.MetricOrderBy.decode(reader, reader.uint32()); + message.name = reader.string(); break; } case 2: { - message.dimension = $root.google.analytics.data.v1alpha.OrderBy.DimensionOrderBy.decode(reader, reader.uint32()); + message.dimensionFilter = $root.google.analytics.data.v1alpha.FilterExpression.decode(reader, reader.uint32()); break; } - case 4: { - message.desc = reader.bool(); + case 3: { + message.comparison = reader.string(); break; } default: @@ -26857,643 +26420,493 @@ }; /** - * Decodes an OrderBy message from the specified reader or buffer, length delimited. + * Decodes a Comparison message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.OrderBy + * @memberof google.analytics.data.v1alpha.Comparison * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.OrderBy} OrderBy + * @returns {google.analytics.data.v1alpha.Comparison} Comparison * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - OrderBy.decodeDelimited = function decodeDelimited(reader) { + Comparison.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies an OrderBy message. + * Verifies a Comparison message. * @function verify - * @memberof google.analytics.data.v1alpha.OrderBy + * @memberof google.analytics.data.v1alpha.Comparison * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - OrderBy.verify = function verify(message) { + Comparison.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; var properties = {}; - if (message.metric != null && message.hasOwnProperty("metric")) { - properties.oneOrderBy = 1; - { - var error = $root.google.analytics.data.v1alpha.OrderBy.MetricOrderBy.verify(message.metric); - if (error) - return "metric." + error; - } + if (message.name != null && message.hasOwnProperty("name")) { + properties._name = 1; + if (!$util.isString(message.name)) + return "name: string expected"; } - if (message.dimension != null && message.hasOwnProperty("dimension")) { - if (properties.oneOrderBy === 1) - return "oneOrderBy: multiple values"; - properties.oneOrderBy = 1; + if (message.dimensionFilter != null && message.hasOwnProperty("dimensionFilter")) { + properties.oneComparison = 1; { - var error = $root.google.analytics.data.v1alpha.OrderBy.DimensionOrderBy.verify(message.dimension); + var error = $root.google.analytics.data.v1alpha.FilterExpression.verify(message.dimensionFilter); if (error) - return "dimension." + error; + return "dimensionFilter." + error; } } - if (message.desc != null && message.hasOwnProperty("desc")) - if (typeof message.desc !== "boolean") - return "desc: boolean expected"; + if (message.comparison != null && message.hasOwnProperty("comparison")) { + if (properties.oneComparison === 1) + return "oneComparison: multiple values"; + properties.oneComparison = 1; + if (!$util.isString(message.comparison)) + return "comparison: string expected"; + } return null; }; /** - * Creates an OrderBy message from a plain object. Also converts values to their respective internal types. + * Creates a Comparison message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.OrderBy + * @memberof google.analytics.data.v1alpha.Comparison * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.OrderBy} OrderBy + * @returns {google.analytics.data.v1alpha.Comparison} Comparison */ - OrderBy.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.OrderBy) + Comparison.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.Comparison) return object; - var message = new $root.google.analytics.data.v1alpha.OrderBy(); - if (object.metric != null) { - if (typeof object.metric !== "object") - throw TypeError(".google.analytics.data.v1alpha.OrderBy.metric: object expected"); - message.metric = $root.google.analytics.data.v1alpha.OrderBy.MetricOrderBy.fromObject(object.metric); - } - if (object.dimension != null) { - if (typeof object.dimension !== "object") - throw TypeError(".google.analytics.data.v1alpha.OrderBy.dimension: object expected"); - message.dimension = $root.google.analytics.data.v1alpha.OrderBy.DimensionOrderBy.fromObject(object.dimension); + var message = new $root.google.analytics.data.v1alpha.Comparison(); + if (object.name != null) + message.name = String(object.name); + if (object.dimensionFilter != null) { + if (typeof object.dimensionFilter !== "object") + throw TypeError(".google.analytics.data.v1alpha.Comparison.dimensionFilter: object expected"); + message.dimensionFilter = $root.google.analytics.data.v1alpha.FilterExpression.fromObject(object.dimensionFilter); } - if (object.desc != null) - message.desc = Boolean(object.desc); + if (object.comparison != null) + message.comparison = String(object.comparison); return message; }; /** - * Creates a plain object from an OrderBy message. Also converts values to other types if specified. + * Creates a plain object from a Comparison message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.OrderBy + * @memberof google.analytics.data.v1alpha.Comparison * @static - * @param {google.analytics.data.v1alpha.OrderBy} message OrderBy + * @param {google.analytics.data.v1alpha.Comparison} message Comparison * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - OrderBy.toObject = function toObject(message, options) { + Comparison.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.defaults) - object.desc = false; - if (message.metric != null && message.hasOwnProperty("metric")) { - object.metric = $root.google.analytics.data.v1alpha.OrderBy.MetricOrderBy.toObject(message.metric, options); + if (message.name != null && message.hasOwnProperty("name")) { + object.name = message.name; if (options.oneofs) - object.oneOrderBy = "metric"; + object._name = "name"; } - if (message.dimension != null && message.hasOwnProperty("dimension")) { - object.dimension = $root.google.analytics.data.v1alpha.OrderBy.DimensionOrderBy.toObject(message.dimension, options); + if (message.dimensionFilter != null && message.hasOwnProperty("dimensionFilter")) { + object.dimensionFilter = $root.google.analytics.data.v1alpha.FilterExpression.toObject(message.dimensionFilter, options); if (options.oneofs) - object.oneOrderBy = "dimension"; + object.oneComparison = "dimensionFilter"; + } + if (message.comparison != null && message.hasOwnProperty("comparison")) { + object.comparison = message.comparison; + if (options.oneofs) + object.oneComparison = "comparison"; } - if (message.desc != null && message.hasOwnProperty("desc")) - object.desc = message.desc; return object; }; /** - * Converts this OrderBy to JSON. + * Converts this Comparison to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.OrderBy + * @memberof google.analytics.data.v1alpha.Comparison * @instance * @returns {Object.} JSON object */ - OrderBy.prototype.toJSON = function toJSON() { + Comparison.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for OrderBy + * Gets the default type url for Comparison * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.OrderBy + * @memberof google.analytics.data.v1alpha.Comparison * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - OrderBy.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + Comparison.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.analytics.data.v1alpha.OrderBy"; + return typeUrlPrefix + "/google.analytics.data.v1alpha.Comparison"; }; - OrderBy.MetricOrderBy = (function() { + return Comparison; + })(); - /** - * Properties of a MetricOrderBy. - * @memberof google.analytics.data.v1alpha.OrderBy - * @interface IMetricOrderBy - * @property {string|null} [metricName] MetricOrderBy metricName - */ + v1alpha.FilterExpression = (function() { - /** - * Constructs a new MetricOrderBy. - * @memberof google.analytics.data.v1alpha.OrderBy - * @classdesc Represents a MetricOrderBy. - * @implements IMetricOrderBy - * @constructor - * @param {google.analytics.data.v1alpha.OrderBy.IMetricOrderBy=} [properties] Properties to set - */ - function MetricOrderBy(properties) { - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * Properties of a FilterExpression. + * @memberof google.analytics.data.v1alpha + * @interface IFilterExpression + * @property {google.analytics.data.v1alpha.IFilterExpressionList|null} [andGroup] FilterExpression andGroup + * @property {google.analytics.data.v1alpha.IFilterExpressionList|null} [orGroup] FilterExpression orGroup + * @property {google.analytics.data.v1alpha.IFilterExpression|null} [notExpression] FilterExpression notExpression + * @property {google.analytics.data.v1alpha.IFilter|null} [filter] FilterExpression filter + */ - /** - * MetricOrderBy metricName. - * @member {string} metricName - * @memberof google.analytics.data.v1alpha.OrderBy.MetricOrderBy - * @instance - */ - MetricOrderBy.prototype.metricName = ""; + /** + * Constructs a new FilterExpression. + * @memberof google.analytics.data.v1alpha + * @classdesc Represents a FilterExpression. + * @implements IFilterExpression + * @constructor + * @param {google.analytics.data.v1alpha.IFilterExpression=} [properties] Properties to set + */ + function FilterExpression(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * Creates a new MetricOrderBy instance using the specified properties. - * @function create - * @memberof google.analytics.data.v1alpha.OrderBy.MetricOrderBy - * @static - * @param {google.analytics.data.v1alpha.OrderBy.IMetricOrderBy=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.OrderBy.MetricOrderBy} MetricOrderBy instance - */ - MetricOrderBy.create = function create(properties) { - return new MetricOrderBy(properties); - }; + /** + * FilterExpression andGroup. + * @member {google.analytics.data.v1alpha.IFilterExpressionList|null|undefined} andGroup + * @memberof google.analytics.data.v1alpha.FilterExpression + * @instance + */ + FilterExpression.prototype.andGroup = null; - /** - * Encodes the specified MetricOrderBy message. Does not implicitly {@link google.analytics.data.v1alpha.OrderBy.MetricOrderBy.verify|verify} messages. - * @function encode - * @memberof google.analytics.data.v1alpha.OrderBy.MetricOrderBy - * @static - * @param {google.analytics.data.v1alpha.OrderBy.IMetricOrderBy} message MetricOrderBy message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - MetricOrderBy.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.metricName != null && Object.hasOwnProperty.call(message, "metricName")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.metricName); - return writer; - }; - - /** - * Encodes the specified MetricOrderBy message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.OrderBy.MetricOrderBy.verify|verify} messages. - * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.OrderBy.MetricOrderBy - * @static - * @param {google.analytics.data.v1alpha.OrderBy.IMetricOrderBy} message MetricOrderBy message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - MetricOrderBy.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; - - /** - * Decodes a MetricOrderBy message from the specified reader or buffer. - * @function decode - * @memberof google.analytics.data.v1alpha.OrderBy.MetricOrderBy - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.OrderBy.MetricOrderBy} MetricOrderBy - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - MetricOrderBy.decode = function decode(reader, length, error) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.OrderBy.MetricOrderBy(); - while (reader.pos < end) { - var tag = reader.uint32(); - if (tag === error) - break; - switch (tag >>> 3) { - case 1: { - message.metricName = reader.string(); - break; - } - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; - - /** - * Decodes a MetricOrderBy message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.OrderBy.MetricOrderBy - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.OrderBy.MetricOrderBy} MetricOrderBy - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - MetricOrderBy.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; - - /** - * Verifies a MetricOrderBy message. - * @function verify - * @memberof google.analytics.data.v1alpha.OrderBy.MetricOrderBy - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - MetricOrderBy.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.metricName != null && message.hasOwnProperty("metricName")) - if (!$util.isString(message.metricName)) - return "metricName: string expected"; - return null; - }; - - /** - * Creates a MetricOrderBy message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.analytics.data.v1alpha.OrderBy.MetricOrderBy - * @static - * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.OrderBy.MetricOrderBy} MetricOrderBy - */ - MetricOrderBy.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.OrderBy.MetricOrderBy) - return object; - var message = new $root.google.analytics.data.v1alpha.OrderBy.MetricOrderBy(); - if (object.metricName != null) - message.metricName = String(object.metricName); - return message; - }; + /** + * FilterExpression orGroup. + * @member {google.analytics.data.v1alpha.IFilterExpressionList|null|undefined} orGroup + * @memberof google.analytics.data.v1alpha.FilterExpression + * @instance + */ + FilterExpression.prototype.orGroup = null; - /** - * Creates a plain object from a MetricOrderBy message. Also converts values to other types if specified. - * @function toObject - * @memberof google.analytics.data.v1alpha.OrderBy.MetricOrderBy - * @static - * @param {google.analytics.data.v1alpha.OrderBy.MetricOrderBy} message MetricOrderBy - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - MetricOrderBy.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) - object.metricName = ""; - if (message.metricName != null && message.hasOwnProperty("metricName")) - object.metricName = message.metricName; - return object; - }; + /** + * FilterExpression notExpression. + * @member {google.analytics.data.v1alpha.IFilterExpression|null|undefined} notExpression + * @memberof google.analytics.data.v1alpha.FilterExpression + * @instance + */ + FilterExpression.prototype.notExpression = null; - /** - * Converts this MetricOrderBy to JSON. - * @function toJSON - * @memberof google.analytics.data.v1alpha.OrderBy.MetricOrderBy - * @instance - * @returns {Object.} JSON object - */ - MetricOrderBy.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * FilterExpression filter. + * @member {google.analytics.data.v1alpha.IFilter|null|undefined} filter + * @memberof google.analytics.data.v1alpha.FilterExpression + * @instance + */ + FilterExpression.prototype.filter = null; - /** - * Gets the default type url for MetricOrderBy - * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.OrderBy.MetricOrderBy - * @static - * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns {string} The default type url - */ - MetricOrderBy.getTypeUrl = function getTypeUrl(typeUrlPrefix) { - if (typeUrlPrefix === undefined) { - typeUrlPrefix = "type.googleapis.com"; - } - return typeUrlPrefix + "/google.analytics.data.v1alpha.OrderBy.MetricOrderBy"; - }; + // OneOf field names bound to virtual getters and setters + var $oneOfFields; - return MetricOrderBy; - })(); + /** + * FilterExpression expr. + * @member {"andGroup"|"orGroup"|"notExpression"|"filter"|undefined} expr + * @memberof google.analytics.data.v1alpha.FilterExpression + * @instance + */ + Object.defineProperty(FilterExpression.prototype, "expr", { + get: $util.oneOfGetter($oneOfFields = ["andGroup", "orGroup", "notExpression", "filter"]), + set: $util.oneOfSetter($oneOfFields) + }); - OrderBy.DimensionOrderBy = (function() { + /** + * Creates a new FilterExpression instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1alpha.FilterExpression + * @static + * @param {google.analytics.data.v1alpha.IFilterExpression=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.FilterExpression} FilterExpression instance + */ + FilterExpression.create = function create(properties) { + return new FilterExpression(properties); + }; - /** - * Properties of a DimensionOrderBy. - * @memberof google.analytics.data.v1alpha.OrderBy - * @interface IDimensionOrderBy - * @property {string|null} [dimensionName] DimensionOrderBy dimensionName - * @property {google.analytics.data.v1alpha.OrderBy.DimensionOrderBy.OrderType|null} [orderType] DimensionOrderBy orderType - */ + /** + * Encodes the specified FilterExpression message. Does not implicitly {@link google.analytics.data.v1alpha.FilterExpression.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1alpha.FilterExpression + * @static + * @param {google.analytics.data.v1alpha.IFilterExpression} message FilterExpression message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + FilterExpression.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.andGroup != null && Object.hasOwnProperty.call(message, "andGroup")) + $root.google.analytics.data.v1alpha.FilterExpressionList.encode(message.andGroup, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.orGroup != null && Object.hasOwnProperty.call(message, "orGroup")) + $root.google.analytics.data.v1alpha.FilterExpressionList.encode(message.orGroup, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.notExpression != null && Object.hasOwnProperty.call(message, "notExpression")) + $root.google.analytics.data.v1alpha.FilterExpression.encode(message.notExpression, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.filter != null && Object.hasOwnProperty.call(message, "filter")) + $root.google.analytics.data.v1alpha.Filter.encode(message.filter, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + return writer; + }; - /** - * Constructs a new DimensionOrderBy. - * @memberof google.analytics.data.v1alpha.OrderBy - * @classdesc Represents a DimensionOrderBy. - * @implements IDimensionOrderBy - * @constructor - * @param {google.analytics.data.v1alpha.OrderBy.IDimensionOrderBy=} [properties] Properties to set - */ - function DimensionOrderBy(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]]; - } + /** + * Encodes the specified FilterExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FilterExpression.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1alpha.FilterExpression + * @static + * @param {google.analytics.data.v1alpha.IFilterExpression} message FilterExpression message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + FilterExpression.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * DimensionOrderBy dimensionName. - * @member {string} dimensionName - * @memberof google.analytics.data.v1alpha.OrderBy.DimensionOrderBy - * @instance - */ - DimensionOrderBy.prototype.dimensionName = ""; - - /** - * DimensionOrderBy orderType. - * @member {google.analytics.data.v1alpha.OrderBy.DimensionOrderBy.OrderType} orderType - * @memberof google.analytics.data.v1alpha.OrderBy.DimensionOrderBy - * @instance - */ - DimensionOrderBy.prototype.orderType = 0; - - /** - * Creates a new DimensionOrderBy instance using the specified properties. - * @function create - * @memberof google.analytics.data.v1alpha.OrderBy.DimensionOrderBy - * @static - * @param {google.analytics.data.v1alpha.OrderBy.IDimensionOrderBy=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.OrderBy.DimensionOrderBy} DimensionOrderBy instance - */ - DimensionOrderBy.create = function create(properties) { - return new DimensionOrderBy(properties); - }; - - /** - * Encodes the specified DimensionOrderBy message. Does not implicitly {@link google.analytics.data.v1alpha.OrderBy.DimensionOrderBy.verify|verify} messages. - * @function encode - * @memberof google.analytics.data.v1alpha.OrderBy.DimensionOrderBy - * @static - * @param {google.analytics.data.v1alpha.OrderBy.IDimensionOrderBy} message DimensionOrderBy message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - DimensionOrderBy.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.dimensionName != null && Object.hasOwnProperty.call(message, "dimensionName")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.dimensionName); - if (message.orderType != null && Object.hasOwnProperty.call(message, "orderType")) - writer.uint32(/* id 2, wireType 0 =*/16).int32(message.orderType); - return writer; - }; - - /** - * Encodes the specified DimensionOrderBy message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.OrderBy.DimensionOrderBy.verify|verify} messages. - * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.OrderBy.DimensionOrderBy - * @static - * @param {google.analytics.data.v1alpha.OrderBy.IDimensionOrderBy} message DimensionOrderBy message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - DimensionOrderBy.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; - - /** - * Decodes a DimensionOrderBy message from the specified reader or buffer. - * @function decode - * @memberof google.analytics.data.v1alpha.OrderBy.DimensionOrderBy - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.OrderBy.DimensionOrderBy} DimensionOrderBy - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - DimensionOrderBy.decode = function decode(reader, length, error) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.OrderBy.DimensionOrderBy(); - while (reader.pos < end) { - var tag = reader.uint32(); - if (tag === error) + /** + * Decodes a FilterExpression message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1alpha.FilterExpression + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1alpha.FilterExpression} FilterExpression + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + FilterExpression.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.FilterExpression(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.andGroup = $root.google.analytics.data.v1alpha.FilterExpressionList.decode(reader, reader.uint32()); break; - switch (tag >>> 3) { - case 1: { - message.dimensionName = reader.string(); - break; - } - case 2: { - message.orderType = reader.int32(); - break; - } - default: - reader.skipType(tag & 7); + } + case 2: { + message.orGroup = $root.google.analytics.data.v1alpha.FilterExpressionList.decode(reader, reader.uint32()); break; } - } - return message; - }; - - /** - * Decodes a DimensionOrderBy message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.OrderBy.DimensionOrderBy - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.OrderBy.DimensionOrderBy} DimensionOrderBy - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - DimensionOrderBy.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; - - /** - * Verifies a DimensionOrderBy message. - * @function verify - * @memberof google.analytics.data.v1alpha.OrderBy.DimensionOrderBy - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - DimensionOrderBy.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.dimensionName != null && message.hasOwnProperty("dimensionName")) - if (!$util.isString(message.dimensionName)) - return "dimensionName: string expected"; - if (message.orderType != null && message.hasOwnProperty("orderType")) - switch (message.orderType) { - default: - return "orderType: enum value expected"; - case 0: - case 1: - case 2: - case 3: + case 3: { + message.notExpression = $root.google.analytics.data.v1alpha.FilterExpression.decode(reader, reader.uint32()); break; } - return null; - }; - - /** - * Creates a DimensionOrderBy message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.analytics.data.v1alpha.OrderBy.DimensionOrderBy - * @static - * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.OrderBy.DimensionOrderBy} DimensionOrderBy - */ - DimensionOrderBy.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.OrderBy.DimensionOrderBy) - return object; - var message = new $root.google.analytics.data.v1alpha.OrderBy.DimensionOrderBy(); - if (object.dimensionName != null) - message.dimensionName = String(object.dimensionName); - switch (object.orderType) { - default: - if (typeof object.orderType === "number") { - message.orderType = object.orderType; + case 4: { + message.filter = $root.google.analytics.data.v1alpha.Filter.decode(reader, reader.uint32()); break; } + default: + reader.skipType(tag & 7); break; - case "ORDER_TYPE_UNSPECIFIED": - case 0: - message.orderType = 0; - break; - case "ALPHANUMERIC": - case 1: - message.orderType = 1; - break; - case "CASE_INSENSITIVE_ALPHANUMERIC": - case 2: - message.orderType = 2; - break; - case "NUMERIC": - case 3: - message.orderType = 3; - break; - } - return message; - }; - - /** - * Creates a plain object from a DimensionOrderBy message. Also converts values to other types if specified. - * @function toObject - * @memberof google.analytics.data.v1alpha.OrderBy.DimensionOrderBy - * @static - * @param {google.analytics.data.v1alpha.OrderBy.DimensionOrderBy} message DimensionOrderBy - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - DimensionOrderBy.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) { - object.dimensionName = ""; - object.orderType = options.enums === String ? "ORDER_TYPE_UNSPECIFIED" : 0; } - if (message.dimensionName != null && message.hasOwnProperty("dimensionName")) - object.dimensionName = message.dimensionName; - if (message.orderType != null && message.hasOwnProperty("orderType")) - object.orderType = options.enums === String ? $root.google.analytics.data.v1alpha.OrderBy.DimensionOrderBy.OrderType[message.orderType] === undefined ? message.orderType : $root.google.analytics.data.v1alpha.OrderBy.DimensionOrderBy.OrderType[message.orderType] : message.orderType; - return object; - }; + } + return message; + }; - /** - * Converts this DimensionOrderBy to JSON. - * @function toJSON - * @memberof google.analytics.data.v1alpha.OrderBy.DimensionOrderBy - * @instance - * @returns {Object.} JSON object - */ - DimensionOrderBy.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Decodes a FilterExpression message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1alpha.FilterExpression + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1alpha.FilterExpression} FilterExpression + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + FilterExpression.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Gets the default type url for DimensionOrderBy - * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.OrderBy.DimensionOrderBy - * @static - * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns {string} The default type url - */ - DimensionOrderBy.getTypeUrl = function getTypeUrl(typeUrlPrefix) { - if (typeUrlPrefix === undefined) { - typeUrlPrefix = "type.googleapis.com"; + /** + * Verifies a FilterExpression message. + * @function verify + * @memberof google.analytics.data.v1alpha.FilterExpression + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + FilterExpression.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.andGroup != null && message.hasOwnProperty("andGroup")) { + properties.expr = 1; + { + var error = $root.google.analytics.data.v1alpha.FilterExpressionList.verify(message.andGroup); + if (error) + return "andGroup." + error; } - return typeUrlPrefix + "/google.analytics.data.v1alpha.OrderBy.DimensionOrderBy"; - }; + } + if (message.orGroup != null && message.hasOwnProperty("orGroup")) { + if (properties.expr === 1) + return "expr: multiple values"; + properties.expr = 1; + { + var error = $root.google.analytics.data.v1alpha.FilterExpressionList.verify(message.orGroup); + if (error) + return "orGroup." + error; + } + } + if (message.notExpression != null && message.hasOwnProperty("notExpression")) { + if (properties.expr === 1) + return "expr: multiple values"; + properties.expr = 1; + { + var error = $root.google.analytics.data.v1alpha.FilterExpression.verify(message.notExpression); + if (error) + return "notExpression." + error; + } + } + if (message.filter != null && message.hasOwnProperty("filter")) { + if (properties.expr === 1) + return "expr: multiple values"; + properties.expr = 1; + { + var error = $root.google.analytics.data.v1alpha.Filter.verify(message.filter); + if (error) + return "filter." + error; + } + } + return null; + }; - /** - * OrderType enum. - * @name google.analytics.data.v1alpha.OrderBy.DimensionOrderBy.OrderType - * @enum {number} - * @property {number} ORDER_TYPE_UNSPECIFIED=0 ORDER_TYPE_UNSPECIFIED value - * @property {number} ALPHANUMERIC=1 ALPHANUMERIC value - * @property {number} CASE_INSENSITIVE_ALPHANUMERIC=2 CASE_INSENSITIVE_ALPHANUMERIC value - * @property {number} NUMERIC=3 NUMERIC value - */ - DimensionOrderBy.OrderType = (function() { - var valuesById = {}, values = Object.create(valuesById); - values[valuesById[0] = "ORDER_TYPE_UNSPECIFIED"] = 0; - values[valuesById[1] = "ALPHANUMERIC"] = 1; - values[valuesById[2] = "CASE_INSENSITIVE_ALPHANUMERIC"] = 2; - values[valuesById[3] = "NUMERIC"] = 3; - return values; - })(); + /** + * Creates a FilterExpression message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1alpha.FilterExpression + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1alpha.FilterExpression} FilterExpression + */ + FilterExpression.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.FilterExpression) + return object; + var message = new $root.google.analytics.data.v1alpha.FilterExpression(); + if (object.andGroup != null) { + if (typeof object.andGroup !== "object") + throw TypeError(".google.analytics.data.v1alpha.FilterExpression.andGroup: object expected"); + message.andGroup = $root.google.analytics.data.v1alpha.FilterExpressionList.fromObject(object.andGroup); + } + if (object.orGroup != null) { + if (typeof object.orGroup !== "object") + throw TypeError(".google.analytics.data.v1alpha.FilterExpression.orGroup: object expected"); + message.orGroup = $root.google.analytics.data.v1alpha.FilterExpressionList.fromObject(object.orGroup); + } + if (object.notExpression != null) { + if (typeof object.notExpression !== "object") + throw TypeError(".google.analytics.data.v1alpha.FilterExpression.notExpression: object expected"); + message.notExpression = $root.google.analytics.data.v1alpha.FilterExpression.fromObject(object.notExpression); + } + if (object.filter != null) { + if (typeof object.filter !== "object") + throw TypeError(".google.analytics.data.v1alpha.FilterExpression.filter: object expected"); + message.filter = $root.google.analytics.data.v1alpha.Filter.fromObject(object.filter); + } + return message; + }; - return DimensionOrderBy; - })(); + /** + * Creates a plain object from a FilterExpression message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1alpha.FilterExpression + * @static + * @param {google.analytics.data.v1alpha.FilterExpression} message FilterExpression + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + FilterExpression.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.andGroup != null && message.hasOwnProperty("andGroup")) { + object.andGroup = $root.google.analytics.data.v1alpha.FilterExpressionList.toObject(message.andGroup, options); + if (options.oneofs) + object.expr = "andGroup"; + } + if (message.orGroup != null && message.hasOwnProperty("orGroup")) { + object.orGroup = $root.google.analytics.data.v1alpha.FilterExpressionList.toObject(message.orGroup, options); + if (options.oneofs) + object.expr = "orGroup"; + } + if (message.notExpression != null && message.hasOwnProperty("notExpression")) { + object.notExpression = $root.google.analytics.data.v1alpha.FilterExpression.toObject(message.notExpression, options); + if (options.oneofs) + object.expr = "notExpression"; + } + if (message.filter != null && message.hasOwnProperty("filter")) { + object.filter = $root.google.analytics.data.v1alpha.Filter.toObject(message.filter, options); + if (options.oneofs) + object.expr = "filter"; + } + return object; + }; - return OrderBy; + /** + * Converts this FilterExpression to JSON. + * @function toJSON + * @memberof google.analytics.data.v1alpha.FilterExpression + * @instance + * @returns {Object.} JSON object + */ + FilterExpression.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for FilterExpression + * @function getTypeUrl + * @memberof google.analytics.data.v1alpha.FilterExpression + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + FilterExpression.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.analytics.data.v1alpha.FilterExpression"; + }; + + return FilterExpression; })(); - v1alpha.BetweenFilter = (function() { + v1alpha.FilterExpressionList = (function() { /** - * Properties of a BetweenFilter. + * Properties of a FilterExpressionList. * @memberof google.analytics.data.v1alpha - * @interface IBetweenFilter - * @property {google.analytics.data.v1alpha.INumericValue|null} [fromValue] BetweenFilter fromValue - * @property {google.analytics.data.v1alpha.INumericValue|null} [toValue] BetweenFilter toValue + * @interface IFilterExpressionList + * @property {Array.|null} [expressions] FilterExpressionList expressions */ /** - * Constructs a new BetweenFilter. + * Constructs a new FilterExpressionList. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a BetweenFilter. - * @implements IBetweenFilter + * @classdesc Represents a FilterExpressionList. + * @implements IFilterExpressionList * @constructor - * @param {google.analytics.data.v1alpha.IBetweenFilter=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IFilterExpressionList=} [properties] Properties to set */ - function BetweenFilter(properties) { + function FilterExpressionList(properties) { + this.expressions = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -27501,91 +26914,80 @@ } /** - * BetweenFilter fromValue. - * @member {google.analytics.data.v1alpha.INumericValue|null|undefined} fromValue - * @memberof google.analytics.data.v1alpha.BetweenFilter - * @instance - */ - BetweenFilter.prototype.fromValue = null; - - /** - * BetweenFilter toValue. - * @member {google.analytics.data.v1alpha.INumericValue|null|undefined} toValue - * @memberof google.analytics.data.v1alpha.BetweenFilter + * FilterExpressionList expressions. + * @member {Array.} expressions + * @memberof google.analytics.data.v1alpha.FilterExpressionList * @instance */ - BetweenFilter.prototype.toValue = null; + FilterExpressionList.prototype.expressions = $util.emptyArray; /** - * Creates a new BetweenFilter instance using the specified properties. + * Creates a new FilterExpressionList instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.BetweenFilter + * @memberof google.analytics.data.v1alpha.FilterExpressionList * @static - * @param {google.analytics.data.v1alpha.IBetweenFilter=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.BetweenFilter} BetweenFilter instance + * @param {google.analytics.data.v1alpha.IFilterExpressionList=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.FilterExpressionList} FilterExpressionList instance */ - BetweenFilter.create = function create(properties) { - return new BetweenFilter(properties); + FilterExpressionList.create = function create(properties) { + return new FilterExpressionList(properties); }; /** - * Encodes the specified BetweenFilter message. Does not implicitly {@link google.analytics.data.v1alpha.BetweenFilter.verify|verify} messages. + * Encodes the specified FilterExpressionList message. Does not implicitly {@link google.analytics.data.v1alpha.FilterExpressionList.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.BetweenFilter + * @memberof google.analytics.data.v1alpha.FilterExpressionList * @static - * @param {google.analytics.data.v1alpha.IBetweenFilter} message BetweenFilter message or plain object to encode + * @param {google.analytics.data.v1alpha.IFilterExpressionList} message FilterExpressionList message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - BetweenFilter.encode = function encode(message, writer) { + FilterExpressionList.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.fromValue != null && Object.hasOwnProperty.call(message, "fromValue")) - $root.google.analytics.data.v1alpha.NumericValue.encode(message.fromValue, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.toValue != null && Object.hasOwnProperty.call(message, "toValue")) - $root.google.analytics.data.v1alpha.NumericValue.encode(message.toValue, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.expressions != null && message.expressions.length) + for (var i = 0; i < message.expressions.length; ++i) + $root.google.analytics.data.v1alpha.FilterExpression.encode(message.expressions[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); return writer; }; /** - * Encodes the specified BetweenFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.BetweenFilter.verify|verify} messages. + * Encodes the specified FilterExpressionList message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FilterExpressionList.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.BetweenFilter + * @memberof google.analytics.data.v1alpha.FilterExpressionList * @static - * @param {google.analytics.data.v1alpha.IBetweenFilter} message BetweenFilter message or plain object to encode + * @param {google.analytics.data.v1alpha.IFilterExpressionList} message FilterExpressionList message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - BetweenFilter.encodeDelimited = function encodeDelimited(message, writer) { + FilterExpressionList.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a BetweenFilter message from the specified reader or buffer. + * Decodes a FilterExpressionList message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.BetweenFilter + * @memberof google.analytics.data.v1alpha.FilterExpressionList * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.BetweenFilter} BetweenFilter + * @returns {google.analytics.data.v1alpha.FilterExpressionList} FilterExpressionList * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - BetweenFilter.decode = function decode(reader, length, error) { + FilterExpressionList.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.BetweenFilter(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.FilterExpressionList(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { case 1: { - message.fromValue = $root.google.analytics.data.v1alpha.NumericValue.decode(reader, reader.uint32()); - break; - } - case 2: { - message.toValue = $root.google.analytics.data.v1alpha.NumericValue.decode(reader, reader.uint32()); + if (!(message.expressions && message.expressions.length)) + message.expressions = []; + message.expressions.push($root.google.analytics.data.v1alpha.FilterExpression.decode(reader, reader.uint32())); break; } default: @@ -27597,140 +26999,144 @@ }; /** - * Decodes a BetweenFilter message from the specified reader or buffer, length delimited. + * Decodes a FilterExpressionList message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.BetweenFilter + * @memberof google.analytics.data.v1alpha.FilterExpressionList * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.BetweenFilter} BetweenFilter + * @returns {google.analytics.data.v1alpha.FilterExpressionList} FilterExpressionList * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - BetweenFilter.decodeDelimited = function decodeDelimited(reader) { + FilterExpressionList.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a BetweenFilter message. + * Verifies a FilterExpressionList message. * @function verify - * @memberof google.analytics.data.v1alpha.BetweenFilter + * @memberof google.analytics.data.v1alpha.FilterExpressionList * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - BetweenFilter.verify = function verify(message) { + FilterExpressionList.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.fromValue != null && message.hasOwnProperty("fromValue")) { - var error = $root.google.analytics.data.v1alpha.NumericValue.verify(message.fromValue); - if (error) - return "fromValue." + error; - } - if (message.toValue != null && message.hasOwnProperty("toValue")) { - var error = $root.google.analytics.data.v1alpha.NumericValue.verify(message.toValue); - if (error) - return "toValue." + error; + if (message.expressions != null && message.hasOwnProperty("expressions")) { + if (!Array.isArray(message.expressions)) + return "expressions: array expected"; + for (var i = 0; i < message.expressions.length; ++i) { + var error = $root.google.analytics.data.v1alpha.FilterExpression.verify(message.expressions[i]); + if (error) + return "expressions." + error; + } } return null; }; /** - * Creates a BetweenFilter message from a plain object. Also converts values to their respective internal types. + * Creates a FilterExpressionList message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.BetweenFilter + * @memberof google.analytics.data.v1alpha.FilterExpressionList * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.BetweenFilter} BetweenFilter + * @returns {google.analytics.data.v1alpha.FilterExpressionList} FilterExpressionList */ - BetweenFilter.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.BetweenFilter) + FilterExpressionList.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.FilterExpressionList) return object; - var message = new $root.google.analytics.data.v1alpha.BetweenFilter(); - if (object.fromValue != null) { - if (typeof object.fromValue !== "object") - throw TypeError(".google.analytics.data.v1alpha.BetweenFilter.fromValue: object expected"); - message.fromValue = $root.google.analytics.data.v1alpha.NumericValue.fromObject(object.fromValue); - } - if (object.toValue != null) { - if (typeof object.toValue !== "object") - throw TypeError(".google.analytics.data.v1alpha.BetweenFilter.toValue: object expected"); - message.toValue = $root.google.analytics.data.v1alpha.NumericValue.fromObject(object.toValue); + var message = new $root.google.analytics.data.v1alpha.FilterExpressionList(); + if (object.expressions) { + if (!Array.isArray(object.expressions)) + throw TypeError(".google.analytics.data.v1alpha.FilterExpressionList.expressions: array expected"); + message.expressions = []; + for (var i = 0; i < object.expressions.length; ++i) { + if (typeof object.expressions[i] !== "object") + throw TypeError(".google.analytics.data.v1alpha.FilterExpressionList.expressions: object expected"); + message.expressions[i] = $root.google.analytics.data.v1alpha.FilterExpression.fromObject(object.expressions[i]); + } } return message; }; /** - * Creates a plain object from a BetweenFilter message. Also converts values to other types if specified. + * Creates a plain object from a FilterExpressionList message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.BetweenFilter + * @memberof google.analytics.data.v1alpha.FilterExpressionList * @static - * @param {google.analytics.data.v1alpha.BetweenFilter} message BetweenFilter + * @param {google.analytics.data.v1alpha.FilterExpressionList} message FilterExpressionList * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - BetweenFilter.toObject = function toObject(message, options) { + FilterExpressionList.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.defaults) { - object.fromValue = null; - object.toValue = null; + if (options.arrays || options.defaults) + object.expressions = []; + if (message.expressions && message.expressions.length) { + object.expressions = []; + for (var j = 0; j < message.expressions.length; ++j) + object.expressions[j] = $root.google.analytics.data.v1alpha.FilterExpression.toObject(message.expressions[j], options); } - if (message.fromValue != null && message.hasOwnProperty("fromValue")) - object.fromValue = $root.google.analytics.data.v1alpha.NumericValue.toObject(message.fromValue, options); - if (message.toValue != null && message.hasOwnProperty("toValue")) - object.toValue = $root.google.analytics.data.v1alpha.NumericValue.toObject(message.toValue, options); return object; }; /** - * Converts this BetweenFilter to JSON. + * Converts this FilterExpressionList to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.BetweenFilter + * @memberof google.analytics.data.v1alpha.FilterExpressionList * @instance * @returns {Object.} JSON object */ - BetweenFilter.prototype.toJSON = function toJSON() { + FilterExpressionList.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for BetweenFilter + * Gets the default type url for FilterExpressionList * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.BetweenFilter + * @memberof google.analytics.data.v1alpha.FilterExpressionList * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - BetweenFilter.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + FilterExpressionList.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.analytics.data.v1alpha.BetweenFilter"; + return typeUrlPrefix + "/google.analytics.data.v1alpha.FilterExpressionList"; }; - return BetweenFilter; + return FilterExpressionList; })(); - v1alpha.EmptyFilter = (function() { + v1alpha.Filter = (function() { /** - * Properties of an EmptyFilter. + * Properties of a Filter. * @memberof google.analytics.data.v1alpha - * @interface IEmptyFilter + * @interface IFilter + * @property {string|null} [fieldName] Filter fieldName + * @property {google.analytics.data.v1alpha.IStringFilter|null} [stringFilter] Filter stringFilter + * @property {google.analytics.data.v1alpha.IInListFilter|null} [inListFilter] Filter inListFilter + * @property {google.analytics.data.v1alpha.INumericFilter|null} [numericFilter] Filter numericFilter + * @property {google.analytics.data.v1alpha.IBetweenFilter|null} [betweenFilter] Filter betweenFilter + * @property {google.analytics.data.v1alpha.IEmptyFilter|null} [emptyFilter] Filter emptyFilter */ /** - * Constructs a new EmptyFilter. + * Constructs a new Filter. * @memberof google.analytics.data.v1alpha - * @classdesc Represents an EmptyFilter. - * @implements IEmptyFilter + * @classdesc Represents a Filter. + * @implements IFilter * @constructor - * @param {google.analytics.data.v1alpha.IEmptyFilter=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IFilter=} [properties] Properties to set */ - function EmptyFilter(properties) { + function Filter(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -27738,178 +27144,389 @@ } /** - * Creates a new EmptyFilter instance using the specified properties. + * Filter fieldName. + * @member {string} fieldName + * @memberof google.analytics.data.v1alpha.Filter + * @instance + */ + Filter.prototype.fieldName = ""; + + /** + * Filter stringFilter. + * @member {google.analytics.data.v1alpha.IStringFilter|null|undefined} stringFilter + * @memberof google.analytics.data.v1alpha.Filter + * @instance + */ + Filter.prototype.stringFilter = null; + + /** + * Filter inListFilter. + * @member {google.analytics.data.v1alpha.IInListFilter|null|undefined} inListFilter + * @memberof google.analytics.data.v1alpha.Filter + * @instance + */ + Filter.prototype.inListFilter = null; + + /** + * Filter numericFilter. + * @member {google.analytics.data.v1alpha.INumericFilter|null|undefined} numericFilter + * @memberof google.analytics.data.v1alpha.Filter + * @instance + */ + Filter.prototype.numericFilter = null; + + /** + * Filter betweenFilter. + * @member {google.analytics.data.v1alpha.IBetweenFilter|null|undefined} betweenFilter + * @memberof google.analytics.data.v1alpha.Filter + * @instance + */ + Filter.prototype.betweenFilter = null; + + /** + * Filter emptyFilter. + * @member {google.analytics.data.v1alpha.IEmptyFilter|null|undefined} emptyFilter + * @memberof google.analytics.data.v1alpha.Filter + * @instance + */ + Filter.prototype.emptyFilter = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * Filter oneFilter. + * @member {"stringFilter"|"inListFilter"|"numericFilter"|"betweenFilter"|"emptyFilter"|undefined} oneFilter + * @memberof google.analytics.data.v1alpha.Filter + * @instance + */ + Object.defineProperty(Filter.prototype, "oneFilter", { + get: $util.oneOfGetter($oneOfFields = ["stringFilter", "inListFilter", "numericFilter", "betweenFilter", "emptyFilter"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new Filter instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.EmptyFilter + * @memberof google.analytics.data.v1alpha.Filter * @static - * @param {google.analytics.data.v1alpha.IEmptyFilter=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.EmptyFilter} EmptyFilter instance + * @param {google.analytics.data.v1alpha.IFilter=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.Filter} Filter instance */ - EmptyFilter.create = function create(properties) { - return new EmptyFilter(properties); + Filter.create = function create(properties) { + return new Filter(properties); }; /** - * Encodes the specified EmptyFilter message. Does not implicitly {@link google.analytics.data.v1alpha.EmptyFilter.verify|verify} messages. + * Encodes the specified Filter message. Does not implicitly {@link google.analytics.data.v1alpha.Filter.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.EmptyFilter + * @memberof google.analytics.data.v1alpha.Filter * @static - * @param {google.analytics.data.v1alpha.IEmptyFilter} message EmptyFilter message or plain object to encode + * @param {google.analytics.data.v1alpha.IFilter} message Filter message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - EmptyFilter.encode = function encode(message, writer) { + Filter.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); + if (message.fieldName != null && Object.hasOwnProperty.call(message, "fieldName")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.fieldName); + if (message.stringFilter != null && Object.hasOwnProperty.call(message, "stringFilter")) + $root.google.analytics.data.v1alpha.StringFilter.encode(message.stringFilter, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.inListFilter != null && Object.hasOwnProperty.call(message, "inListFilter")) + $root.google.analytics.data.v1alpha.InListFilter.encode(message.inListFilter, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.numericFilter != null && Object.hasOwnProperty.call(message, "numericFilter")) + $root.google.analytics.data.v1alpha.NumericFilter.encode(message.numericFilter, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.betweenFilter != null && Object.hasOwnProperty.call(message, "betweenFilter")) + $root.google.analytics.data.v1alpha.BetweenFilter.encode(message.betweenFilter, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + if (message.emptyFilter != null && Object.hasOwnProperty.call(message, "emptyFilter")) + $root.google.analytics.data.v1alpha.EmptyFilter.encode(message.emptyFilter, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); return writer; }; /** - * Encodes the specified EmptyFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.EmptyFilter.verify|verify} messages. + * Encodes the specified Filter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.Filter.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.EmptyFilter + * @memberof google.analytics.data.v1alpha.Filter * @static - * @param {google.analytics.data.v1alpha.IEmptyFilter} message EmptyFilter message or plain object to encode + * @param {google.analytics.data.v1alpha.IFilter} message Filter message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - EmptyFilter.encodeDelimited = function encodeDelimited(message, writer) { + Filter.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes an EmptyFilter message from the specified reader or buffer. + * Decodes a Filter message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.EmptyFilter + * @memberof google.analytics.data.v1alpha.Filter * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.EmptyFilter} EmptyFilter + * @returns {google.analytics.data.v1alpha.Filter} Filter * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - EmptyFilter.decode = function decode(reader, length, error) { + Filter.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.EmptyFilter(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.Filter(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; - - /** - * Decodes an EmptyFilter message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.EmptyFilter - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.EmptyFilter} EmptyFilter - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - EmptyFilter.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) + case 1: { + message.fieldName = reader.string(); + break; + } + case 2: { + message.stringFilter = $root.google.analytics.data.v1alpha.StringFilter.decode(reader, reader.uint32()); + break; + } + case 3: { + message.inListFilter = $root.google.analytics.data.v1alpha.InListFilter.decode(reader, reader.uint32()); + break; + } + case 4: { + message.numericFilter = $root.google.analytics.data.v1alpha.NumericFilter.decode(reader, reader.uint32()); + break; + } + case 5: { + message.betweenFilter = $root.google.analytics.data.v1alpha.BetweenFilter.decode(reader, reader.uint32()); + break; + } + case 6: { + message.emptyFilter = $root.google.analytics.data.v1alpha.EmptyFilter.decode(reader, reader.uint32()); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a Filter message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1alpha.Filter + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1alpha.Filter} Filter + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Filter.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies an EmptyFilter message. + * Verifies a Filter message. * @function verify - * @memberof google.analytics.data.v1alpha.EmptyFilter + * @memberof google.analytics.data.v1alpha.Filter * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - EmptyFilter.verify = function verify(message) { + Filter.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; + var properties = {}; + if (message.fieldName != null && message.hasOwnProperty("fieldName")) + if (!$util.isString(message.fieldName)) + return "fieldName: string expected"; + if (message.stringFilter != null && message.hasOwnProperty("stringFilter")) { + properties.oneFilter = 1; + { + var error = $root.google.analytics.data.v1alpha.StringFilter.verify(message.stringFilter); + if (error) + return "stringFilter." + error; + } + } + if (message.inListFilter != null && message.hasOwnProperty("inListFilter")) { + if (properties.oneFilter === 1) + return "oneFilter: multiple values"; + properties.oneFilter = 1; + { + var error = $root.google.analytics.data.v1alpha.InListFilter.verify(message.inListFilter); + if (error) + return "inListFilter." + error; + } + } + if (message.numericFilter != null && message.hasOwnProperty("numericFilter")) { + if (properties.oneFilter === 1) + return "oneFilter: multiple values"; + properties.oneFilter = 1; + { + var error = $root.google.analytics.data.v1alpha.NumericFilter.verify(message.numericFilter); + if (error) + return "numericFilter." + error; + } + } + if (message.betweenFilter != null && message.hasOwnProperty("betweenFilter")) { + if (properties.oneFilter === 1) + return "oneFilter: multiple values"; + properties.oneFilter = 1; + { + var error = $root.google.analytics.data.v1alpha.BetweenFilter.verify(message.betweenFilter); + if (error) + return "betweenFilter." + error; + } + } + if (message.emptyFilter != null && message.hasOwnProperty("emptyFilter")) { + if (properties.oneFilter === 1) + return "oneFilter: multiple values"; + properties.oneFilter = 1; + { + var error = $root.google.analytics.data.v1alpha.EmptyFilter.verify(message.emptyFilter); + if (error) + return "emptyFilter." + error; + } + } return null; }; /** - * Creates an EmptyFilter message from a plain object. Also converts values to their respective internal types. + * Creates a Filter message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.EmptyFilter + * @memberof google.analytics.data.v1alpha.Filter * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.EmptyFilter} EmptyFilter + * @returns {google.analytics.data.v1alpha.Filter} Filter */ - EmptyFilter.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.EmptyFilter) + Filter.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.Filter) return object; - return new $root.google.analytics.data.v1alpha.EmptyFilter(); + var message = new $root.google.analytics.data.v1alpha.Filter(); + if (object.fieldName != null) + message.fieldName = String(object.fieldName); + if (object.stringFilter != null) { + if (typeof object.stringFilter !== "object") + throw TypeError(".google.analytics.data.v1alpha.Filter.stringFilter: object expected"); + message.stringFilter = $root.google.analytics.data.v1alpha.StringFilter.fromObject(object.stringFilter); + } + if (object.inListFilter != null) { + if (typeof object.inListFilter !== "object") + throw TypeError(".google.analytics.data.v1alpha.Filter.inListFilter: object expected"); + message.inListFilter = $root.google.analytics.data.v1alpha.InListFilter.fromObject(object.inListFilter); + } + if (object.numericFilter != null) { + if (typeof object.numericFilter !== "object") + throw TypeError(".google.analytics.data.v1alpha.Filter.numericFilter: object expected"); + message.numericFilter = $root.google.analytics.data.v1alpha.NumericFilter.fromObject(object.numericFilter); + } + if (object.betweenFilter != null) { + if (typeof object.betweenFilter !== "object") + throw TypeError(".google.analytics.data.v1alpha.Filter.betweenFilter: object expected"); + message.betweenFilter = $root.google.analytics.data.v1alpha.BetweenFilter.fromObject(object.betweenFilter); + } + if (object.emptyFilter != null) { + if (typeof object.emptyFilter !== "object") + throw TypeError(".google.analytics.data.v1alpha.Filter.emptyFilter: object expected"); + message.emptyFilter = $root.google.analytics.data.v1alpha.EmptyFilter.fromObject(object.emptyFilter); + } + return message; }; /** - * Creates a plain object from an EmptyFilter message. Also converts values to other types if specified. + * Creates a plain object from a Filter message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.EmptyFilter + * @memberof google.analytics.data.v1alpha.Filter * @static - * @param {google.analytics.data.v1alpha.EmptyFilter} message EmptyFilter + * @param {google.analytics.data.v1alpha.Filter} message Filter * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - EmptyFilter.toObject = function toObject() { - return {}; + Filter.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.fieldName = ""; + if (message.fieldName != null && message.hasOwnProperty("fieldName")) + object.fieldName = message.fieldName; + if (message.stringFilter != null && message.hasOwnProperty("stringFilter")) { + object.stringFilter = $root.google.analytics.data.v1alpha.StringFilter.toObject(message.stringFilter, options); + if (options.oneofs) + object.oneFilter = "stringFilter"; + } + if (message.inListFilter != null && message.hasOwnProperty("inListFilter")) { + object.inListFilter = $root.google.analytics.data.v1alpha.InListFilter.toObject(message.inListFilter, options); + if (options.oneofs) + object.oneFilter = "inListFilter"; + } + if (message.numericFilter != null && message.hasOwnProperty("numericFilter")) { + object.numericFilter = $root.google.analytics.data.v1alpha.NumericFilter.toObject(message.numericFilter, options); + if (options.oneofs) + object.oneFilter = "numericFilter"; + } + if (message.betweenFilter != null && message.hasOwnProperty("betweenFilter")) { + object.betweenFilter = $root.google.analytics.data.v1alpha.BetweenFilter.toObject(message.betweenFilter, options); + if (options.oneofs) + object.oneFilter = "betweenFilter"; + } + if (message.emptyFilter != null && message.hasOwnProperty("emptyFilter")) { + object.emptyFilter = $root.google.analytics.data.v1alpha.EmptyFilter.toObject(message.emptyFilter, options); + if (options.oneofs) + object.oneFilter = "emptyFilter"; + } + return object; }; /** - * Converts this EmptyFilter to JSON. + * Converts this Filter to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.EmptyFilter + * @memberof google.analytics.data.v1alpha.Filter * @instance * @returns {Object.} JSON object */ - EmptyFilter.prototype.toJSON = function toJSON() { + Filter.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for EmptyFilter + * Gets the default type url for Filter * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.EmptyFilter + * @memberof google.analytics.data.v1alpha.Filter * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - EmptyFilter.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + Filter.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.analytics.data.v1alpha.EmptyFilter"; + return typeUrlPrefix + "/google.analytics.data.v1alpha.Filter"; }; - return EmptyFilter; + return Filter; })(); - v1alpha.NumericValue = (function() { + v1alpha.StringFilter = (function() { /** - * Properties of a NumericValue. + * Properties of a StringFilter. * @memberof google.analytics.data.v1alpha - * @interface INumericValue - * @property {number|Long|null} [int64Value] NumericValue int64Value - * @property {number|null} [doubleValue] NumericValue doubleValue + * @interface IStringFilter + * @property {google.analytics.data.v1alpha.StringFilter.MatchType|null} [matchType] StringFilter matchType + * @property {string|null} [value] StringFilter value + * @property {boolean|null} [caseSensitive] StringFilter caseSensitive */ /** - * Constructs a new NumericValue. + * Constructs a new StringFilter. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a NumericValue. - * @implements INumericValue + * @classdesc Represents a StringFilter. + * @implements IStringFilter * @constructor - * @param {google.analytics.data.v1alpha.INumericValue=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IStringFilter=} [properties] Properties to set */ - function NumericValue(properties) { + function StringFilter(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -27917,105 +27534,105 @@ } /** - * NumericValue int64Value. - * @member {number|Long|null|undefined} int64Value - * @memberof google.analytics.data.v1alpha.NumericValue + * StringFilter matchType. + * @member {google.analytics.data.v1alpha.StringFilter.MatchType} matchType + * @memberof google.analytics.data.v1alpha.StringFilter * @instance */ - NumericValue.prototype.int64Value = null; + StringFilter.prototype.matchType = 0; /** - * NumericValue doubleValue. - * @member {number|null|undefined} doubleValue - * @memberof google.analytics.data.v1alpha.NumericValue + * StringFilter value. + * @member {string} value + * @memberof google.analytics.data.v1alpha.StringFilter * @instance */ - NumericValue.prototype.doubleValue = null; - - // OneOf field names bound to virtual getters and setters - var $oneOfFields; + StringFilter.prototype.value = ""; /** - * NumericValue oneValue. - * @member {"int64Value"|"doubleValue"|undefined} oneValue - * @memberof google.analytics.data.v1alpha.NumericValue + * StringFilter caseSensitive. + * @member {boolean} caseSensitive + * @memberof google.analytics.data.v1alpha.StringFilter * @instance */ - Object.defineProperty(NumericValue.prototype, "oneValue", { - get: $util.oneOfGetter($oneOfFields = ["int64Value", "doubleValue"]), - set: $util.oneOfSetter($oneOfFields) - }); + StringFilter.prototype.caseSensitive = false; /** - * Creates a new NumericValue instance using the specified properties. + * Creates a new StringFilter instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.NumericValue + * @memberof google.analytics.data.v1alpha.StringFilter * @static - * @param {google.analytics.data.v1alpha.INumericValue=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.NumericValue} NumericValue instance + * @param {google.analytics.data.v1alpha.IStringFilter=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.StringFilter} StringFilter instance */ - NumericValue.create = function create(properties) { - return new NumericValue(properties); + StringFilter.create = function create(properties) { + return new StringFilter(properties); }; /** - * Encodes the specified NumericValue message. Does not implicitly {@link google.analytics.data.v1alpha.NumericValue.verify|verify} messages. + * Encodes the specified StringFilter message. Does not implicitly {@link google.analytics.data.v1alpha.StringFilter.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.NumericValue + * @memberof google.analytics.data.v1alpha.StringFilter * @static - * @param {google.analytics.data.v1alpha.INumericValue} message NumericValue message or plain object to encode + * @param {google.analytics.data.v1alpha.IStringFilter} message StringFilter message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - NumericValue.encode = function encode(message, writer) { + StringFilter.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.int64Value != null && Object.hasOwnProperty.call(message, "int64Value")) - writer.uint32(/* id 1, wireType 0 =*/8).int64(message.int64Value); - if (message.doubleValue != null && Object.hasOwnProperty.call(message, "doubleValue")) - writer.uint32(/* id 2, wireType 1 =*/17).double(message.doubleValue); + if (message.matchType != null && Object.hasOwnProperty.call(message, "matchType")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.matchType); + if (message.value != null && Object.hasOwnProperty.call(message, "value")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.value); + if (message.caseSensitive != null && Object.hasOwnProperty.call(message, "caseSensitive")) + writer.uint32(/* id 3, wireType 0 =*/24).bool(message.caseSensitive); return writer; }; /** - * Encodes the specified NumericValue message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.NumericValue.verify|verify} messages. + * Encodes the specified StringFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.StringFilter.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.NumericValue + * @memberof google.analytics.data.v1alpha.StringFilter * @static - * @param {google.analytics.data.v1alpha.INumericValue} message NumericValue message or plain object to encode + * @param {google.analytics.data.v1alpha.IStringFilter} message StringFilter message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - NumericValue.encodeDelimited = function encodeDelimited(message, writer) { + StringFilter.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a NumericValue message from the specified reader or buffer. + * Decodes a StringFilter message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.NumericValue + * @memberof google.analytics.data.v1alpha.StringFilter * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.NumericValue} NumericValue + * @returns {google.analytics.data.v1alpha.StringFilter} StringFilter * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - NumericValue.decode = function decode(reader, length, error) { + StringFilter.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.NumericValue(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.StringFilter(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { case 1: { - message.int64Value = reader.int64(); + message.matchType = reader.int32(); break; } case 2: { - message.doubleValue = reader.double(); + message.value = reader.string(); + break; + } + case 3: { + message.caseSensitive = reader.bool(); break; } default: @@ -28027,153 +27644,209 @@ }; /** - * Decodes a NumericValue message from the specified reader or buffer, length delimited. + * Decodes a StringFilter message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.NumericValue + * @memberof google.analytics.data.v1alpha.StringFilter * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.NumericValue} NumericValue + * @returns {google.analytics.data.v1alpha.StringFilter} StringFilter * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - NumericValue.decodeDelimited = function decodeDelimited(reader) { + StringFilter.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a NumericValue message. + * Verifies a StringFilter message. * @function verify - * @memberof google.analytics.data.v1alpha.NumericValue + * @memberof google.analytics.data.v1alpha.StringFilter * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - NumericValue.verify = function verify(message) { + StringFilter.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - var properties = {}; - if (message.int64Value != null && message.hasOwnProperty("int64Value")) { - properties.oneValue = 1; - if (!$util.isInteger(message.int64Value) && !(message.int64Value && $util.isInteger(message.int64Value.low) && $util.isInteger(message.int64Value.high))) - return "int64Value: integer|Long expected"; - } - if (message.doubleValue != null && message.hasOwnProperty("doubleValue")) { - if (properties.oneValue === 1) - return "oneValue: multiple values"; - properties.oneValue = 1; - if (typeof message.doubleValue !== "number") - return "doubleValue: number expected"; - } + if (message.matchType != null && message.hasOwnProperty("matchType")) + switch (message.matchType) { + default: + return "matchType: enum value expected"; + case 0: + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + break; + } + if (message.value != null && message.hasOwnProperty("value")) + if (!$util.isString(message.value)) + return "value: string expected"; + if (message.caseSensitive != null && message.hasOwnProperty("caseSensitive")) + if (typeof message.caseSensitive !== "boolean") + return "caseSensitive: boolean expected"; return null; }; /** - * Creates a NumericValue message from a plain object. Also converts values to their respective internal types. + * Creates a StringFilter message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.NumericValue + * @memberof google.analytics.data.v1alpha.StringFilter * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.NumericValue} NumericValue + * @returns {google.analytics.data.v1alpha.StringFilter} StringFilter */ - NumericValue.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.NumericValue) + StringFilter.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.StringFilter) return object; - var message = new $root.google.analytics.data.v1alpha.NumericValue(); - if (object.int64Value != null) - if ($util.Long) - (message.int64Value = $util.Long.fromValue(object.int64Value)).unsigned = false; - else if (typeof object.int64Value === "string") - message.int64Value = parseInt(object.int64Value, 10); - else if (typeof object.int64Value === "number") - message.int64Value = object.int64Value; - else if (typeof object.int64Value === "object") - message.int64Value = new $util.LongBits(object.int64Value.low >>> 0, object.int64Value.high >>> 0).toNumber(); - if (object.doubleValue != null) - message.doubleValue = Number(object.doubleValue); + var message = new $root.google.analytics.data.v1alpha.StringFilter(); + switch (object.matchType) { + default: + if (typeof object.matchType === "number") { + message.matchType = object.matchType; + break; + } + break; + case "MATCH_TYPE_UNSPECIFIED": + case 0: + message.matchType = 0; + break; + case "EXACT": + case 1: + message.matchType = 1; + break; + case "BEGINS_WITH": + case 2: + message.matchType = 2; + break; + case "ENDS_WITH": + case 3: + message.matchType = 3; + break; + case "CONTAINS": + case 4: + message.matchType = 4; + break; + case "FULL_REGEXP": + case 5: + message.matchType = 5; + break; + case "PARTIAL_REGEXP": + case 6: + message.matchType = 6; + break; + } + if (object.value != null) + message.value = String(object.value); + if (object.caseSensitive != null) + message.caseSensitive = Boolean(object.caseSensitive); return message; }; /** - * Creates a plain object from a NumericValue message. Also converts values to other types if specified. + * Creates a plain object from a StringFilter message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.NumericValue + * @memberof google.analytics.data.v1alpha.StringFilter * @static - * @param {google.analytics.data.v1alpha.NumericValue} message NumericValue + * @param {google.analytics.data.v1alpha.StringFilter} message StringFilter * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - NumericValue.toObject = function toObject(message, options) { + StringFilter.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (message.int64Value != null && message.hasOwnProperty("int64Value")) { - if (typeof message.int64Value === "number") - object.int64Value = options.longs === String ? String(message.int64Value) : message.int64Value; - else - object.int64Value = options.longs === String ? $util.Long.prototype.toString.call(message.int64Value) : options.longs === Number ? new $util.LongBits(message.int64Value.low >>> 0, message.int64Value.high >>> 0).toNumber() : message.int64Value; - if (options.oneofs) - object.oneValue = "int64Value"; - } - if (message.doubleValue != null && message.hasOwnProperty("doubleValue")) { - object.doubleValue = options.json && !isFinite(message.doubleValue) ? String(message.doubleValue) : message.doubleValue; - if (options.oneofs) - object.oneValue = "doubleValue"; + if (options.defaults) { + object.matchType = options.enums === String ? "MATCH_TYPE_UNSPECIFIED" : 0; + object.value = ""; + object.caseSensitive = false; } + if (message.matchType != null && message.hasOwnProperty("matchType")) + object.matchType = options.enums === String ? $root.google.analytics.data.v1alpha.StringFilter.MatchType[message.matchType] === undefined ? message.matchType : $root.google.analytics.data.v1alpha.StringFilter.MatchType[message.matchType] : message.matchType; + if (message.value != null && message.hasOwnProperty("value")) + object.value = message.value; + if (message.caseSensitive != null && message.hasOwnProperty("caseSensitive")) + object.caseSensitive = message.caseSensitive; return object; }; /** - * Converts this NumericValue to JSON. + * Converts this StringFilter to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.NumericValue + * @memberof google.analytics.data.v1alpha.StringFilter * @instance * @returns {Object.} JSON object */ - NumericValue.prototype.toJSON = function toJSON() { + StringFilter.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for NumericValue + * Gets the default type url for StringFilter * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.NumericValue + * @memberof google.analytics.data.v1alpha.StringFilter * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - NumericValue.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + StringFilter.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.analytics.data.v1alpha.NumericValue"; + return typeUrlPrefix + "/google.analytics.data.v1alpha.StringFilter"; }; - return NumericValue; + /** + * MatchType enum. + * @name google.analytics.data.v1alpha.StringFilter.MatchType + * @enum {number} + * @property {number} MATCH_TYPE_UNSPECIFIED=0 MATCH_TYPE_UNSPECIFIED value + * @property {number} EXACT=1 EXACT value + * @property {number} BEGINS_WITH=2 BEGINS_WITH value + * @property {number} ENDS_WITH=3 ENDS_WITH value + * @property {number} CONTAINS=4 CONTAINS value + * @property {number} FULL_REGEXP=5 FULL_REGEXP value + * @property {number} PARTIAL_REGEXP=6 PARTIAL_REGEXP value + */ + StringFilter.MatchType = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "MATCH_TYPE_UNSPECIFIED"] = 0; + values[valuesById[1] = "EXACT"] = 1; + values[valuesById[2] = "BEGINS_WITH"] = 2; + values[valuesById[3] = "ENDS_WITH"] = 3; + values[valuesById[4] = "CONTAINS"] = 4; + values[valuesById[5] = "FULL_REGEXP"] = 5; + values[valuesById[6] = "PARTIAL_REGEXP"] = 6; + return values; + })(); + + return StringFilter; })(); - v1alpha.CohortSpec = (function() { + v1alpha.InListFilter = (function() { /** - * Properties of a CohortSpec. + * Properties of an InListFilter. * @memberof google.analytics.data.v1alpha - * @interface ICohortSpec - * @property {Array.|null} [cohorts] CohortSpec cohorts - * @property {google.analytics.data.v1alpha.ICohortsRange|null} [cohortsRange] CohortSpec cohortsRange - * @property {google.analytics.data.v1alpha.ICohortReportSettings|null} [cohortReportSettings] CohortSpec cohortReportSettings + * @interface IInListFilter + * @property {Array.|null} [values] InListFilter values + * @property {boolean|null} [caseSensitive] InListFilter caseSensitive */ /** - * Constructs a new CohortSpec. + * Constructs a new InListFilter. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a CohortSpec. - * @implements ICohortSpec + * @classdesc Represents an InListFilter. + * @implements IInListFilter * @constructor - * @param {google.analytics.data.v1alpha.ICohortSpec=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IInListFilter=} [properties] Properties to set */ - function CohortSpec(properties) { - this.cohorts = []; + function InListFilter(properties) { + this.values = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -28181,108 +27854,94 @@ } /** - * CohortSpec cohorts. - * @member {Array.} cohorts - * @memberof google.analytics.data.v1alpha.CohortSpec - * @instance - */ - CohortSpec.prototype.cohorts = $util.emptyArray; - - /** - * CohortSpec cohortsRange. - * @member {google.analytics.data.v1alpha.ICohortsRange|null|undefined} cohortsRange - * @memberof google.analytics.data.v1alpha.CohortSpec + * InListFilter values. + * @member {Array.} values + * @memberof google.analytics.data.v1alpha.InListFilter * @instance */ - CohortSpec.prototype.cohortsRange = null; + InListFilter.prototype.values = $util.emptyArray; /** - * CohortSpec cohortReportSettings. - * @member {google.analytics.data.v1alpha.ICohortReportSettings|null|undefined} cohortReportSettings - * @memberof google.analytics.data.v1alpha.CohortSpec + * InListFilter caseSensitive. + * @member {boolean} caseSensitive + * @memberof google.analytics.data.v1alpha.InListFilter * @instance */ - CohortSpec.prototype.cohortReportSettings = null; + InListFilter.prototype.caseSensitive = false; /** - * Creates a new CohortSpec instance using the specified properties. + * Creates a new InListFilter instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.CohortSpec + * @memberof google.analytics.data.v1alpha.InListFilter * @static - * @param {google.analytics.data.v1alpha.ICohortSpec=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.CohortSpec} CohortSpec instance + * @param {google.analytics.data.v1alpha.IInListFilter=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.InListFilter} InListFilter instance */ - CohortSpec.create = function create(properties) { - return new CohortSpec(properties); + InListFilter.create = function create(properties) { + return new InListFilter(properties); }; /** - * Encodes the specified CohortSpec message. Does not implicitly {@link google.analytics.data.v1alpha.CohortSpec.verify|verify} messages. + * Encodes the specified InListFilter message. Does not implicitly {@link google.analytics.data.v1alpha.InListFilter.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.CohortSpec + * @memberof google.analytics.data.v1alpha.InListFilter * @static - * @param {google.analytics.data.v1alpha.ICohortSpec} message CohortSpec message or plain object to encode + * @param {google.analytics.data.v1alpha.IInListFilter} message InListFilter message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - CohortSpec.encode = function encode(message, writer) { + InListFilter.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.cohorts != null && message.cohorts.length) - for (var i = 0; i < message.cohorts.length; ++i) - $root.google.analytics.data.v1alpha.Cohort.encode(message.cohorts[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.cohortsRange != null && Object.hasOwnProperty.call(message, "cohortsRange")) - $root.google.analytics.data.v1alpha.CohortsRange.encode(message.cohortsRange, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.cohortReportSettings != null && Object.hasOwnProperty.call(message, "cohortReportSettings")) - $root.google.analytics.data.v1alpha.CohortReportSettings.encode(message.cohortReportSettings, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.values != null && message.values.length) + for (var i = 0; i < message.values.length; ++i) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.values[i]); + if (message.caseSensitive != null && Object.hasOwnProperty.call(message, "caseSensitive")) + writer.uint32(/* id 2, wireType 0 =*/16).bool(message.caseSensitive); return writer; }; /** - * Encodes the specified CohortSpec message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.CohortSpec.verify|verify} messages. + * Encodes the specified InListFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.InListFilter.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.CohortSpec + * @memberof google.analytics.data.v1alpha.InListFilter * @static - * @param {google.analytics.data.v1alpha.ICohortSpec} message CohortSpec message or plain object to encode + * @param {google.analytics.data.v1alpha.IInListFilter} message InListFilter message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - CohortSpec.encodeDelimited = function encodeDelimited(message, writer) { + InListFilter.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a CohortSpec message from the specified reader or buffer. + * Decodes an InListFilter message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.CohortSpec + * @memberof google.analytics.data.v1alpha.InListFilter * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.CohortSpec} CohortSpec + * @returns {google.analytics.data.v1alpha.InListFilter} InListFilter * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CohortSpec.decode = function decode(reader, length, error) { + InListFilter.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.CohortSpec(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.InListFilter(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { case 1: { - if (!(message.cohorts && message.cohorts.length)) - message.cohorts = []; - message.cohorts.push($root.google.analytics.data.v1alpha.Cohort.decode(reader, reader.uint32())); + if (!(message.values && message.values.length)) + message.values = []; + message.values.push(reader.string()); break; } case 2: { - message.cohortsRange = $root.google.analytics.data.v1alpha.CohortsRange.decode(reader, reader.uint32()); - break; - } - case 3: { - message.cohortReportSettings = $root.google.analytics.data.v1alpha.CohortReportSettings.decode(reader, reader.uint32()); + message.caseSensitive = reader.bool(); break; } default: @@ -28294,169 +27953,144 @@ }; /** - * Decodes a CohortSpec message from the specified reader or buffer, length delimited. + * Decodes an InListFilter message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.CohortSpec + * @memberof google.analytics.data.v1alpha.InListFilter * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.CohortSpec} CohortSpec + * @returns {google.analytics.data.v1alpha.InListFilter} InListFilter * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CohortSpec.decodeDelimited = function decodeDelimited(reader) { + InListFilter.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a CohortSpec message. + * Verifies an InListFilter message. * @function verify - * @memberof google.analytics.data.v1alpha.CohortSpec + * @memberof google.analytics.data.v1alpha.InListFilter * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - CohortSpec.verify = function verify(message) { + InListFilter.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.cohorts != null && message.hasOwnProperty("cohorts")) { - if (!Array.isArray(message.cohorts)) - return "cohorts: array expected"; - for (var i = 0; i < message.cohorts.length; ++i) { - var error = $root.google.analytics.data.v1alpha.Cohort.verify(message.cohorts[i]); - if (error) - return "cohorts." + error; - } - } - if (message.cohortsRange != null && message.hasOwnProperty("cohortsRange")) { - var error = $root.google.analytics.data.v1alpha.CohortsRange.verify(message.cohortsRange); - if (error) - return "cohortsRange." + error; - } - if (message.cohortReportSettings != null && message.hasOwnProperty("cohortReportSettings")) { - var error = $root.google.analytics.data.v1alpha.CohortReportSettings.verify(message.cohortReportSettings); - if (error) - return "cohortReportSettings." + error; + if (message.values != null && message.hasOwnProperty("values")) { + if (!Array.isArray(message.values)) + return "values: array expected"; + for (var i = 0; i < message.values.length; ++i) + if (!$util.isString(message.values[i])) + return "values: string[] expected"; } + if (message.caseSensitive != null && message.hasOwnProperty("caseSensitive")) + if (typeof message.caseSensitive !== "boolean") + return "caseSensitive: boolean expected"; return null; }; /** - * Creates a CohortSpec message from a plain object. Also converts values to their respective internal types. + * Creates an InListFilter message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.CohortSpec + * @memberof google.analytics.data.v1alpha.InListFilter * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.CohortSpec} CohortSpec + * @returns {google.analytics.data.v1alpha.InListFilter} InListFilter */ - CohortSpec.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.CohortSpec) + InListFilter.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.InListFilter) return object; - var message = new $root.google.analytics.data.v1alpha.CohortSpec(); - if (object.cohorts) { - if (!Array.isArray(object.cohorts)) - throw TypeError(".google.analytics.data.v1alpha.CohortSpec.cohorts: array expected"); - message.cohorts = []; - for (var i = 0; i < object.cohorts.length; ++i) { - if (typeof object.cohorts[i] !== "object") - throw TypeError(".google.analytics.data.v1alpha.CohortSpec.cohorts: object expected"); - message.cohorts[i] = $root.google.analytics.data.v1alpha.Cohort.fromObject(object.cohorts[i]); - } - } - if (object.cohortsRange != null) { - if (typeof object.cohortsRange !== "object") - throw TypeError(".google.analytics.data.v1alpha.CohortSpec.cohortsRange: object expected"); - message.cohortsRange = $root.google.analytics.data.v1alpha.CohortsRange.fromObject(object.cohortsRange); - } - if (object.cohortReportSettings != null) { - if (typeof object.cohortReportSettings !== "object") - throw TypeError(".google.analytics.data.v1alpha.CohortSpec.cohortReportSettings: object expected"); - message.cohortReportSettings = $root.google.analytics.data.v1alpha.CohortReportSettings.fromObject(object.cohortReportSettings); + var message = new $root.google.analytics.data.v1alpha.InListFilter(); + if (object.values) { + if (!Array.isArray(object.values)) + throw TypeError(".google.analytics.data.v1alpha.InListFilter.values: array expected"); + message.values = []; + for (var i = 0; i < object.values.length; ++i) + message.values[i] = String(object.values[i]); } + if (object.caseSensitive != null) + message.caseSensitive = Boolean(object.caseSensitive); return message; }; /** - * Creates a plain object from a CohortSpec message. Also converts values to other types if specified. + * Creates a plain object from an InListFilter message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.CohortSpec + * @memberof google.analytics.data.v1alpha.InListFilter * @static - * @param {google.analytics.data.v1alpha.CohortSpec} message CohortSpec + * @param {google.analytics.data.v1alpha.InListFilter} message InListFilter * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - CohortSpec.toObject = function toObject(message, options) { + InListFilter.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; if (options.arrays || options.defaults) - object.cohorts = []; - if (options.defaults) { - object.cohortsRange = null; - object.cohortReportSettings = null; - } - if (message.cohorts && message.cohorts.length) { - object.cohorts = []; - for (var j = 0; j < message.cohorts.length; ++j) - object.cohorts[j] = $root.google.analytics.data.v1alpha.Cohort.toObject(message.cohorts[j], options); + object.values = []; + if (options.defaults) + object.caseSensitive = false; + if (message.values && message.values.length) { + object.values = []; + for (var j = 0; j < message.values.length; ++j) + object.values[j] = message.values[j]; } - if (message.cohortsRange != null && message.hasOwnProperty("cohortsRange")) - object.cohortsRange = $root.google.analytics.data.v1alpha.CohortsRange.toObject(message.cohortsRange, options); - if (message.cohortReportSettings != null && message.hasOwnProperty("cohortReportSettings")) - object.cohortReportSettings = $root.google.analytics.data.v1alpha.CohortReportSettings.toObject(message.cohortReportSettings, options); + if (message.caseSensitive != null && message.hasOwnProperty("caseSensitive")) + object.caseSensitive = message.caseSensitive; return object; }; /** - * Converts this CohortSpec to JSON. + * Converts this InListFilter to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.CohortSpec + * @memberof google.analytics.data.v1alpha.InListFilter * @instance * @returns {Object.} JSON object */ - CohortSpec.prototype.toJSON = function toJSON() { + InListFilter.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for CohortSpec + * Gets the default type url for InListFilter * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.CohortSpec + * @memberof google.analytics.data.v1alpha.InListFilter * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - CohortSpec.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + InListFilter.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.analytics.data.v1alpha.CohortSpec"; + return typeUrlPrefix + "/google.analytics.data.v1alpha.InListFilter"; }; - return CohortSpec; + return InListFilter; })(); - v1alpha.Cohort = (function() { + v1alpha.NumericFilter = (function() { /** - * Properties of a Cohort. + * Properties of a NumericFilter. * @memberof google.analytics.data.v1alpha - * @interface ICohort - * @property {string|null} [name] Cohort name - * @property {string|null} [dimension] Cohort dimension - * @property {google.analytics.data.v1alpha.IDateRange|null} [dateRange] Cohort dateRange + * @interface INumericFilter + * @property {google.analytics.data.v1alpha.NumericFilter.Operation|null} [operation] NumericFilter operation + * @property {google.analytics.data.v1alpha.INumericValue|null} [value] NumericFilter value */ /** - * Constructs a new Cohort. + * Constructs a new NumericFilter. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a Cohort. - * @implements ICohort + * @classdesc Represents a NumericFilter. + * @implements INumericFilter * @constructor - * @param {google.analytics.data.v1alpha.ICohort=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.INumericFilter=} [properties] Properties to set */ - function Cohort(properties) { + function NumericFilter(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -28464,105 +28098,91 @@ } /** - * Cohort name. - * @member {string} name - * @memberof google.analytics.data.v1alpha.Cohort - * @instance - */ - Cohort.prototype.name = ""; - - /** - * Cohort dimension. - * @member {string} dimension - * @memberof google.analytics.data.v1alpha.Cohort + * NumericFilter operation. + * @member {google.analytics.data.v1alpha.NumericFilter.Operation} operation + * @memberof google.analytics.data.v1alpha.NumericFilter * @instance */ - Cohort.prototype.dimension = ""; + NumericFilter.prototype.operation = 0; /** - * Cohort dateRange. - * @member {google.analytics.data.v1alpha.IDateRange|null|undefined} dateRange - * @memberof google.analytics.data.v1alpha.Cohort + * NumericFilter value. + * @member {google.analytics.data.v1alpha.INumericValue|null|undefined} value + * @memberof google.analytics.data.v1alpha.NumericFilter * @instance */ - Cohort.prototype.dateRange = null; + NumericFilter.prototype.value = null; /** - * Creates a new Cohort instance using the specified properties. + * Creates a new NumericFilter instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.Cohort + * @memberof google.analytics.data.v1alpha.NumericFilter * @static - * @param {google.analytics.data.v1alpha.ICohort=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.Cohort} Cohort instance + * @param {google.analytics.data.v1alpha.INumericFilter=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.NumericFilter} NumericFilter instance */ - Cohort.create = function create(properties) { - return new Cohort(properties); + NumericFilter.create = function create(properties) { + return new NumericFilter(properties); }; /** - * Encodes the specified Cohort message. Does not implicitly {@link google.analytics.data.v1alpha.Cohort.verify|verify} messages. + * Encodes the specified NumericFilter message. Does not implicitly {@link google.analytics.data.v1alpha.NumericFilter.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.Cohort + * @memberof google.analytics.data.v1alpha.NumericFilter * @static - * @param {google.analytics.data.v1alpha.ICohort} message Cohort message or plain object to encode + * @param {google.analytics.data.v1alpha.INumericFilter} message NumericFilter message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Cohort.encode = function encode(message, writer) { + NumericFilter.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.dimension != null && Object.hasOwnProperty.call(message, "dimension")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.dimension); - if (message.dateRange != null && Object.hasOwnProperty.call(message, "dateRange")) - $root.google.analytics.data.v1alpha.DateRange.encode(message.dateRange, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.operation != null && Object.hasOwnProperty.call(message, "operation")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.operation); + if (message.value != null && Object.hasOwnProperty.call(message, "value")) + $root.google.analytics.data.v1alpha.NumericValue.encode(message.value, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); return writer; }; /** - * Encodes the specified Cohort message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.Cohort.verify|verify} messages. + * Encodes the specified NumericFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.NumericFilter.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.Cohort + * @memberof google.analytics.data.v1alpha.NumericFilter * @static - * @param {google.analytics.data.v1alpha.ICohort} message Cohort message or plain object to encode + * @param {google.analytics.data.v1alpha.INumericFilter} message NumericFilter message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Cohort.encodeDelimited = function encodeDelimited(message, writer) { + NumericFilter.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a Cohort message from the specified reader or buffer. + * Decodes a NumericFilter message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.Cohort + * @memberof google.analytics.data.v1alpha.NumericFilter * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.Cohort} Cohort + * @returns {google.analytics.data.v1alpha.NumericFilter} NumericFilter * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Cohort.decode = function decode(reader, length, error) { + NumericFilter.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.Cohort(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.NumericFilter(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { case 1: { - message.name = reader.string(); + message.operation = reader.int32(); break; } case 2: { - message.dimension = reader.string(); - break; - } - case 3: { - message.dateRange = $root.google.analytics.data.v1alpha.DateRange.decode(reader, reader.uint32()); + message.value = $root.google.analytics.data.v1alpha.NumericValue.decode(reader, reader.uint32()); break; } default: @@ -28574,146 +28194,3694 @@ }; /** - * Decodes a Cohort message from the specified reader or buffer, length delimited. + * Decodes a NumericFilter message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.Cohort + * @memberof google.analytics.data.v1alpha.NumericFilter * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.Cohort} Cohort + * @returns {google.analytics.data.v1alpha.NumericFilter} NumericFilter * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Cohort.decodeDelimited = function decodeDelimited(reader) { + NumericFilter.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a Cohort message. + * Verifies a NumericFilter message. * @function verify - * @memberof google.analytics.data.v1alpha.Cohort + * @memberof google.analytics.data.v1alpha.NumericFilter * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Cohort.verify = function verify(message) { + NumericFilter.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.dimension != null && message.hasOwnProperty("dimension")) - if (!$util.isString(message.dimension)) - return "dimension: string expected"; - if (message.dateRange != null && message.hasOwnProperty("dateRange")) { - var error = $root.google.analytics.data.v1alpha.DateRange.verify(message.dateRange); + if (message.operation != null && message.hasOwnProperty("operation")) + switch (message.operation) { + default: + return "operation: enum value expected"; + case 0: + case 1: + case 2: + case 3: + case 4: + case 5: + break; + } + if (message.value != null && message.hasOwnProperty("value")) { + var error = $root.google.analytics.data.v1alpha.NumericValue.verify(message.value); if (error) - return "dateRange." + error; + return "value." + error; } return null; }; /** - * Creates a Cohort message from a plain object. Also converts values to their respective internal types. + * Creates a NumericFilter message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.Cohort + * @memberof google.analytics.data.v1alpha.NumericFilter * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.Cohort} Cohort + * @returns {google.analytics.data.v1alpha.NumericFilter} NumericFilter */ - Cohort.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.Cohort) + NumericFilter.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.NumericFilter) return object; - var message = new $root.google.analytics.data.v1alpha.Cohort(); - if (object.name != null) - message.name = String(object.name); - if (object.dimension != null) - message.dimension = String(object.dimension); - if (object.dateRange != null) { - if (typeof object.dateRange !== "object") - throw TypeError(".google.analytics.data.v1alpha.Cohort.dateRange: object expected"); - message.dateRange = $root.google.analytics.data.v1alpha.DateRange.fromObject(object.dateRange); + var message = new $root.google.analytics.data.v1alpha.NumericFilter(); + switch (object.operation) { + default: + if (typeof object.operation === "number") { + message.operation = object.operation; + break; + } + break; + case "OPERATION_UNSPECIFIED": + case 0: + message.operation = 0; + break; + case "EQUAL": + case 1: + message.operation = 1; + break; + case "LESS_THAN": + case 2: + message.operation = 2; + break; + case "LESS_THAN_OR_EQUAL": + case 3: + message.operation = 3; + break; + case "GREATER_THAN": + case 4: + message.operation = 4; + break; + case "GREATER_THAN_OR_EQUAL": + case 5: + message.operation = 5; + break; + } + if (object.value != null) { + if (typeof object.value !== "object") + throw TypeError(".google.analytics.data.v1alpha.NumericFilter.value: object expected"); + message.value = $root.google.analytics.data.v1alpha.NumericValue.fromObject(object.value); } return message; }; /** - * Creates a plain object from a Cohort message. Also converts values to other types if specified. + * Creates a plain object from a NumericFilter message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.Cohort + * @memberof google.analytics.data.v1alpha.NumericFilter * @static - * @param {google.analytics.data.v1alpha.Cohort} message Cohort + * @param {google.analytics.data.v1alpha.NumericFilter} message NumericFilter * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - Cohort.toObject = function toObject(message, options) { + NumericFilter.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; if (options.defaults) { - object.name = ""; - object.dimension = ""; - object.dateRange = null; + object.operation = options.enums === String ? "OPERATION_UNSPECIFIED" : 0; + object.value = null; } - if (message.name != null && message.hasOwnProperty("name")) - object.name = message.name; - if (message.dimension != null && message.hasOwnProperty("dimension")) - object.dimension = message.dimension; - if (message.dateRange != null && message.hasOwnProperty("dateRange")) - object.dateRange = $root.google.analytics.data.v1alpha.DateRange.toObject(message.dateRange, options); + if (message.operation != null && message.hasOwnProperty("operation")) + object.operation = options.enums === String ? $root.google.analytics.data.v1alpha.NumericFilter.Operation[message.operation] === undefined ? message.operation : $root.google.analytics.data.v1alpha.NumericFilter.Operation[message.operation] : message.operation; + if (message.value != null && message.hasOwnProperty("value")) + object.value = $root.google.analytics.data.v1alpha.NumericValue.toObject(message.value, options); return object; }; - /** - * Converts this Cohort to JSON. - * @function toJSON - * @memberof google.analytics.data.v1alpha.Cohort - * @instance - * @returns {Object.} JSON object - */ - Cohort.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Converts this NumericFilter to JSON. + * @function toJSON + * @memberof google.analytics.data.v1alpha.NumericFilter + * @instance + * @returns {Object.} JSON object + */ + NumericFilter.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for NumericFilter + * @function getTypeUrl + * @memberof google.analytics.data.v1alpha.NumericFilter + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + NumericFilter.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.analytics.data.v1alpha.NumericFilter"; + }; + + /** + * Operation enum. + * @name google.analytics.data.v1alpha.NumericFilter.Operation + * @enum {number} + * @property {number} OPERATION_UNSPECIFIED=0 OPERATION_UNSPECIFIED value + * @property {number} EQUAL=1 EQUAL value + * @property {number} LESS_THAN=2 LESS_THAN value + * @property {number} LESS_THAN_OR_EQUAL=3 LESS_THAN_OR_EQUAL value + * @property {number} GREATER_THAN=4 GREATER_THAN value + * @property {number} GREATER_THAN_OR_EQUAL=5 GREATER_THAN_OR_EQUAL value + */ + NumericFilter.Operation = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "OPERATION_UNSPECIFIED"] = 0; + values[valuesById[1] = "EQUAL"] = 1; + values[valuesById[2] = "LESS_THAN"] = 2; + values[valuesById[3] = "LESS_THAN_OR_EQUAL"] = 3; + values[valuesById[4] = "GREATER_THAN"] = 4; + values[valuesById[5] = "GREATER_THAN_OR_EQUAL"] = 5; + return values; + })(); + + return NumericFilter; + })(); + + v1alpha.OrderBy = (function() { + + /** + * Properties of an OrderBy. + * @memberof google.analytics.data.v1alpha + * @interface IOrderBy + * @property {google.analytics.data.v1alpha.OrderBy.IMetricOrderBy|null} [metric] OrderBy metric + * @property {google.analytics.data.v1alpha.OrderBy.IDimensionOrderBy|null} [dimension] OrderBy dimension + * @property {boolean|null} [desc] OrderBy desc + */ + + /** + * Constructs a new OrderBy. + * @memberof google.analytics.data.v1alpha + * @classdesc Represents an OrderBy. + * @implements IOrderBy + * @constructor + * @param {google.analytics.data.v1alpha.IOrderBy=} [properties] Properties to set + */ + function OrderBy(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]]; + } + + /** + * OrderBy metric. + * @member {google.analytics.data.v1alpha.OrderBy.IMetricOrderBy|null|undefined} metric + * @memberof google.analytics.data.v1alpha.OrderBy + * @instance + */ + OrderBy.prototype.metric = null; + + /** + * OrderBy dimension. + * @member {google.analytics.data.v1alpha.OrderBy.IDimensionOrderBy|null|undefined} dimension + * @memberof google.analytics.data.v1alpha.OrderBy + * @instance + */ + OrderBy.prototype.dimension = null; + + /** + * OrderBy desc. + * @member {boolean} desc + * @memberof google.analytics.data.v1alpha.OrderBy + * @instance + */ + OrderBy.prototype.desc = false; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * OrderBy oneOrderBy. + * @member {"metric"|"dimension"|undefined} oneOrderBy + * @memberof google.analytics.data.v1alpha.OrderBy + * @instance + */ + Object.defineProperty(OrderBy.prototype, "oneOrderBy", { + get: $util.oneOfGetter($oneOfFields = ["metric", "dimension"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new OrderBy instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1alpha.OrderBy + * @static + * @param {google.analytics.data.v1alpha.IOrderBy=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.OrderBy} OrderBy instance + */ + OrderBy.create = function create(properties) { + return new OrderBy(properties); + }; + + /** + * Encodes the specified OrderBy message. Does not implicitly {@link google.analytics.data.v1alpha.OrderBy.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1alpha.OrderBy + * @static + * @param {google.analytics.data.v1alpha.IOrderBy} message OrderBy message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + OrderBy.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.metric != null && Object.hasOwnProperty.call(message, "metric")) + $root.google.analytics.data.v1alpha.OrderBy.MetricOrderBy.encode(message.metric, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.dimension != null && Object.hasOwnProperty.call(message, "dimension")) + $root.google.analytics.data.v1alpha.OrderBy.DimensionOrderBy.encode(message.dimension, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.desc != null && Object.hasOwnProperty.call(message, "desc")) + writer.uint32(/* id 4, wireType 0 =*/32).bool(message.desc); + return writer; + }; + + /** + * Encodes the specified OrderBy message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.OrderBy.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1alpha.OrderBy + * @static + * @param {google.analytics.data.v1alpha.IOrderBy} message OrderBy message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + OrderBy.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an OrderBy message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1alpha.OrderBy + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1alpha.OrderBy} OrderBy + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + OrderBy.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.OrderBy(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.metric = $root.google.analytics.data.v1alpha.OrderBy.MetricOrderBy.decode(reader, reader.uint32()); + break; + } + case 2: { + message.dimension = $root.google.analytics.data.v1alpha.OrderBy.DimensionOrderBy.decode(reader, reader.uint32()); + break; + } + case 4: { + message.desc = reader.bool(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an OrderBy message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1alpha.OrderBy + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1alpha.OrderBy} OrderBy + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + OrderBy.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an OrderBy message. + * @function verify + * @memberof google.analytics.data.v1alpha.OrderBy + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + OrderBy.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.metric != null && message.hasOwnProperty("metric")) { + properties.oneOrderBy = 1; + { + var error = $root.google.analytics.data.v1alpha.OrderBy.MetricOrderBy.verify(message.metric); + if (error) + return "metric." + error; + } + } + if (message.dimension != null && message.hasOwnProperty("dimension")) { + if (properties.oneOrderBy === 1) + return "oneOrderBy: multiple values"; + properties.oneOrderBy = 1; + { + var error = $root.google.analytics.data.v1alpha.OrderBy.DimensionOrderBy.verify(message.dimension); + if (error) + return "dimension." + error; + } + } + if (message.desc != null && message.hasOwnProperty("desc")) + if (typeof message.desc !== "boolean") + return "desc: boolean expected"; + return null; + }; + + /** + * Creates an OrderBy message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1alpha.OrderBy + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1alpha.OrderBy} OrderBy + */ + OrderBy.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.OrderBy) + return object; + var message = new $root.google.analytics.data.v1alpha.OrderBy(); + if (object.metric != null) { + if (typeof object.metric !== "object") + throw TypeError(".google.analytics.data.v1alpha.OrderBy.metric: object expected"); + message.metric = $root.google.analytics.data.v1alpha.OrderBy.MetricOrderBy.fromObject(object.metric); + } + if (object.dimension != null) { + if (typeof object.dimension !== "object") + throw TypeError(".google.analytics.data.v1alpha.OrderBy.dimension: object expected"); + message.dimension = $root.google.analytics.data.v1alpha.OrderBy.DimensionOrderBy.fromObject(object.dimension); + } + if (object.desc != null) + message.desc = Boolean(object.desc); + return message; + }; + + /** + * Creates a plain object from an OrderBy message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1alpha.OrderBy + * @static + * @param {google.analytics.data.v1alpha.OrderBy} message OrderBy + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + OrderBy.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.desc = false; + if (message.metric != null && message.hasOwnProperty("metric")) { + object.metric = $root.google.analytics.data.v1alpha.OrderBy.MetricOrderBy.toObject(message.metric, options); + if (options.oneofs) + object.oneOrderBy = "metric"; + } + if (message.dimension != null && message.hasOwnProperty("dimension")) { + object.dimension = $root.google.analytics.data.v1alpha.OrderBy.DimensionOrderBy.toObject(message.dimension, options); + if (options.oneofs) + object.oneOrderBy = "dimension"; + } + if (message.desc != null && message.hasOwnProperty("desc")) + object.desc = message.desc; + return object; + }; + + /** + * Converts this OrderBy to JSON. + * @function toJSON + * @memberof google.analytics.data.v1alpha.OrderBy + * @instance + * @returns {Object.} JSON object + */ + OrderBy.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for OrderBy + * @function getTypeUrl + * @memberof google.analytics.data.v1alpha.OrderBy + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + OrderBy.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.analytics.data.v1alpha.OrderBy"; + }; + + OrderBy.MetricOrderBy = (function() { + + /** + * Properties of a MetricOrderBy. + * @memberof google.analytics.data.v1alpha.OrderBy + * @interface IMetricOrderBy + * @property {string|null} [metricName] MetricOrderBy metricName + */ + + /** + * Constructs a new MetricOrderBy. + * @memberof google.analytics.data.v1alpha.OrderBy + * @classdesc Represents a MetricOrderBy. + * @implements IMetricOrderBy + * @constructor + * @param {google.analytics.data.v1alpha.OrderBy.IMetricOrderBy=} [properties] Properties to set + */ + function MetricOrderBy(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]]; + } + + /** + * MetricOrderBy metricName. + * @member {string} metricName + * @memberof google.analytics.data.v1alpha.OrderBy.MetricOrderBy + * @instance + */ + MetricOrderBy.prototype.metricName = ""; + + /** + * Creates a new MetricOrderBy instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1alpha.OrderBy.MetricOrderBy + * @static + * @param {google.analytics.data.v1alpha.OrderBy.IMetricOrderBy=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.OrderBy.MetricOrderBy} MetricOrderBy instance + */ + MetricOrderBy.create = function create(properties) { + return new MetricOrderBy(properties); + }; + + /** + * Encodes the specified MetricOrderBy message. Does not implicitly {@link google.analytics.data.v1alpha.OrderBy.MetricOrderBy.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1alpha.OrderBy.MetricOrderBy + * @static + * @param {google.analytics.data.v1alpha.OrderBy.IMetricOrderBy} message MetricOrderBy message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + MetricOrderBy.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.metricName != null && Object.hasOwnProperty.call(message, "metricName")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.metricName); + return writer; + }; + + /** + * Encodes the specified MetricOrderBy message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.OrderBy.MetricOrderBy.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1alpha.OrderBy.MetricOrderBy + * @static + * @param {google.analytics.data.v1alpha.OrderBy.IMetricOrderBy} message MetricOrderBy message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + MetricOrderBy.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a MetricOrderBy message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1alpha.OrderBy.MetricOrderBy + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1alpha.OrderBy.MetricOrderBy} MetricOrderBy + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + MetricOrderBy.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.OrderBy.MetricOrderBy(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.metricName = reader.string(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a MetricOrderBy message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1alpha.OrderBy.MetricOrderBy + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1alpha.OrderBy.MetricOrderBy} MetricOrderBy + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + MetricOrderBy.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a MetricOrderBy message. + * @function verify + * @memberof google.analytics.data.v1alpha.OrderBy.MetricOrderBy + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + MetricOrderBy.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.metricName != null && message.hasOwnProperty("metricName")) + if (!$util.isString(message.metricName)) + return "metricName: string expected"; + return null; + }; + + /** + * Creates a MetricOrderBy message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1alpha.OrderBy.MetricOrderBy + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1alpha.OrderBy.MetricOrderBy} MetricOrderBy + */ + MetricOrderBy.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.OrderBy.MetricOrderBy) + return object; + var message = new $root.google.analytics.data.v1alpha.OrderBy.MetricOrderBy(); + if (object.metricName != null) + message.metricName = String(object.metricName); + return message; + }; + + /** + * Creates a plain object from a MetricOrderBy message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1alpha.OrderBy.MetricOrderBy + * @static + * @param {google.analytics.data.v1alpha.OrderBy.MetricOrderBy} message MetricOrderBy + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + MetricOrderBy.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.metricName = ""; + if (message.metricName != null && message.hasOwnProperty("metricName")) + object.metricName = message.metricName; + return object; + }; + + /** + * Converts this MetricOrderBy to JSON. + * @function toJSON + * @memberof google.analytics.data.v1alpha.OrderBy.MetricOrderBy + * @instance + * @returns {Object.} JSON object + */ + MetricOrderBy.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for MetricOrderBy + * @function getTypeUrl + * @memberof google.analytics.data.v1alpha.OrderBy.MetricOrderBy + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + MetricOrderBy.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.analytics.data.v1alpha.OrderBy.MetricOrderBy"; + }; + + return MetricOrderBy; + })(); + + OrderBy.DimensionOrderBy = (function() { + + /** + * Properties of a DimensionOrderBy. + * @memberof google.analytics.data.v1alpha.OrderBy + * @interface IDimensionOrderBy + * @property {string|null} [dimensionName] DimensionOrderBy dimensionName + * @property {google.analytics.data.v1alpha.OrderBy.DimensionOrderBy.OrderType|null} [orderType] DimensionOrderBy orderType + */ + + /** + * Constructs a new DimensionOrderBy. + * @memberof google.analytics.data.v1alpha.OrderBy + * @classdesc Represents a DimensionOrderBy. + * @implements IDimensionOrderBy + * @constructor + * @param {google.analytics.data.v1alpha.OrderBy.IDimensionOrderBy=} [properties] Properties to set + */ + function DimensionOrderBy(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]]; + } + + /** + * DimensionOrderBy dimensionName. + * @member {string} dimensionName + * @memberof google.analytics.data.v1alpha.OrderBy.DimensionOrderBy + * @instance + */ + DimensionOrderBy.prototype.dimensionName = ""; + + /** + * DimensionOrderBy orderType. + * @member {google.analytics.data.v1alpha.OrderBy.DimensionOrderBy.OrderType} orderType + * @memberof google.analytics.data.v1alpha.OrderBy.DimensionOrderBy + * @instance + */ + DimensionOrderBy.prototype.orderType = 0; + + /** + * Creates a new DimensionOrderBy instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1alpha.OrderBy.DimensionOrderBy + * @static + * @param {google.analytics.data.v1alpha.OrderBy.IDimensionOrderBy=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.OrderBy.DimensionOrderBy} DimensionOrderBy instance + */ + DimensionOrderBy.create = function create(properties) { + return new DimensionOrderBy(properties); + }; + + /** + * Encodes the specified DimensionOrderBy message. Does not implicitly {@link google.analytics.data.v1alpha.OrderBy.DimensionOrderBy.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1alpha.OrderBy.DimensionOrderBy + * @static + * @param {google.analytics.data.v1alpha.OrderBy.IDimensionOrderBy} message DimensionOrderBy message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DimensionOrderBy.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.dimensionName != null && Object.hasOwnProperty.call(message, "dimensionName")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.dimensionName); + if (message.orderType != null && Object.hasOwnProperty.call(message, "orderType")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.orderType); + return writer; + }; + + /** + * Encodes the specified DimensionOrderBy message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.OrderBy.DimensionOrderBy.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1alpha.OrderBy.DimensionOrderBy + * @static + * @param {google.analytics.data.v1alpha.OrderBy.IDimensionOrderBy} message DimensionOrderBy message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DimensionOrderBy.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a DimensionOrderBy message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1alpha.OrderBy.DimensionOrderBy + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1alpha.OrderBy.DimensionOrderBy} DimensionOrderBy + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DimensionOrderBy.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.OrderBy.DimensionOrderBy(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.dimensionName = reader.string(); + break; + } + case 2: { + message.orderType = reader.int32(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a DimensionOrderBy message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1alpha.OrderBy.DimensionOrderBy + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1alpha.OrderBy.DimensionOrderBy} DimensionOrderBy + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DimensionOrderBy.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a DimensionOrderBy message. + * @function verify + * @memberof google.analytics.data.v1alpha.OrderBy.DimensionOrderBy + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + DimensionOrderBy.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.dimensionName != null && message.hasOwnProperty("dimensionName")) + if (!$util.isString(message.dimensionName)) + return "dimensionName: string expected"; + if (message.orderType != null && message.hasOwnProperty("orderType")) + switch (message.orderType) { + default: + return "orderType: enum value expected"; + case 0: + case 1: + case 2: + case 3: + break; + } + return null; + }; + + /** + * Creates a DimensionOrderBy message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1alpha.OrderBy.DimensionOrderBy + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1alpha.OrderBy.DimensionOrderBy} DimensionOrderBy + */ + DimensionOrderBy.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.OrderBy.DimensionOrderBy) + return object; + var message = new $root.google.analytics.data.v1alpha.OrderBy.DimensionOrderBy(); + if (object.dimensionName != null) + message.dimensionName = String(object.dimensionName); + switch (object.orderType) { + default: + if (typeof object.orderType === "number") { + message.orderType = object.orderType; + break; + } + break; + case "ORDER_TYPE_UNSPECIFIED": + case 0: + message.orderType = 0; + break; + case "ALPHANUMERIC": + case 1: + message.orderType = 1; + break; + case "CASE_INSENSITIVE_ALPHANUMERIC": + case 2: + message.orderType = 2; + break; + case "NUMERIC": + case 3: + message.orderType = 3; + break; + } + return message; + }; + + /** + * Creates a plain object from a DimensionOrderBy message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1alpha.OrderBy.DimensionOrderBy + * @static + * @param {google.analytics.data.v1alpha.OrderBy.DimensionOrderBy} message DimensionOrderBy + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + DimensionOrderBy.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.dimensionName = ""; + object.orderType = options.enums === String ? "ORDER_TYPE_UNSPECIFIED" : 0; + } + if (message.dimensionName != null && message.hasOwnProperty("dimensionName")) + object.dimensionName = message.dimensionName; + if (message.orderType != null && message.hasOwnProperty("orderType")) + object.orderType = options.enums === String ? $root.google.analytics.data.v1alpha.OrderBy.DimensionOrderBy.OrderType[message.orderType] === undefined ? message.orderType : $root.google.analytics.data.v1alpha.OrderBy.DimensionOrderBy.OrderType[message.orderType] : message.orderType; + return object; + }; + + /** + * Converts this DimensionOrderBy to JSON. + * @function toJSON + * @memberof google.analytics.data.v1alpha.OrderBy.DimensionOrderBy + * @instance + * @returns {Object.} JSON object + */ + DimensionOrderBy.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for DimensionOrderBy + * @function getTypeUrl + * @memberof google.analytics.data.v1alpha.OrderBy.DimensionOrderBy + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + DimensionOrderBy.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.analytics.data.v1alpha.OrderBy.DimensionOrderBy"; + }; + + /** + * OrderType enum. + * @name google.analytics.data.v1alpha.OrderBy.DimensionOrderBy.OrderType + * @enum {number} + * @property {number} ORDER_TYPE_UNSPECIFIED=0 ORDER_TYPE_UNSPECIFIED value + * @property {number} ALPHANUMERIC=1 ALPHANUMERIC value + * @property {number} CASE_INSENSITIVE_ALPHANUMERIC=2 CASE_INSENSITIVE_ALPHANUMERIC value + * @property {number} NUMERIC=3 NUMERIC value + */ + DimensionOrderBy.OrderType = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "ORDER_TYPE_UNSPECIFIED"] = 0; + values[valuesById[1] = "ALPHANUMERIC"] = 1; + values[valuesById[2] = "CASE_INSENSITIVE_ALPHANUMERIC"] = 2; + values[valuesById[3] = "NUMERIC"] = 3; + return values; + })(); + + return DimensionOrderBy; + })(); + + return OrderBy; + })(); + + v1alpha.BetweenFilter = (function() { + + /** + * Properties of a BetweenFilter. + * @memberof google.analytics.data.v1alpha + * @interface IBetweenFilter + * @property {google.analytics.data.v1alpha.INumericValue|null} [fromValue] BetweenFilter fromValue + * @property {google.analytics.data.v1alpha.INumericValue|null} [toValue] BetweenFilter toValue + */ + + /** + * Constructs a new BetweenFilter. + * @memberof google.analytics.data.v1alpha + * @classdesc Represents a BetweenFilter. + * @implements IBetweenFilter + * @constructor + * @param {google.analytics.data.v1alpha.IBetweenFilter=} [properties] Properties to set + */ + function BetweenFilter(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]]; + } + + /** + * BetweenFilter fromValue. + * @member {google.analytics.data.v1alpha.INumericValue|null|undefined} fromValue + * @memberof google.analytics.data.v1alpha.BetweenFilter + * @instance + */ + BetweenFilter.prototype.fromValue = null; + + /** + * BetweenFilter toValue. + * @member {google.analytics.data.v1alpha.INumericValue|null|undefined} toValue + * @memberof google.analytics.data.v1alpha.BetweenFilter + * @instance + */ + BetweenFilter.prototype.toValue = null; + + /** + * Creates a new BetweenFilter instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1alpha.BetweenFilter + * @static + * @param {google.analytics.data.v1alpha.IBetweenFilter=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.BetweenFilter} BetweenFilter instance + */ + BetweenFilter.create = function create(properties) { + return new BetweenFilter(properties); + }; + + /** + * Encodes the specified BetweenFilter message. Does not implicitly {@link google.analytics.data.v1alpha.BetweenFilter.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1alpha.BetweenFilter + * @static + * @param {google.analytics.data.v1alpha.IBetweenFilter} message BetweenFilter message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BetweenFilter.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.fromValue != null && Object.hasOwnProperty.call(message, "fromValue")) + $root.google.analytics.data.v1alpha.NumericValue.encode(message.fromValue, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.toValue != null && Object.hasOwnProperty.call(message, "toValue")) + $root.google.analytics.data.v1alpha.NumericValue.encode(message.toValue, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified BetweenFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.BetweenFilter.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1alpha.BetweenFilter + * @static + * @param {google.analytics.data.v1alpha.IBetweenFilter} message BetweenFilter message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BetweenFilter.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a BetweenFilter message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1alpha.BetweenFilter + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1alpha.BetweenFilter} BetweenFilter + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BetweenFilter.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.BetweenFilter(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.fromValue = $root.google.analytics.data.v1alpha.NumericValue.decode(reader, reader.uint32()); + break; + } + case 2: { + message.toValue = $root.google.analytics.data.v1alpha.NumericValue.decode(reader, reader.uint32()); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a BetweenFilter message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1alpha.BetweenFilter + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1alpha.BetweenFilter} BetweenFilter + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BetweenFilter.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a BetweenFilter message. + * @function verify + * @memberof google.analytics.data.v1alpha.BetweenFilter + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + BetweenFilter.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.fromValue != null && message.hasOwnProperty("fromValue")) { + var error = $root.google.analytics.data.v1alpha.NumericValue.verify(message.fromValue); + if (error) + return "fromValue." + error; + } + if (message.toValue != null && message.hasOwnProperty("toValue")) { + var error = $root.google.analytics.data.v1alpha.NumericValue.verify(message.toValue); + if (error) + return "toValue." + error; + } + return null; + }; + + /** + * Creates a BetweenFilter message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1alpha.BetweenFilter + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1alpha.BetweenFilter} BetweenFilter + */ + BetweenFilter.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.BetweenFilter) + return object; + var message = new $root.google.analytics.data.v1alpha.BetweenFilter(); + if (object.fromValue != null) { + if (typeof object.fromValue !== "object") + throw TypeError(".google.analytics.data.v1alpha.BetweenFilter.fromValue: object expected"); + message.fromValue = $root.google.analytics.data.v1alpha.NumericValue.fromObject(object.fromValue); + } + if (object.toValue != null) { + if (typeof object.toValue !== "object") + throw TypeError(".google.analytics.data.v1alpha.BetweenFilter.toValue: object expected"); + message.toValue = $root.google.analytics.data.v1alpha.NumericValue.fromObject(object.toValue); + } + return message; + }; + + /** + * Creates a plain object from a BetweenFilter message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1alpha.BetweenFilter + * @static + * @param {google.analytics.data.v1alpha.BetweenFilter} message BetweenFilter + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + BetweenFilter.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.fromValue = null; + object.toValue = null; + } + if (message.fromValue != null && message.hasOwnProperty("fromValue")) + object.fromValue = $root.google.analytics.data.v1alpha.NumericValue.toObject(message.fromValue, options); + if (message.toValue != null && message.hasOwnProperty("toValue")) + object.toValue = $root.google.analytics.data.v1alpha.NumericValue.toObject(message.toValue, options); + return object; + }; + + /** + * Converts this BetweenFilter to JSON. + * @function toJSON + * @memberof google.analytics.data.v1alpha.BetweenFilter + * @instance + * @returns {Object.} JSON object + */ + BetweenFilter.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for BetweenFilter + * @function getTypeUrl + * @memberof google.analytics.data.v1alpha.BetweenFilter + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + BetweenFilter.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.analytics.data.v1alpha.BetweenFilter"; + }; + + return BetweenFilter; + })(); + + v1alpha.EmptyFilter = (function() { + + /** + * Properties of an EmptyFilter. + * @memberof google.analytics.data.v1alpha + * @interface IEmptyFilter + */ + + /** + * Constructs a new EmptyFilter. + * @memberof google.analytics.data.v1alpha + * @classdesc Represents an EmptyFilter. + * @implements IEmptyFilter + * @constructor + * @param {google.analytics.data.v1alpha.IEmptyFilter=} [properties] Properties to set + */ + function EmptyFilter(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * Creates a new EmptyFilter instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1alpha.EmptyFilter + * @static + * @param {google.analytics.data.v1alpha.IEmptyFilter=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.EmptyFilter} EmptyFilter instance + */ + EmptyFilter.create = function create(properties) { + return new EmptyFilter(properties); + }; + + /** + * Encodes the specified EmptyFilter message. Does not implicitly {@link google.analytics.data.v1alpha.EmptyFilter.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1alpha.EmptyFilter + * @static + * @param {google.analytics.data.v1alpha.IEmptyFilter} message EmptyFilter message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + EmptyFilter.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + return writer; + }; + + /** + * Encodes the specified EmptyFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.EmptyFilter.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1alpha.EmptyFilter + * @static + * @param {google.analytics.data.v1alpha.IEmptyFilter} message EmptyFilter message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + EmptyFilter.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an EmptyFilter message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1alpha.EmptyFilter + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1alpha.EmptyFilter} EmptyFilter + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + EmptyFilter.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.EmptyFilter(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an EmptyFilter message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1alpha.EmptyFilter + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1alpha.EmptyFilter} EmptyFilter + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + EmptyFilter.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an EmptyFilter message. + * @function verify + * @memberof google.analytics.data.v1alpha.EmptyFilter + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + EmptyFilter.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + return null; + }; + + /** + * Creates an EmptyFilter message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1alpha.EmptyFilter + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1alpha.EmptyFilter} EmptyFilter + */ + EmptyFilter.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.EmptyFilter) + return object; + return new $root.google.analytics.data.v1alpha.EmptyFilter(); + }; + + /** + * Creates a plain object from an EmptyFilter message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1alpha.EmptyFilter + * @static + * @param {google.analytics.data.v1alpha.EmptyFilter} message EmptyFilter + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + EmptyFilter.toObject = function toObject() { + return {}; + }; + + /** + * Converts this EmptyFilter to JSON. + * @function toJSON + * @memberof google.analytics.data.v1alpha.EmptyFilter + * @instance + * @returns {Object.} JSON object + */ + EmptyFilter.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for EmptyFilter + * @function getTypeUrl + * @memberof google.analytics.data.v1alpha.EmptyFilter + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + EmptyFilter.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.analytics.data.v1alpha.EmptyFilter"; + }; + + return EmptyFilter; + })(); + + v1alpha.NumericValue = (function() { + + /** + * Properties of a NumericValue. + * @memberof google.analytics.data.v1alpha + * @interface INumericValue + * @property {number|Long|null} [int64Value] NumericValue int64Value + * @property {number|null} [doubleValue] NumericValue doubleValue + */ + + /** + * Constructs a new NumericValue. + * @memberof google.analytics.data.v1alpha + * @classdesc Represents a NumericValue. + * @implements INumericValue + * @constructor + * @param {google.analytics.data.v1alpha.INumericValue=} [properties] Properties to set + */ + function NumericValue(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]]; + } + + /** + * NumericValue int64Value. + * @member {number|Long|null|undefined} int64Value + * @memberof google.analytics.data.v1alpha.NumericValue + * @instance + */ + NumericValue.prototype.int64Value = null; + + /** + * NumericValue doubleValue. + * @member {number|null|undefined} doubleValue + * @memberof google.analytics.data.v1alpha.NumericValue + * @instance + */ + NumericValue.prototype.doubleValue = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * NumericValue oneValue. + * @member {"int64Value"|"doubleValue"|undefined} oneValue + * @memberof google.analytics.data.v1alpha.NumericValue + * @instance + */ + Object.defineProperty(NumericValue.prototype, "oneValue", { + get: $util.oneOfGetter($oneOfFields = ["int64Value", "doubleValue"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new NumericValue instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1alpha.NumericValue + * @static + * @param {google.analytics.data.v1alpha.INumericValue=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.NumericValue} NumericValue instance + */ + NumericValue.create = function create(properties) { + return new NumericValue(properties); + }; + + /** + * Encodes the specified NumericValue message. Does not implicitly {@link google.analytics.data.v1alpha.NumericValue.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1alpha.NumericValue + * @static + * @param {google.analytics.data.v1alpha.INumericValue} message NumericValue message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + NumericValue.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.int64Value != null && Object.hasOwnProperty.call(message, "int64Value")) + writer.uint32(/* id 1, wireType 0 =*/8).int64(message.int64Value); + if (message.doubleValue != null && Object.hasOwnProperty.call(message, "doubleValue")) + writer.uint32(/* id 2, wireType 1 =*/17).double(message.doubleValue); + return writer; + }; + + /** + * Encodes the specified NumericValue message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.NumericValue.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1alpha.NumericValue + * @static + * @param {google.analytics.data.v1alpha.INumericValue} message NumericValue message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + NumericValue.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a NumericValue message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1alpha.NumericValue + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1alpha.NumericValue} NumericValue + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + NumericValue.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.NumericValue(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.int64Value = reader.int64(); + break; + } + case 2: { + message.doubleValue = reader.double(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a NumericValue message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1alpha.NumericValue + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1alpha.NumericValue} NumericValue + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + NumericValue.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a NumericValue message. + * @function verify + * @memberof google.analytics.data.v1alpha.NumericValue + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + NumericValue.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.int64Value != null && message.hasOwnProperty("int64Value")) { + properties.oneValue = 1; + if (!$util.isInteger(message.int64Value) && !(message.int64Value && $util.isInteger(message.int64Value.low) && $util.isInteger(message.int64Value.high))) + return "int64Value: integer|Long expected"; + } + if (message.doubleValue != null && message.hasOwnProperty("doubleValue")) { + if (properties.oneValue === 1) + return "oneValue: multiple values"; + properties.oneValue = 1; + if (typeof message.doubleValue !== "number") + return "doubleValue: number expected"; + } + return null; + }; + + /** + * Creates a NumericValue message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1alpha.NumericValue + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1alpha.NumericValue} NumericValue + */ + NumericValue.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.NumericValue) + return object; + var message = new $root.google.analytics.data.v1alpha.NumericValue(); + if (object.int64Value != null) + if ($util.Long) + (message.int64Value = $util.Long.fromValue(object.int64Value)).unsigned = false; + else if (typeof object.int64Value === "string") + message.int64Value = parseInt(object.int64Value, 10); + else if (typeof object.int64Value === "number") + message.int64Value = object.int64Value; + else if (typeof object.int64Value === "object") + message.int64Value = new $util.LongBits(object.int64Value.low >>> 0, object.int64Value.high >>> 0).toNumber(); + if (object.doubleValue != null) + message.doubleValue = Number(object.doubleValue); + return message; + }; + + /** + * Creates a plain object from a NumericValue message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1alpha.NumericValue + * @static + * @param {google.analytics.data.v1alpha.NumericValue} message NumericValue + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + NumericValue.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.int64Value != null && message.hasOwnProperty("int64Value")) { + if (typeof message.int64Value === "number") + object.int64Value = options.longs === String ? String(message.int64Value) : message.int64Value; + else + object.int64Value = options.longs === String ? $util.Long.prototype.toString.call(message.int64Value) : options.longs === Number ? new $util.LongBits(message.int64Value.low >>> 0, message.int64Value.high >>> 0).toNumber() : message.int64Value; + if (options.oneofs) + object.oneValue = "int64Value"; + } + if (message.doubleValue != null && message.hasOwnProperty("doubleValue")) { + object.doubleValue = options.json && !isFinite(message.doubleValue) ? String(message.doubleValue) : message.doubleValue; + if (options.oneofs) + object.oneValue = "doubleValue"; + } + return object; + }; + + /** + * Converts this NumericValue to JSON. + * @function toJSON + * @memberof google.analytics.data.v1alpha.NumericValue + * @instance + * @returns {Object.} JSON object + */ + NumericValue.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for NumericValue + * @function getTypeUrl + * @memberof google.analytics.data.v1alpha.NumericValue + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + NumericValue.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.analytics.data.v1alpha.NumericValue"; + }; + + return NumericValue; + })(); + + v1alpha.CohortSpec = (function() { + + /** + * Properties of a CohortSpec. + * @memberof google.analytics.data.v1alpha + * @interface ICohortSpec + * @property {Array.|null} [cohorts] CohortSpec cohorts + * @property {google.analytics.data.v1alpha.ICohortsRange|null} [cohortsRange] CohortSpec cohortsRange + * @property {google.analytics.data.v1alpha.ICohortReportSettings|null} [cohortReportSettings] CohortSpec cohortReportSettings + */ + + /** + * Constructs a new CohortSpec. + * @memberof google.analytics.data.v1alpha + * @classdesc Represents a CohortSpec. + * @implements ICohortSpec + * @constructor + * @param {google.analytics.data.v1alpha.ICohortSpec=} [properties] Properties to set + */ + function CohortSpec(properties) { + this.cohorts = []; + 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]]; + } + + /** + * CohortSpec cohorts. + * @member {Array.} cohorts + * @memberof google.analytics.data.v1alpha.CohortSpec + * @instance + */ + CohortSpec.prototype.cohorts = $util.emptyArray; + + /** + * CohortSpec cohortsRange. + * @member {google.analytics.data.v1alpha.ICohortsRange|null|undefined} cohortsRange + * @memberof google.analytics.data.v1alpha.CohortSpec + * @instance + */ + CohortSpec.prototype.cohortsRange = null; + + /** + * CohortSpec cohortReportSettings. + * @member {google.analytics.data.v1alpha.ICohortReportSettings|null|undefined} cohortReportSettings + * @memberof google.analytics.data.v1alpha.CohortSpec + * @instance + */ + CohortSpec.prototype.cohortReportSettings = null; + + /** + * Creates a new CohortSpec instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1alpha.CohortSpec + * @static + * @param {google.analytics.data.v1alpha.ICohortSpec=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.CohortSpec} CohortSpec instance + */ + CohortSpec.create = function create(properties) { + return new CohortSpec(properties); + }; + + /** + * Encodes the specified CohortSpec message. Does not implicitly {@link google.analytics.data.v1alpha.CohortSpec.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1alpha.CohortSpec + * @static + * @param {google.analytics.data.v1alpha.ICohortSpec} message CohortSpec message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CohortSpec.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.cohorts != null && message.cohorts.length) + for (var i = 0; i < message.cohorts.length; ++i) + $root.google.analytics.data.v1alpha.Cohort.encode(message.cohorts[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.cohortsRange != null && Object.hasOwnProperty.call(message, "cohortsRange")) + $root.google.analytics.data.v1alpha.CohortsRange.encode(message.cohortsRange, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.cohortReportSettings != null && Object.hasOwnProperty.call(message, "cohortReportSettings")) + $root.google.analytics.data.v1alpha.CohortReportSettings.encode(message.cohortReportSettings, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified CohortSpec message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.CohortSpec.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1alpha.CohortSpec + * @static + * @param {google.analytics.data.v1alpha.ICohortSpec} message CohortSpec message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CohortSpec.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a CohortSpec message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1alpha.CohortSpec + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1alpha.CohortSpec} CohortSpec + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CohortSpec.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.CohortSpec(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + if (!(message.cohorts && message.cohorts.length)) + message.cohorts = []; + message.cohorts.push($root.google.analytics.data.v1alpha.Cohort.decode(reader, reader.uint32())); + break; + } + case 2: { + message.cohortsRange = $root.google.analytics.data.v1alpha.CohortsRange.decode(reader, reader.uint32()); + break; + } + case 3: { + message.cohortReportSettings = $root.google.analytics.data.v1alpha.CohortReportSettings.decode(reader, reader.uint32()); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a CohortSpec message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1alpha.CohortSpec + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1alpha.CohortSpec} CohortSpec + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CohortSpec.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a CohortSpec message. + * @function verify + * @memberof google.analytics.data.v1alpha.CohortSpec + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + CohortSpec.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.cohorts != null && message.hasOwnProperty("cohorts")) { + if (!Array.isArray(message.cohorts)) + return "cohorts: array expected"; + for (var i = 0; i < message.cohorts.length; ++i) { + var error = $root.google.analytics.data.v1alpha.Cohort.verify(message.cohorts[i]); + if (error) + return "cohorts." + error; + } + } + if (message.cohortsRange != null && message.hasOwnProperty("cohortsRange")) { + var error = $root.google.analytics.data.v1alpha.CohortsRange.verify(message.cohortsRange); + if (error) + return "cohortsRange." + error; + } + if (message.cohortReportSettings != null && message.hasOwnProperty("cohortReportSettings")) { + var error = $root.google.analytics.data.v1alpha.CohortReportSettings.verify(message.cohortReportSettings); + if (error) + return "cohortReportSettings." + error; + } + return null; + }; + + /** + * Creates a CohortSpec message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1alpha.CohortSpec + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1alpha.CohortSpec} CohortSpec + */ + CohortSpec.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.CohortSpec) + return object; + var message = new $root.google.analytics.data.v1alpha.CohortSpec(); + if (object.cohorts) { + if (!Array.isArray(object.cohorts)) + throw TypeError(".google.analytics.data.v1alpha.CohortSpec.cohorts: array expected"); + message.cohorts = []; + for (var i = 0; i < object.cohorts.length; ++i) { + if (typeof object.cohorts[i] !== "object") + throw TypeError(".google.analytics.data.v1alpha.CohortSpec.cohorts: object expected"); + message.cohorts[i] = $root.google.analytics.data.v1alpha.Cohort.fromObject(object.cohorts[i]); + } + } + if (object.cohortsRange != null) { + if (typeof object.cohortsRange !== "object") + throw TypeError(".google.analytics.data.v1alpha.CohortSpec.cohortsRange: object expected"); + message.cohortsRange = $root.google.analytics.data.v1alpha.CohortsRange.fromObject(object.cohortsRange); + } + if (object.cohortReportSettings != null) { + if (typeof object.cohortReportSettings !== "object") + throw TypeError(".google.analytics.data.v1alpha.CohortSpec.cohortReportSettings: object expected"); + message.cohortReportSettings = $root.google.analytics.data.v1alpha.CohortReportSettings.fromObject(object.cohortReportSettings); + } + return message; + }; + + /** + * Creates a plain object from a CohortSpec message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1alpha.CohortSpec + * @static + * @param {google.analytics.data.v1alpha.CohortSpec} message CohortSpec + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + CohortSpec.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.cohorts = []; + if (options.defaults) { + object.cohortsRange = null; + object.cohortReportSettings = null; + } + if (message.cohorts && message.cohorts.length) { + object.cohorts = []; + for (var j = 0; j < message.cohorts.length; ++j) + object.cohorts[j] = $root.google.analytics.data.v1alpha.Cohort.toObject(message.cohorts[j], options); + } + if (message.cohortsRange != null && message.hasOwnProperty("cohortsRange")) + object.cohortsRange = $root.google.analytics.data.v1alpha.CohortsRange.toObject(message.cohortsRange, options); + if (message.cohortReportSettings != null && message.hasOwnProperty("cohortReportSettings")) + object.cohortReportSettings = $root.google.analytics.data.v1alpha.CohortReportSettings.toObject(message.cohortReportSettings, options); + return object; + }; + + /** + * Converts this CohortSpec to JSON. + * @function toJSON + * @memberof google.analytics.data.v1alpha.CohortSpec + * @instance + * @returns {Object.} JSON object + */ + CohortSpec.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for CohortSpec + * @function getTypeUrl + * @memberof google.analytics.data.v1alpha.CohortSpec + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + CohortSpec.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.analytics.data.v1alpha.CohortSpec"; + }; + + return CohortSpec; + })(); + + v1alpha.Cohort = (function() { + + /** + * Properties of a Cohort. + * @memberof google.analytics.data.v1alpha + * @interface ICohort + * @property {string|null} [name] Cohort name + * @property {string|null} [dimension] Cohort dimension + * @property {google.analytics.data.v1alpha.IDateRange|null} [dateRange] Cohort dateRange + */ + + /** + * Constructs a new Cohort. + * @memberof google.analytics.data.v1alpha + * @classdesc Represents a Cohort. + * @implements ICohort + * @constructor + * @param {google.analytics.data.v1alpha.ICohort=} [properties] Properties to set + */ + function Cohort(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]]; + } + + /** + * Cohort name. + * @member {string} name + * @memberof google.analytics.data.v1alpha.Cohort + * @instance + */ + Cohort.prototype.name = ""; + + /** + * Cohort dimension. + * @member {string} dimension + * @memberof google.analytics.data.v1alpha.Cohort + * @instance + */ + Cohort.prototype.dimension = ""; + + /** + * Cohort dateRange. + * @member {google.analytics.data.v1alpha.IDateRange|null|undefined} dateRange + * @memberof google.analytics.data.v1alpha.Cohort + * @instance + */ + Cohort.prototype.dateRange = null; + + /** + * Creates a new Cohort instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1alpha.Cohort + * @static + * @param {google.analytics.data.v1alpha.ICohort=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.Cohort} Cohort instance + */ + Cohort.create = function create(properties) { + return new Cohort(properties); + }; + + /** + * Encodes the specified Cohort message. Does not implicitly {@link google.analytics.data.v1alpha.Cohort.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1alpha.Cohort + * @static + * @param {google.analytics.data.v1alpha.ICohort} message Cohort message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Cohort.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.dimension != null && Object.hasOwnProperty.call(message, "dimension")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.dimension); + if (message.dateRange != null && Object.hasOwnProperty.call(message, "dateRange")) + $root.google.analytics.data.v1alpha.DateRange.encode(message.dateRange, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified Cohort message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.Cohort.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1alpha.Cohort + * @static + * @param {google.analytics.data.v1alpha.ICohort} message Cohort message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Cohort.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a Cohort message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1alpha.Cohort + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1alpha.Cohort} Cohort + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Cohort.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.Cohort(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.name = reader.string(); + break; + } + case 2: { + message.dimension = reader.string(); + break; + } + case 3: { + message.dateRange = $root.google.analytics.data.v1alpha.DateRange.decode(reader, reader.uint32()); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a Cohort message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1alpha.Cohort + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1alpha.Cohort} Cohort + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Cohort.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a Cohort message. + * @function verify + * @memberof google.analytics.data.v1alpha.Cohort + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Cohort.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.dimension != null && message.hasOwnProperty("dimension")) + if (!$util.isString(message.dimension)) + return "dimension: string expected"; + if (message.dateRange != null && message.hasOwnProperty("dateRange")) { + var error = $root.google.analytics.data.v1alpha.DateRange.verify(message.dateRange); + if (error) + return "dateRange." + error; + } + return null; + }; + + /** + * Creates a Cohort message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1alpha.Cohort + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1alpha.Cohort} Cohort + */ + Cohort.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.Cohort) + return object; + var message = new $root.google.analytics.data.v1alpha.Cohort(); + if (object.name != null) + message.name = String(object.name); + if (object.dimension != null) + message.dimension = String(object.dimension); + if (object.dateRange != null) { + if (typeof object.dateRange !== "object") + throw TypeError(".google.analytics.data.v1alpha.Cohort.dateRange: object expected"); + message.dateRange = $root.google.analytics.data.v1alpha.DateRange.fromObject(object.dateRange); + } + return message; + }; + + /** + * Creates a plain object from a Cohort message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1alpha.Cohort + * @static + * @param {google.analytics.data.v1alpha.Cohort} message Cohort + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Cohort.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.name = ""; + object.dimension = ""; + object.dateRange = null; + } + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + if (message.dimension != null && message.hasOwnProperty("dimension")) + object.dimension = message.dimension; + if (message.dateRange != null && message.hasOwnProperty("dateRange")) + object.dateRange = $root.google.analytics.data.v1alpha.DateRange.toObject(message.dateRange, options); + return object; + }; + + /** + * Converts this Cohort to JSON. + * @function toJSON + * @memberof google.analytics.data.v1alpha.Cohort + * @instance + * @returns {Object.} JSON object + */ + Cohort.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for Cohort + * @function getTypeUrl + * @memberof google.analytics.data.v1alpha.Cohort + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + Cohort.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.analytics.data.v1alpha.Cohort"; + }; + + return Cohort; + })(); + + v1alpha.CohortsRange = (function() { + + /** + * Properties of a CohortsRange. + * @memberof google.analytics.data.v1alpha + * @interface ICohortsRange + * @property {google.analytics.data.v1alpha.CohortsRange.Granularity|null} [granularity] CohortsRange granularity + * @property {number|null} [startOffset] CohortsRange startOffset + * @property {number|null} [endOffset] CohortsRange endOffset + */ + + /** + * Constructs a new CohortsRange. + * @memberof google.analytics.data.v1alpha + * @classdesc Represents a CohortsRange. + * @implements ICohortsRange + * @constructor + * @param {google.analytics.data.v1alpha.ICohortsRange=} [properties] Properties to set + */ + function CohortsRange(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]]; + } + + /** + * CohortsRange granularity. + * @member {google.analytics.data.v1alpha.CohortsRange.Granularity} granularity + * @memberof google.analytics.data.v1alpha.CohortsRange + * @instance + */ + CohortsRange.prototype.granularity = 0; + + /** + * CohortsRange startOffset. + * @member {number} startOffset + * @memberof google.analytics.data.v1alpha.CohortsRange + * @instance + */ + CohortsRange.prototype.startOffset = 0; + + /** + * CohortsRange endOffset. + * @member {number} endOffset + * @memberof google.analytics.data.v1alpha.CohortsRange + * @instance + */ + CohortsRange.prototype.endOffset = 0; + + /** + * Creates a new CohortsRange instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1alpha.CohortsRange + * @static + * @param {google.analytics.data.v1alpha.ICohortsRange=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.CohortsRange} CohortsRange instance + */ + CohortsRange.create = function create(properties) { + return new CohortsRange(properties); + }; + + /** + * Encodes the specified CohortsRange message. Does not implicitly {@link google.analytics.data.v1alpha.CohortsRange.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1alpha.CohortsRange + * @static + * @param {google.analytics.data.v1alpha.ICohortsRange} message CohortsRange message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CohortsRange.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.granularity != null && Object.hasOwnProperty.call(message, "granularity")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.granularity); + if (message.startOffset != null && Object.hasOwnProperty.call(message, "startOffset")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.startOffset); + if (message.endOffset != null && Object.hasOwnProperty.call(message, "endOffset")) + writer.uint32(/* id 3, wireType 0 =*/24).int32(message.endOffset); + return writer; + }; + + /** + * Encodes the specified CohortsRange message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.CohortsRange.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1alpha.CohortsRange + * @static + * @param {google.analytics.data.v1alpha.ICohortsRange} message CohortsRange message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CohortsRange.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a CohortsRange message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1alpha.CohortsRange + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1alpha.CohortsRange} CohortsRange + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CohortsRange.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.CohortsRange(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.granularity = reader.int32(); + break; + } + case 2: { + message.startOffset = reader.int32(); + break; + } + case 3: { + message.endOffset = reader.int32(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a CohortsRange message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1alpha.CohortsRange + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1alpha.CohortsRange} CohortsRange + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CohortsRange.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a CohortsRange message. + * @function verify + * @memberof google.analytics.data.v1alpha.CohortsRange + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + CohortsRange.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.granularity != null && message.hasOwnProperty("granularity")) + switch (message.granularity) { + default: + return "granularity: enum value expected"; + case 0: + case 1: + case 2: + case 3: + break; + } + if (message.startOffset != null && message.hasOwnProperty("startOffset")) + if (!$util.isInteger(message.startOffset)) + return "startOffset: integer expected"; + if (message.endOffset != null && message.hasOwnProperty("endOffset")) + if (!$util.isInteger(message.endOffset)) + return "endOffset: integer expected"; + return null; + }; + + /** + * Creates a CohortsRange message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1alpha.CohortsRange + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1alpha.CohortsRange} CohortsRange + */ + CohortsRange.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.CohortsRange) + return object; + var message = new $root.google.analytics.data.v1alpha.CohortsRange(); + switch (object.granularity) { + default: + if (typeof object.granularity === "number") { + message.granularity = object.granularity; + break; + } + break; + case "GRANULARITY_UNSPECIFIED": + case 0: + message.granularity = 0; + break; + case "DAILY": + case 1: + message.granularity = 1; + break; + case "WEEKLY": + case 2: + message.granularity = 2; + break; + case "MONTHLY": + case 3: + message.granularity = 3; + break; + } + if (object.startOffset != null) + message.startOffset = object.startOffset | 0; + if (object.endOffset != null) + message.endOffset = object.endOffset | 0; + return message; + }; + + /** + * Creates a plain object from a CohortsRange message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1alpha.CohortsRange + * @static + * @param {google.analytics.data.v1alpha.CohortsRange} message CohortsRange + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + CohortsRange.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.granularity = options.enums === String ? "GRANULARITY_UNSPECIFIED" : 0; + object.startOffset = 0; + object.endOffset = 0; + } + if (message.granularity != null && message.hasOwnProperty("granularity")) + object.granularity = options.enums === String ? $root.google.analytics.data.v1alpha.CohortsRange.Granularity[message.granularity] === undefined ? message.granularity : $root.google.analytics.data.v1alpha.CohortsRange.Granularity[message.granularity] : message.granularity; + if (message.startOffset != null && message.hasOwnProperty("startOffset")) + object.startOffset = message.startOffset; + if (message.endOffset != null && message.hasOwnProperty("endOffset")) + object.endOffset = message.endOffset; + return object; + }; + + /** + * Converts this CohortsRange to JSON. + * @function toJSON + * @memberof google.analytics.data.v1alpha.CohortsRange + * @instance + * @returns {Object.} JSON object + */ + CohortsRange.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for CohortsRange + * @function getTypeUrl + * @memberof google.analytics.data.v1alpha.CohortsRange + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + CohortsRange.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.analytics.data.v1alpha.CohortsRange"; + }; + + /** + * Granularity enum. + * @name google.analytics.data.v1alpha.CohortsRange.Granularity + * @enum {number} + * @property {number} GRANULARITY_UNSPECIFIED=0 GRANULARITY_UNSPECIFIED value + * @property {number} DAILY=1 DAILY value + * @property {number} WEEKLY=2 WEEKLY value + * @property {number} MONTHLY=3 MONTHLY value + */ + CohortsRange.Granularity = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "GRANULARITY_UNSPECIFIED"] = 0; + values[valuesById[1] = "DAILY"] = 1; + values[valuesById[2] = "WEEKLY"] = 2; + values[valuesById[3] = "MONTHLY"] = 3; + return values; + })(); + + return CohortsRange; + })(); + + v1alpha.CohortReportSettings = (function() { + + /** + * Properties of a CohortReportSettings. + * @memberof google.analytics.data.v1alpha + * @interface ICohortReportSettings + * @property {boolean|null} [accumulate] CohortReportSettings accumulate + */ + + /** + * Constructs a new CohortReportSettings. + * @memberof google.analytics.data.v1alpha + * @classdesc Represents a CohortReportSettings. + * @implements ICohortReportSettings + * @constructor + * @param {google.analytics.data.v1alpha.ICohortReportSettings=} [properties] Properties to set + */ + function CohortReportSettings(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]]; + } + + /** + * CohortReportSettings accumulate. + * @member {boolean} accumulate + * @memberof google.analytics.data.v1alpha.CohortReportSettings + * @instance + */ + CohortReportSettings.prototype.accumulate = false; + + /** + * Creates a new CohortReportSettings instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1alpha.CohortReportSettings + * @static + * @param {google.analytics.data.v1alpha.ICohortReportSettings=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.CohortReportSettings} CohortReportSettings instance + */ + CohortReportSettings.create = function create(properties) { + return new CohortReportSettings(properties); + }; + + /** + * Encodes the specified CohortReportSettings message. Does not implicitly {@link google.analytics.data.v1alpha.CohortReportSettings.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1alpha.CohortReportSettings + * @static + * @param {google.analytics.data.v1alpha.ICohortReportSettings} message CohortReportSettings message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CohortReportSettings.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.accumulate != null && Object.hasOwnProperty.call(message, "accumulate")) + writer.uint32(/* id 1, wireType 0 =*/8).bool(message.accumulate); + return writer; + }; + + /** + * Encodes the specified CohortReportSettings message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.CohortReportSettings.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1alpha.CohortReportSettings + * @static + * @param {google.analytics.data.v1alpha.ICohortReportSettings} message CohortReportSettings message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CohortReportSettings.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a CohortReportSettings message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1alpha.CohortReportSettings + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1alpha.CohortReportSettings} CohortReportSettings + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CohortReportSettings.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.CohortReportSettings(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.accumulate = reader.bool(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a CohortReportSettings message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1alpha.CohortReportSettings + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1alpha.CohortReportSettings} CohortReportSettings + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CohortReportSettings.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a CohortReportSettings message. + * @function verify + * @memberof google.analytics.data.v1alpha.CohortReportSettings + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + CohortReportSettings.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.accumulate != null && message.hasOwnProperty("accumulate")) + if (typeof message.accumulate !== "boolean") + return "accumulate: boolean expected"; + return null; + }; + + /** + * Creates a CohortReportSettings message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1alpha.CohortReportSettings + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1alpha.CohortReportSettings} CohortReportSettings + */ + CohortReportSettings.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.CohortReportSettings) + return object; + var message = new $root.google.analytics.data.v1alpha.CohortReportSettings(); + if (object.accumulate != null) + message.accumulate = Boolean(object.accumulate); + return message; + }; + + /** + * Creates a plain object from a CohortReportSettings message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1alpha.CohortReportSettings + * @static + * @param {google.analytics.data.v1alpha.CohortReportSettings} message CohortReportSettings + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + CohortReportSettings.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.accumulate = false; + if (message.accumulate != null && message.hasOwnProperty("accumulate")) + object.accumulate = message.accumulate; + return object; + }; + + /** + * Converts this CohortReportSettings to JSON. + * @function toJSON + * @memberof google.analytics.data.v1alpha.CohortReportSettings + * @instance + * @returns {Object.} JSON object + */ + CohortReportSettings.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for CohortReportSettings + * @function getTypeUrl + * @memberof google.analytics.data.v1alpha.CohortReportSettings + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + CohortReportSettings.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.analytics.data.v1alpha.CohortReportSettings"; + }; + + return CohortReportSettings; + })(); + + /** + * Section enum. + * @name google.analytics.data.v1alpha.Section + * @enum {number} + * @property {number} SECTION_UNSPECIFIED=0 SECTION_UNSPECIFIED value + * @property {number} SECTION_REPORT=1 SECTION_REPORT value + * @property {number} SECTION_ADVERTISING=2 SECTION_ADVERTISING value + */ + v1alpha.Section = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "SECTION_UNSPECIFIED"] = 0; + values[valuesById[1] = "SECTION_REPORT"] = 1; + values[valuesById[2] = "SECTION_ADVERTISING"] = 2; + return values; + })(); + + v1alpha.ResponseMetaData = (function() { + + /** + * Properties of a ResponseMetaData. + * @memberof google.analytics.data.v1alpha + * @interface IResponseMetaData + * @property {boolean|null} [dataLossFromOtherRow] ResponseMetaData dataLossFromOtherRow + * @property {google.analytics.data.v1alpha.ResponseMetaData.ISchemaRestrictionResponse|null} [schemaRestrictionResponse] ResponseMetaData schemaRestrictionResponse + * @property {string|null} [currencyCode] ResponseMetaData currencyCode + * @property {string|null} [timeZone] ResponseMetaData timeZone + * @property {string|null} [emptyReason] ResponseMetaData emptyReason + * @property {boolean|null} [subjectToThresholding] ResponseMetaData subjectToThresholding + * @property {Array.|null} [samplingMetadatas] ResponseMetaData samplingMetadatas + * @property {google.analytics.data.v1alpha.Section|null} [section] ResponseMetaData section + */ + + /** + * Constructs a new ResponseMetaData. + * @memberof google.analytics.data.v1alpha + * @classdesc Represents a ResponseMetaData. + * @implements IResponseMetaData + * @constructor + * @param {google.analytics.data.v1alpha.IResponseMetaData=} [properties] Properties to set + */ + function ResponseMetaData(properties) { + this.samplingMetadatas = []; + 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]]; + } + + /** + * ResponseMetaData dataLossFromOtherRow. + * @member {boolean} dataLossFromOtherRow + * @memberof google.analytics.data.v1alpha.ResponseMetaData + * @instance + */ + ResponseMetaData.prototype.dataLossFromOtherRow = false; + + /** + * ResponseMetaData schemaRestrictionResponse. + * @member {google.analytics.data.v1alpha.ResponseMetaData.ISchemaRestrictionResponse|null|undefined} schemaRestrictionResponse + * @memberof google.analytics.data.v1alpha.ResponseMetaData + * @instance + */ + ResponseMetaData.prototype.schemaRestrictionResponse = null; + + /** + * ResponseMetaData currencyCode. + * @member {string|null|undefined} currencyCode + * @memberof google.analytics.data.v1alpha.ResponseMetaData + * @instance + */ + ResponseMetaData.prototype.currencyCode = null; + + /** + * ResponseMetaData timeZone. + * @member {string|null|undefined} timeZone + * @memberof google.analytics.data.v1alpha.ResponseMetaData + * @instance + */ + ResponseMetaData.prototype.timeZone = null; + + /** + * ResponseMetaData emptyReason. + * @member {string|null|undefined} emptyReason + * @memberof google.analytics.data.v1alpha.ResponseMetaData + * @instance + */ + ResponseMetaData.prototype.emptyReason = null; + + /** + * ResponseMetaData subjectToThresholding. + * @member {boolean|null|undefined} subjectToThresholding + * @memberof google.analytics.data.v1alpha.ResponseMetaData + * @instance + */ + ResponseMetaData.prototype.subjectToThresholding = null; + + /** + * ResponseMetaData samplingMetadatas. + * @member {Array.} samplingMetadatas + * @memberof google.analytics.data.v1alpha.ResponseMetaData + * @instance + */ + ResponseMetaData.prototype.samplingMetadatas = $util.emptyArray; + + /** + * ResponseMetaData section. + * @member {google.analytics.data.v1alpha.Section} section + * @memberof google.analytics.data.v1alpha.ResponseMetaData + * @instance + */ + ResponseMetaData.prototype.section = 0; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + // Virtual OneOf for proto3 optional field + Object.defineProperty(ResponseMetaData.prototype, "_schemaRestrictionResponse", { + get: $util.oneOfGetter($oneOfFields = ["schemaRestrictionResponse"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(ResponseMetaData.prototype, "_currencyCode", { + get: $util.oneOfGetter($oneOfFields = ["currencyCode"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(ResponseMetaData.prototype, "_timeZone", { + get: $util.oneOfGetter($oneOfFields = ["timeZone"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(ResponseMetaData.prototype, "_emptyReason", { + get: $util.oneOfGetter($oneOfFields = ["emptyReason"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(ResponseMetaData.prototype, "_subjectToThresholding", { + get: $util.oneOfGetter($oneOfFields = ["subjectToThresholding"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new ResponseMetaData instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1alpha.ResponseMetaData + * @static + * @param {google.analytics.data.v1alpha.IResponseMetaData=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.ResponseMetaData} ResponseMetaData instance + */ + ResponseMetaData.create = function create(properties) { + return new ResponseMetaData(properties); + }; + + /** + * Encodes the specified ResponseMetaData message. Does not implicitly {@link google.analytics.data.v1alpha.ResponseMetaData.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1alpha.ResponseMetaData + * @static + * @param {google.analytics.data.v1alpha.IResponseMetaData} message ResponseMetaData message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ResponseMetaData.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.dataLossFromOtherRow != null && Object.hasOwnProperty.call(message, "dataLossFromOtherRow")) + writer.uint32(/* id 3, wireType 0 =*/24).bool(message.dataLossFromOtherRow); + if (message.schemaRestrictionResponse != null && Object.hasOwnProperty.call(message, "schemaRestrictionResponse")) + $root.google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.encode(message.schemaRestrictionResponse, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.currencyCode != null && Object.hasOwnProperty.call(message, "currencyCode")) + writer.uint32(/* id 5, wireType 2 =*/42).string(message.currencyCode); + if (message.timeZone != null && Object.hasOwnProperty.call(message, "timeZone")) + writer.uint32(/* id 6, wireType 2 =*/50).string(message.timeZone); + if (message.emptyReason != null && Object.hasOwnProperty.call(message, "emptyReason")) + writer.uint32(/* id 7, wireType 2 =*/58).string(message.emptyReason); + if (message.subjectToThresholding != null && Object.hasOwnProperty.call(message, "subjectToThresholding")) + writer.uint32(/* id 8, wireType 0 =*/64).bool(message.subjectToThresholding); + if (message.samplingMetadatas != null && message.samplingMetadatas.length) + for (var i = 0; i < message.samplingMetadatas.length; ++i) + $root.google.analytics.data.v1alpha.SamplingMetadata.encode(message.samplingMetadatas[i], writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim(); + if (message.section != null && Object.hasOwnProperty.call(message, "section")) + writer.uint32(/* id 10, wireType 0 =*/80).int32(message.section); + return writer; + }; + + /** + * Encodes the specified ResponseMetaData message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.ResponseMetaData.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1alpha.ResponseMetaData + * @static + * @param {google.analytics.data.v1alpha.IResponseMetaData} message ResponseMetaData message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ResponseMetaData.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a ResponseMetaData message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1alpha.ResponseMetaData + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1alpha.ResponseMetaData} ResponseMetaData + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ResponseMetaData.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.ResponseMetaData(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 3: { + message.dataLossFromOtherRow = reader.bool(); + break; + } + case 4: { + message.schemaRestrictionResponse = $root.google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.decode(reader, reader.uint32()); + break; + } + case 5: { + message.currencyCode = reader.string(); + break; + } + case 6: { + message.timeZone = reader.string(); + break; + } + case 7: { + message.emptyReason = reader.string(); + break; + } + case 8: { + message.subjectToThresholding = reader.bool(); + break; + } + case 9: { + if (!(message.samplingMetadatas && message.samplingMetadatas.length)) + message.samplingMetadatas = []; + message.samplingMetadatas.push($root.google.analytics.data.v1alpha.SamplingMetadata.decode(reader, reader.uint32())); + break; + } + case 10: { + message.section = reader.int32(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a ResponseMetaData message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1alpha.ResponseMetaData + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1alpha.ResponseMetaData} ResponseMetaData + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ResponseMetaData.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a ResponseMetaData message. + * @function verify + * @memberof google.analytics.data.v1alpha.ResponseMetaData + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ResponseMetaData.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.dataLossFromOtherRow != null && message.hasOwnProperty("dataLossFromOtherRow")) + if (typeof message.dataLossFromOtherRow !== "boolean") + return "dataLossFromOtherRow: boolean expected"; + if (message.schemaRestrictionResponse != null && message.hasOwnProperty("schemaRestrictionResponse")) { + properties._schemaRestrictionResponse = 1; + { + var error = $root.google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.verify(message.schemaRestrictionResponse); + if (error) + return "schemaRestrictionResponse." + error; + } + } + if (message.currencyCode != null && message.hasOwnProperty("currencyCode")) { + properties._currencyCode = 1; + if (!$util.isString(message.currencyCode)) + return "currencyCode: string expected"; + } + if (message.timeZone != null && message.hasOwnProperty("timeZone")) { + properties._timeZone = 1; + if (!$util.isString(message.timeZone)) + return "timeZone: string expected"; + } + if (message.emptyReason != null && message.hasOwnProperty("emptyReason")) { + properties._emptyReason = 1; + if (!$util.isString(message.emptyReason)) + return "emptyReason: string expected"; + } + if (message.subjectToThresholding != null && message.hasOwnProperty("subjectToThresholding")) { + properties._subjectToThresholding = 1; + if (typeof message.subjectToThresholding !== "boolean") + return "subjectToThresholding: boolean expected"; + } + if (message.samplingMetadatas != null && message.hasOwnProperty("samplingMetadatas")) { + if (!Array.isArray(message.samplingMetadatas)) + return "samplingMetadatas: array expected"; + for (var i = 0; i < message.samplingMetadatas.length; ++i) { + var error = $root.google.analytics.data.v1alpha.SamplingMetadata.verify(message.samplingMetadatas[i]); + if (error) + return "samplingMetadatas." + error; + } + } + if (message.section != null && message.hasOwnProperty("section")) + switch (message.section) { + default: + return "section: enum value expected"; + case 0: + case 1: + case 2: + break; + } + return null; + }; + + /** + * Creates a ResponseMetaData message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1alpha.ResponseMetaData + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1alpha.ResponseMetaData} ResponseMetaData + */ + ResponseMetaData.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.ResponseMetaData) + return object; + var message = new $root.google.analytics.data.v1alpha.ResponseMetaData(); + if (object.dataLossFromOtherRow != null) + message.dataLossFromOtherRow = Boolean(object.dataLossFromOtherRow); + if (object.schemaRestrictionResponse != null) { + if (typeof object.schemaRestrictionResponse !== "object") + throw TypeError(".google.analytics.data.v1alpha.ResponseMetaData.schemaRestrictionResponse: object expected"); + message.schemaRestrictionResponse = $root.google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.fromObject(object.schemaRestrictionResponse); + } + if (object.currencyCode != null) + message.currencyCode = String(object.currencyCode); + if (object.timeZone != null) + message.timeZone = String(object.timeZone); + if (object.emptyReason != null) + message.emptyReason = String(object.emptyReason); + if (object.subjectToThresholding != null) + message.subjectToThresholding = Boolean(object.subjectToThresholding); + if (object.samplingMetadatas) { + if (!Array.isArray(object.samplingMetadatas)) + throw TypeError(".google.analytics.data.v1alpha.ResponseMetaData.samplingMetadatas: array expected"); + message.samplingMetadatas = []; + for (var i = 0; i < object.samplingMetadatas.length; ++i) { + if (typeof object.samplingMetadatas[i] !== "object") + throw TypeError(".google.analytics.data.v1alpha.ResponseMetaData.samplingMetadatas: object expected"); + message.samplingMetadatas[i] = $root.google.analytics.data.v1alpha.SamplingMetadata.fromObject(object.samplingMetadatas[i]); + } + } + switch (object.section) { + default: + if (typeof object.section === "number") { + message.section = object.section; + break; + } + break; + case "SECTION_UNSPECIFIED": + case 0: + message.section = 0; + break; + case "SECTION_REPORT": + case 1: + message.section = 1; + break; + case "SECTION_ADVERTISING": + case 2: + message.section = 2; + break; + } + return message; + }; + + /** + * Creates a plain object from a ResponseMetaData message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1alpha.ResponseMetaData + * @static + * @param {google.analytics.data.v1alpha.ResponseMetaData} message ResponseMetaData + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ResponseMetaData.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.samplingMetadatas = []; + if (options.defaults) { + object.dataLossFromOtherRow = false; + object.section = options.enums === String ? "SECTION_UNSPECIFIED" : 0; + } + if (message.dataLossFromOtherRow != null && message.hasOwnProperty("dataLossFromOtherRow")) + object.dataLossFromOtherRow = message.dataLossFromOtherRow; + if (message.schemaRestrictionResponse != null && message.hasOwnProperty("schemaRestrictionResponse")) { + object.schemaRestrictionResponse = $root.google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.toObject(message.schemaRestrictionResponse, options); + if (options.oneofs) + object._schemaRestrictionResponse = "schemaRestrictionResponse"; + } + if (message.currencyCode != null && message.hasOwnProperty("currencyCode")) { + object.currencyCode = message.currencyCode; + if (options.oneofs) + object._currencyCode = "currencyCode"; + } + if (message.timeZone != null && message.hasOwnProperty("timeZone")) { + object.timeZone = message.timeZone; + if (options.oneofs) + object._timeZone = "timeZone"; + } + if (message.emptyReason != null && message.hasOwnProperty("emptyReason")) { + object.emptyReason = message.emptyReason; + if (options.oneofs) + object._emptyReason = "emptyReason"; + } + if (message.subjectToThresholding != null && message.hasOwnProperty("subjectToThresholding")) { + object.subjectToThresholding = message.subjectToThresholding; + if (options.oneofs) + object._subjectToThresholding = "subjectToThresholding"; + } + if (message.samplingMetadatas && message.samplingMetadatas.length) { + object.samplingMetadatas = []; + for (var j = 0; j < message.samplingMetadatas.length; ++j) + object.samplingMetadatas[j] = $root.google.analytics.data.v1alpha.SamplingMetadata.toObject(message.samplingMetadatas[j], options); + } + if (message.section != null && message.hasOwnProperty("section")) + object.section = options.enums === String ? $root.google.analytics.data.v1alpha.Section[message.section] === undefined ? message.section : $root.google.analytics.data.v1alpha.Section[message.section] : message.section; + return object; + }; + + /** + * Converts this ResponseMetaData to JSON. + * @function toJSON + * @memberof google.analytics.data.v1alpha.ResponseMetaData + * @instance + * @returns {Object.} JSON object + */ + ResponseMetaData.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for ResponseMetaData + * @function getTypeUrl + * @memberof google.analytics.data.v1alpha.ResponseMetaData + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + ResponseMetaData.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.analytics.data.v1alpha.ResponseMetaData"; + }; + + ResponseMetaData.SchemaRestrictionResponse = (function() { + + /** + * Properties of a SchemaRestrictionResponse. + * @memberof google.analytics.data.v1alpha.ResponseMetaData + * @interface ISchemaRestrictionResponse + * @property {Array.|null} [activeMetricRestrictions] SchemaRestrictionResponse activeMetricRestrictions + */ + + /** + * Constructs a new SchemaRestrictionResponse. + * @memberof google.analytics.data.v1alpha.ResponseMetaData + * @classdesc Represents a SchemaRestrictionResponse. + * @implements ISchemaRestrictionResponse + * @constructor + * @param {google.analytics.data.v1alpha.ResponseMetaData.ISchemaRestrictionResponse=} [properties] Properties to set + */ + function SchemaRestrictionResponse(properties) { + this.activeMetricRestrictions = []; + 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]]; + } + + /** + * SchemaRestrictionResponse activeMetricRestrictions. + * @member {Array.} activeMetricRestrictions + * @memberof google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse + * @instance + */ + SchemaRestrictionResponse.prototype.activeMetricRestrictions = $util.emptyArray; + + /** + * Creates a new SchemaRestrictionResponse instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse + * @static + * @param {google.analytics.data.v1alpha.ResponseMetaData.ISchemaRestrictionResponse=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse} SchemaRestrictionResponse instance + */ + SchemaRestrictionResponse.create = function create(properties) { + return new SchemaRestrictionResponse(properties); + }; + + /** + * Encodes the specified SchemaRestrictionResponse message. Does not implicitly {@link google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse + * @static + * @param {google.analytics.data.v1alpha.ResponseMetaData.ISchemaRestrictionResponse} message SchemaRestrictionResponse message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + SchemaRestrictionResponse.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.activeMetricRestrictions != null && message.activeMetricRestrictions.length) + for (var i = 0; i < message.activeMetricRestrictions.length; ++i) + $root.google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction.encode(message.activeMetricRestrictions[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified SchemaRestrictionResponse message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse + * @static + * @param {google.analytics.data.v1alpha.ResponseMetaData.ISchemaRestrictionResponse} message SchemaRestrictionResponse message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + SchemaRestrictionResponse.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a SchemaRestrictionResponse message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse} SchemaRestrictionResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + SchemaRestrictionResponse.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + if (!(message.activeMetricRestrictions && message.activeMetricRestrictions.length)) + message.activeMetricRestrictions = []; + message.activeMetricRestrictions.push($root.google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction.decode(reader, reader.uint32())); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a SchemaRestrictionResponse message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse} SchemaRestrictionResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + SchemaRestrictionResponse.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a SchemaRestrictionResponse message. + * @function verify + * @memberof google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + SchemaRestrictionResponse.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.activeMetricRestrictions != null && message.hasOwnProperty("activeMetricRestrictions")) { + if (!Array.isArray(message.activeMetricRestrictions)) + return "activeMetricRestrictions: array expected"; + for (var i = 0; i < message.activeMetricRestrictions.length; ++i) { + var error = $root.google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction.verify(message.activeMetricRestrictions[i]); + if (error) + return "activeMetricRestrictions." + error; + } + } + return null; + }; + + /** + * Creates a SchemaRestrictionResponse message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse} SchemaRestrictionResponse + */ + SchemaRestrictionResponse.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse) + return object; + var message = new $root.google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse(); + if (object.activeMetricRestrictions) { + if (!Array.isArray(object.activeMetricRestrictions)) + throw TypeError(".google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.activeMetricRestrictions: array expected"); + message.activeMetricRestrictions = []; + for (var i = 0; i < object.activeMetricRestrictions.length; ++i) { + if (typeof object.activeMetricRestrictions[i] !== "object") + throw TypeError(".google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.activeMetricRestrictions: object expected"); + message.activeMetricRestrictions[i] = $root.google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction.fromObject(object.activeMetricRestrictions[i]); + } + } + return message; + }; + + /** + * Creates a plain object from a SchemaRestrictionResponse message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse + * @static + * @param {google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse} message SchemaRestrictionResponse + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + SchemaRestrictionResponse.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.activeMetricRestrictions = []; + if (message.activeMetricRestrictions && message.activeMetricRestrictions.length) { + object.activeMetricRestrictions = []; + for (var j = 0; j < message.activeMetricRestrictions.length; ++j) + object.activeMetricRestrictions[j] = $root.google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction.toObject(message.activeMetricRestrictions[j], options); + } + return object; + }; + + /** + * Converts this SchemaRestrictionResponse to JSON. + * @function toJSON + * @memberof google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse + * @instance + * @returns {Object.} JSON object + */ + SchemaRestrictionResponse.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for SchemaRestrictionResponse + * @function getTypeUrl + * @memberof google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + SchemaRestrictionResponse.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse"; + }; + + SchemaRestrictionResponse.ActiveMetricRestriction = (function() { + + /** + * Properties of an ActiveMetricRestriction. + * @memberof google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse + * @interface IActiveMetricRestriction + * @property {string|null} [metricName] ActiveMetricRestriction metricName + * @property {Array.|null} [restrictedMetricTypes] ActiveMetricRestriction restrictedMetricTypes + */ + + /** + * Constructs a new ActiveMetricRestriction. + * @memberof google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse + * @classdesc Represents an ActiveMetricRestriction. + * @implements IActiveMetricRestriction + * @constructor + * @param {google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.IActiveMetricRestriction=} [properties] Properties to set + */ + function ActiveMetricRestriction(properties) { + this.restrictedMetricTypes = []; + 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]]; + } + + /** + * ActiveMetricRestriction metricName. + * @member {string|null|undefined} metricName + * @memberof google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction + * @instance + */ + ActiveMetricRestriction.prototype.metricName = null; + + /** + * ActiveMetricRestriction restrictedMetricTypes. + * @member {Array.} restrictedMetricTypes + * @memberof google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction + * @instance + */ + ActiveMetricRestriction.prototype.restrictedMetricTypes = $util.emptyArray; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + // Virtual OneOf for proto3 optional field + Object.defineProperty(ActiveMetricRestriction.prototype, "_metricName", { + get: $util.oneOfGetter($oneOfFields = ["metricName"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new ActiveMetricRestriction instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction + * @static + * @param {google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.IActiveMetricRestriction=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction} ActiveMetricRestriction instance + */ + ActiveMetricRestriction.create = function create(properties) { + return new ActiveMetricRestriction(properties); + }; + + /** + * Encodes the specified ActiveMetricRestriction message. Does not implicitly {@link google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction + * @static + * @param {google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.IActiveMetricRestriction} message ActiveMetricRestriction message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ActiveMetricRestriction.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.metricName != null && Object.hasOwnProperty.call(message, "metricName")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.metricName); + if (message.restrictedMetricTypes != null && message.restrictedMetricTypes.length) { + writer.uint32(/* id 2, wireType 2 =*/18).fork(); + for (var i = 0; i < message.restrictedMetricTypes.length; ++i) + writer.int32(message.restrictedMetricTypes[i]); + writer.ldelim(); + } + return writer; + }; + + /** + * Encodes the specified ActiveMetricRestriction message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction + * @static + * @param {google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.IActiveMetricRestriction} message ActiveMetricRestriction message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ActiveMetricRestriction.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an ActiveMetricRestriction message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction} ActiveMetricRestriction + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ActiveMetricRestriction.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.metricName = reader.string(); + break; + } + case 2: { + if (!(message.restrictedMetricTypes && message.restrictedMetricTypes.length)) + message.restrictedMetricTypes = []; + if ((tag & 7) === 2) { + var end2 = reader.uint32() + reader.pos; + while (reader.pos < end2) + message.restrictedMetricTypes.push(reader.int32()); + } else + message.restrictedMetricTypes.push(reader.int32()); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an ActiveMetricRestriction message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction} ActiveMetricRestriction + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ActiveMetricRestriction.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an ActiveMetricRestriction message. + * @function verify + * @memberof google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ActiveMetricRestriction.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.metricName != null && message.hasOwnProperty("metricName")) { + properties._metricName = 1; + if (!$util.isString(message.metricName)) + return "metricName: string expected"; + } + if (message.restrictedMetricTypes != null && message.hasOwnProperty("restrictedMetricTypes")) { + if (!Array.isArray(message.restrictedMetricTypes)) + return "restrictedMetricTypes: array expected"; + for (var i = 0; i < message.restrictedMetricTypes.length; ++i) + switch (message.restrictedMetricTypes[i]) { + default: + return "restrictedMetricTypes: enum value[] expected"; + case 0: + case 1: + case 2: + break; + } + } + return null; + }; + + /** + * Creates an ActiveMetricRestriction message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction} ActiveMetricRestriction + */ + ActiveMetricRestriction.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction) + return object; + var message = new $root.google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction(); + if (object.metricName != null) + message.metricName = String(object.metricName); + if (object.restrictedMetricTypes) { + if (!Array.isArray(object.restrictedMetricTypes)) + throw TypeError(".google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction.restrictedMetricTypes: array expected"); + message.restrictedMetricTypes = []; + for (var i = 0; i < object.restrictedMetricTypes.length; ++i) + switch (object.restrictedMetricTypes[i]) { + default: + if (typeof object.restrictedMetricTypes[i] === "number") { + message.restrictedMetricTypes[i] = object.restrictedMetricTypes[i]; + break; + } + case "RESTRICTED_METRIC_TYPE_UNSPECIFIED": + case 0: + message.restrictedMetricTypes[i] = 0; + break; + case "COST_DATA": + case 1: + message.restrictedMetricTypes[i] = 1; + break; + case "REVENUE_DATA": + case 2: + message.restrictedMetricTypes[i] = 2; + break; + } + } + return message; + }; + + /** + * Creates a plain object from an ActiveMetricRestriction message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction + * @static + * @param {google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction} message ActiveMetricRestriction + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ActiveMetricRestriction.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.restrictedMetricTypes = []; + if (message.metricName != null && message.hasOwnProperty("metricName")) { + object.metricName = message.metricName; + if (options.oneofs) + object._metricName = "metricName"; + } + if (message.restrictedMetricTypes && message.restrictedMetricTypes.length) { + object.restrictedMetricTypes = []; + for (var j = 0; j < message.restrictedMetricTypes.length; ++j) + object.restrictedMetricTypes[j] = options.enums === String ? $root.google.analytics.data.v1alpha.RestrictedMetricType[message.restrictedMetricTypes[j]] === undefined ? message.restrictedMetricTypes[j] : $root.google.analytics.data.v1alpha.RestrictedMetricType[message.restrictedMetricTypes[j]] : message.restrictedMetricTypes[j]; + } + return object; + }; + + /** + * Converts this ActiveMetricRestriction to JSON. + * @function toJSON + * @memberof google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction + * @instance + * @returns {Object.} JSON object + */ + ActiveMetricRestriction.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * Gets the default type url for Cohort - * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.Cohort - * @static - * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns {string} The default type url - */ - Cohort.getTypeUrl = function getTypeUrl(typeUrlPrefix) { - if (typeUrlPrefix === undefined) { - typeUrlPrefix = "type.googleapis.com"; - } - return typeUrlPrefix + "/google.analytics.data.v1alpha.Cohort"; - }; + /** + * Gets the default type url for ActiveMetricRestriction + * @function getTypeUrl + * @memberof google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + ActiveMetricRestriction.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction"; + }; - return Cohort; + return ActiveMetricRestriction; + })(); + + return SchemaRestrictionResponse; + })(); + + return ResponseMetaData; })(); - v1alpha.CohortsRange = (function() { + v1alpha.DimensionHeader = (function() { /** - * Properties of a CohortsRange. + * Properties of a DimensionHeader. * @memberof google.analytics.data.v1alpha - * @interface ICohortsRange - * @property {google.analytics.data.v1alpha.CohortsRange.Granularity|null} [granularity] CohortsRange granularity - * @property {number|null} [startOffset] CohortsRange startOffset - * @property {number|null} [endOffset] CohortsRange endOffset + * @interface IDimensionHeader + * @property {string|null} [name] DimensionHeader name */ /** - * Constructs a new CohortsRange. + * Constructs a new DimensionHeader. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a CohortsRange. - * @implements ICohortsRange + * @classdesc Represents a DimensionHeader. + * @implements IDimensionHeader * @constructor - * @param {google.analytics.data.v1alpha.ICohortsRange=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IDimensionHeader=} [properties] Properties to set */ - function CohortsRange(properties) { + function DimensionHeader(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -28721,105 +31889,77 @@ } /** - * CohortsRange granularity. - * @member {google.analytics.data.v1alpha.CohortsRange.Granularity} granularity - * @memberof google.analytics.data.v1alpha.CohortsRange - * @instance - */ - CohortsRange.prototype.granularity = 0; - - /** - * CohortsRange startOffset. - * @member {number} startOffset - * @memberof google.analytics.data.v1alpha.CohortsRange - * @instance - */ - CohortsRange.prototype.startOffset = 0; - - /** - * CohortsRange endOffset. - * @member {number} endOffset - * @memberof google.analytics.data.v1alpha.CohortsRange + * DimensionHeader name. + * @member {string} name + * @memberof google.analytics.data.v1alpha.DimensionHeader * @instance */ - CohortsRange.prototype.endOffset = 0; + DimensionHeader.prototype.name = ""; /** - * Creates a new CohortsRange instance using the specified properties. + * Creates a new DimensionHeader instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.CohortsRange + * @memberof google.analytics.data.v1alpha.DimensionHeader * @static - * @param {google.analytics.data.v1alpha.ICohortsRange=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.CohortsRange} CohortsRange instance + * @param {google.analytics.data.v1alpha.IDimensionHeader=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.DimensionHeader} DimensionHeader instance */ - CohortsRange.create = function create(properties) { - return new CohortsRange(properties); + DimensionHeader.create = function create(properties) { + return new DimensionHeader(properties); }; /** - * Encodes the specified CohortsRange message. Does not implicitly {@link google.analytics.data.v1alpha.CohortsRange.verify|verify} messages. + * Encodes the specified DimensionHeader message. Does not implicitly {@link google.analytics.data.v1alpha.DimensionHeader.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.CohortsRange + * @memberof google.analytics.data.v1alpha.DimensionHeader * @static - * @param {google.analytics.data.v1alpha.ICohortsRange} message CohortsRange message or plain object to encode + * @param {google.analytics.data.v1alpha.IDimensionHeader} message DimensionHeader message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - CohortsRange.encode = function encode(message, writer) { + DimensionHeader.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.granularity != null && Object.hasOwnProperty.call(message, "granularity")) - writer.uint32(/* id 1, wireType 0 =*/8).int32(message.granularity); - if (message.startOffset != null && Object.hasOwnProperty.call(message, "startOffset")) - writer.uint32(/* id 2, wireType 0 =*/16).int32(message.startOffset); - if (message.endOffset != null && Object.hasOwnProperty.call(message, "endOffset")) - writer.uint32(/* id 3, wireType 0 =*/24).int32(message.endOffset); + if (message.name != null && Object.hasOwnProperty.call(message, "name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); return writer; }; /** - * Encodes the specified CohortsRange message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.CohortsRange.verify|verify} messages. + * Encodes the specified DimensionHeader message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.DimensionHeader.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.CohortsRange + * @memberof google.analytics.data.v1alpha.DimensionHeader * @static - * @param {google.analytics.data.v1alpha.ICohortsRange} message CohortsRange message or plain object to encode + * @param {google.analytics.data.v1alpha.IDimensionHeader} message DimensionHeader message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - CohortsRange.encodeDelimited = function encodeDelimited(message, writer) { + DimensionHeader.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a CohortsRange message from the specified reader or buffer. + * Decodes a DimensionHeader message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.CohortsRange + * @memberof google.analytics.data.v1alpha.DimensionHeader * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.CohortsRange} CohortsRange + * @returns {google.analytics.data.v1alpha.DimensionHeader} DimensionHeader * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CohortsRange.decode = function decode(reader, length, error) { + DimensionHeader.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.CohortsRange(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.DimensionHeader(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { case 1: { - message.granularity = reader.int32(); - break; - } - case 2: { - message.startOffset = reader.int32(); - break; - } - case 3: { - message.endOffset = reader.int32(); + message.name = reader.string(); break; } default: @@ -28831,186 +31971,123 @@ }; /** - * Decodes a CohortsRange message from the specified reader or buffer, length delimited. + * Decodes a DimensionHeader message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.CohortsRange + * @memberof google.analytics.data.v1alpha.DimensionHeader * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.CohortsRange} CohortsRange + * @returns {google.analytics.data.v1alpha.DimensionHeader} DimensionHeader * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CohortsRange.decodeDelimited = function decodeDelimited(reader) { + DimensionHeader.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a CohortsRange message. + * Verifies a DimensionHeader message. * @function verify - * @memberof google.analytics.data.v1alpha.CohortsRange + * @memberof google.analytics.data.v1alpha.DimensionHeader * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - CohortsRange.verify = function verify(message) { + DimensionHeader.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.granularity != null && message.hasOwnProperty("granularity")) - switch (message.granularity) { - default: - return "granularity: enum value expected"; - case 0: - case 1: - case 2: - case 3: - break; - } - if (message.startOffset != null && message.hasOwnProperty("startOffset")) - if (!$util.isInteger(message.startOffset)) - return "startOffset: integer expected"; - if (message.endOffset != null && message.hasOwnProperty("endOffset")) - if (!$util.isInteger(message.endOffset)) - return "endOffset: integer expected"; + if (message.name != null && message.hasOwnProperty("name")) + if (!$util.isString(message.name)) + return "name: string expected"; return null; }; /** - * Creates a CohortsRange message from a plain object. Also converts values to their respective internal types. + * Creates a DimensionHeader message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.CohortsRange + * @memberof google.analytics.data.v1alpha.DimensionHeader * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.CohortsRange} CohortsRange + * @returns {google.analytics.data.v1alpha.DimensionHeader} DimensionHeader */ - CohortsRange.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.CohortsRange) + DimensionHeader.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.DimensionHeader) return object; - var message = new $root.google.analytics.data.v1alpha.CohortsRange(); - switch (object.granularity) { - default: - if (typeof object.granularity === "number") { - message.granularity = object.granularity; - break; - } - break; - case "GRANULARITY_UNSPECIFIED": - case 0: - message.granularity = 0; - break; - case "DAILY": - case 1: - message.granularity = 1; - break; - case "WEEKLY": - case 2: - message.granularity = 2; - break; - case "MONTHLY": - case 3: - message.granularity = 3; - break; - } - if (object.startOffset != null) - message.startOffset = object.startOffset | 0; - if (object.endOffset != null) - message.endOffset = object.endOffset | 0; + var message = new $root.google.analytics.data.v1alpha.DimensionHeader(); + if (object.name != null) + message.name = String(object.name); return message; }; /** - * Creates a plain object from a CohortsRange message. Also converts values to other types if specified. + * Creates a plain object from a DimensionHeader message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.CohortsRange + * @memberof google.analytics.data.v1alpha.DimensionHeader * @static - * @param {google.analytics.data.v1alpha.CohortsRange} message CohortsRange + * @param {google.analytics.data.v1alpha.DimensionHeader} message DimensionHeader * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - CohortsRange.toObject = function toObject(message, options) { + DimensionHeader.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.defaults) { - object.granularity = options.enums === String ? "GRANULARITY_UNSPECIFIED" : 0; - object.startOffset = 0; - object.endOffset = 0; - } - if (message.granularity != null && message.hasOwnProperty("granularity")) - object.granularity = options.enums === String ? $root.google.analytics.data.v1alpha.CohortsRange.Granularity[message.granularity] === undefined ? message.granularity : $root.google.analytics.data.v1alpha.CohortsRange.Granularity[message.granularity] : message.granularity; - if (message.startOffset != null && message.hasOwnProperty("startOffset")) - object.startOffset = message.startOffset; - if (message.endOffset != null && message.hasOwnProperty("endOffset")) - object.endOffset = message.endOffset; + if (options.defaults) + object.name = ""; + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; return object; }; /** - * Converts this CohortsRange to JSON. + * Converts this DimensionHeader to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.CohortsRange + * @memberof google.analytics.data.v1alpha.DimensionHeader * @instance * @returns {Object.} JSON object */ - CohortsRange.prototype.toJSON = function toJSON() { + DimensionHeader.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for CohortsRange + * Gets the default type url for DimensionHeader * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.CohortsRange + * @memberof google.analytics.data.v1alpha.DimensionHeader * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - CohortsRange.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + DimensionHeader.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.analytics.data.v1alpha.CohortsRange"; + return typeUrlPrefix + "/google.analytics.data.v1alpha.DimensionHeader"; }; - /** - * Granularity enum. - * @name google.analytics.data.v1alpha.CohortsRange.Granularity - * @enum {number} - * @property {number} GRANULARITY_UNSPECIFIED=0 GRANULARITY_UNSPECIFIED value - * @property {number} DAILY=1 DAILY value - * @property {number} WEEKLY=2 WEEKLY value - * @property {number} MONTHLY=3 MONTHLY value - */ - CohortsRange.Granularity = (function() { - var valuesById = {}, values = Object.create(valuesById); - values[valuesById[0] = "GRANULARITY_UNSPECIFIED"] = 0; - values[valuesById[1] = "DAILY"] = 1; - values[valuesById[2] = "WEEKLY"] = 2; - values[valuesById[3] = "MONTHLY"] = 3; - return values; - })(); - - return CohortsRange; + return DimensionHeader; })(); - v1alpha.CohortReportSettings = (function() { + v1alpha.MetricHeader = (function() { /** - * Properties of a CohortReportSettings. + * Properties of a MetricHeader. * @memberof google.analytics.data.v1alpha - * @interface ICohortReportSettings - * @property {boolean|null} [accumulate] CohortReportSettings accumulate + * @interface IMetricHeader + * @property {string|null} [name] MetricHeader name + * @property {google.analytics.data.v1alpha.MetricType|null} [type] MetricHeader type */ /** - * Constructs a new CohortReportSettings. + * Constructs a new MetricHeader. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a CohortReportSettings. - * @implements ICohortReportSettings + * @classdesc Represents a MetricHeader. + * @implements IMetricHeader * @constructor - * @param {google.analytics.data.v1alpha.ICohortReportSettings=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IMetricHeader=} [properties] Properties to set */ - function CohortReportSettings(properties) { + function MetricHeader(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -29018,77 +32095,91 @@ } /** - * CohortReportSettings accumulate. - * @member {boolean} accumulate - * @memberof google.analytics.data.v1alpha.CohortReportSettings + * MetricHeader name. + * @member {string} name + * @memberof google.analytics.data.v1alpha.MetricHeader * @instance */ - CohortReportSettings.prototype.accumulate = false; + MetricHeader.prototype.name = ""; /** - * Creates a new CohortReportSettings instance using the specified properties. + * MetricHeader type. + * @member {google.analytics.data.v1alpha.MetricType} type + * @memberof google.analytics.data.v1alpha.MetricHeader + * @instance + */ + MetricHeader.prototype.type = 0; + + /** + * Creates a new MetricHeader instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.CohortReportSettings + * @memberof google.analytics.data.v1alpha.MetricHeader * @static - * @param {google.analytics.data.v1alpha.ICohortReportSettings=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.CohortReportSettings} CohortReportSettings instance + * @param {google.analytics.data.v1alpha.IMetricHeader=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.MetricHeader} MetricHeader instance */ - CohortReportSettings.create = function create(properties) { - return new CohortReportSettings(properties); + MetricHeader.create = function create(properties) { + return new MetricHeader(properties); }; /** - * Encodes the specified CohortReportSettings message. Does not implicitly {@link google.analytics.data.v1alpha.CohortReportSettings.verify|verify} messages. + * Encodes the specified MetricHeader message. Does not implicitly {@link google.analytics.data.v1alpha.MetricHeader.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.CohortReportSettings + * @memberof google.analytics.data.v1alpha.MetricHeader * @static - * @param {google.analytics.data.v1alpha.ICohortReportSettings} message CohortReportSettings message or plain object to encode + * @param {google.analytics.data.v1alpha.IMetricHeader} message MetricHeader message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - CohortReportSettings.encode = function encode(message, writer) { + MetricHeader.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.accumulate != null && Object.hasOwnProperty.call(message, "accumulate")) - writer.uint32(/* id 1, wireType 0 =*/8).bool(message.accumulate); + if (message.name != null && Object.hasOwnProperty.call(message, "name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + if (message.type != null && Object.hasOwnProperty.call(message, "type")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.type); return writer; }; /** - * Encodes the specified CohortReportSettings message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.CohortReportSettings.verify|verify} messages. + * Encodes the specified MetricHeader message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.MetricHeader.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.CohortReportSettings + * @memberof google.analytics.data.v1alpha.MetricHeader * @static - * @param {google.analytics.data.v1alpha.ICohortReportSettings} message CohortReportSettings message or plain object to encode + * @param {google.analytics.data.v1alpha.IMetricHeader} message MetricHeader message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - CohortReportSettings.encodeDelimited = function encodeDelimited(message, writer) { + MetricHeader.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a CohortReportSettings message from the specified reader or buffer. + * Decodes a MetricHeader message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.CohortReportSettings + * @memberof google.analytics.data.v1alpha.MetricHeader * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.CohortReportSettings} CohortReportSettings + * @returns {google.analytics.data.v1alpha.MetricHeader} MetricHeader * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CohortReportSettings.decode = function decode(reader, length, error) { + MetricHeader.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.CohortReportSettings(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.MetricHeader(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { case 1: { - message.accumulate = reader.bool(); + message.name = reader.string(); + break; + } + case 2: { + message.type = reader.int32(); break; } default: @@ -29100,129 +32191,208 @@ }; /** - * Decodes a CohortReportSettings message from the specified reader or buffer, length delimited. + * Decodes a MetricHeader message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.CohortReportSettings + * @memberof google.analytics.data.v1alpha.MetricHeader * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.CohortReportSettings} CohortReportSettings + * @returns {google.analytics.data.v1alpha.MetricHeader} MetricHeader * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CohortReportSettings.decodeDelimited = function decodeDelimited(reader) { + MetricHeader.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a CohortReportSettings message. + * Verifies a MetricHeader message. * @function verify - * @memberof google.analytics.data.v1alpha.CohortReportSettings + * @memberof google.analytics.data.v1alpha.MetricHeader * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - CohortReportSettings.verify = function verify(message) { + MetricHeader.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.accumulate != null && message.hasOwnProperty("accumulate")) - if (typeof message.accumulate !== "boolean") - return "accumulate: boolean expected"; + if (message.name != null && message.hasOwnProperty("name")) + if (!$util.isString(message.name)) + return "name: string expected"; + if (message.type != null && message.hasOwnProperty("type")) + switch (message.type) { + default: + return "type: enum value expected"; + case 0: + case 1: + case 2: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + break; + } return null; }; /** - * Creates a CohortReportSettings message from a plain object. Also converts values to their respective internal types. + * Creates a MetricHeader message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.CohortReportSettings + * @memberof google.analytics.data.v1alpha.MetricHeader * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.CohortReportSettings} CohortReportSettings + * @returns {google.analytics.data.v1alpha.MetricHeader} MetricHeader */ - CohortReportSettings.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.CohortReportSettings) + MetricHeader.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.MetricHeader) return object; - var message = new $root.google.analytics.data.v1alpha.CohortReportSettings(); - if (object.accumulate != null) - message.accumulate = Boolean(object.accumulate); + var message = new $root.google.analytics.data.v1alpha.MetricHeader(); + if (object.name != null) + message.name = String(object.name); + switch (object.type) { + default: + if (typeof object.type === "number") { + message.type = object.type; + break; + } + break; + case "METRIC_TYPE_UNSPECIFIED": + case 0: + message.type = 0; + break; + case "TYPE_INTEGER": + case 1: + message.type = 1; + break; + case "TYPE_FLOAT": + case 2: + message.type = 2; + break; + case "TYPE_SECONDS": + case 4: + message.type = 4; + break; + case "TYPE_MILLISECONDS": + case 5: + message.type = 5; + break; + case "TYPE_MINUTES": + case 6: + message.type = 6; + break; + case "TYPE_HOURS": + case 7: + message.type = 7; + break; + case "TYPE_STANDARD": + case 8: + message.type = 8; + break; + case "TYPE_CURRENCY": + case 9: + message.type = 9; + break; + case "TYPE_FEET": + case 10: + message.type = 10; + break; + case "TYPE_MILES": + case 11: + message.type = 11; + break; + case "TYPE_METERS": + case 12: + message.type = 12; + break; + case "TYPE_KILOMETERS": + case 13: + message.type = 13; + break; + } return message; }; /** - * Creates a plain object from a CohortReportSettings message. Also converts values to other types if specified. + * Creates a plain object from a MetricHeader message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.CohortReportSettings + * @memberof google.analytics.data.v1alpha.MetricHeader * @static - * @param {google.analytics.data.v1alpha.CohortReportSettings} message CohortReportSettings + * @param {google.analytics.data.v1alpha.MetricHeader} message MetricHeader * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - CohortReportSettings.toObject = function toObject(message, options) { + MetricHeader.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.defaults) - object.accumulate = false; - if (message.accumulate != null && message.hasOwnProperty("accumulate")) - object.accumulate = message.accumulate; + if (options.defaults) { + object.name = ""; + object.type = options.enums === String ? "METRIC_TYPE_UNSPECIFIED" : 0; + } + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + if (message.type != null && message.hasOwnProperty("type")) + object.type = options.enums === String ? $root.google.analytics.data.v1alpha.MetricType[message.type] === undefined ? message.type : $root.google.analytics.data.v1alpha.MetricType[message.type] : message.type; return object; }; /** - * Converts this CohortReportSettings to JSON. + * Converts this MetricHeader to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.CohortReportSettings + * @memberof google.analytics.data.v1alpha.MetricHeader * @instance * @returns {Object.} JSON object */ - CohortReportSettings.prototype.toJSON = function toJSON() { + MetricHeader.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for CohortReportSettings + * Gets the default type url for MetricHeader * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.CohortReportSettings + * @memberof google.analytics.data.v1alpha.MetricHeader * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - CohortReportSettings.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + MetricHeader.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.analytics.data.v1alpha.CohortReportSettings"; + return typeUrlPrefix + "/google.analytics.data.v1alpha.MetricHeader"; }; - return CohortReportSettings; + return MetricHeader; })(); - v1alpha.ResponseMetaData = (function() { + v1alpha.Row = (function() { /** - * Properties of a ResponseMetaData. + * Properties of a Row. * @memberof google.analytics.data.v1alpha - * @interface IResponseMetaData - * @property {boolean|null} [dataLossFromOtherRow] ResponseMetaData dataLossFromOtherRow - * @property {google.analytics.data.v1alpha.ResponseMetaData.ISchemaRestrictionResponse|null} [schemaRestrictionResponse] ResponseMetaData schemaRestrictionResponse - * @property {string|null} [currencyCode] ResponseMetaData currencyCode - * @property {string|null} [timeZone] ResponseMetaData timeZone - * @property {string|null} [emptyReason] ResponseMetaData emptyReason - * @property {boolean|null} [subjectToThresholding] ResponseMetaData subjectToThresholding - * @property {Array.|null} [samplingMetadatas] ResponseMetaData samplingMetadatas + * @interface IRow + * @property {Array.|null} [dimensionValues] Row dimensionValues + * @property {Array.|null} [metricValues] Row metricValues */ /** - * Constructs a new ResponseMetaData. + * Constructs a new Row. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a ResponseMetaData. - * @implements IResponseMetaData + * @classdesc Represents a Row. + * @implements IRow * @constructor - * @param {google.analytics.data.v1alpha.IResponseMetaData=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IRow=} [properties] Properties to set */ - function ResponseMetaData(properties) { - this.samplingMetadatas = []; + function Row(properties) { + this.dimensionValues = []; + this.metricValues = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -29230,197 +32400,97 @@ } /** - * ResponseMetaData dataLossFromOtherRow. - * @member {boolean} dataLossFromOtherRow - * @memberof google.analytics.data.v1alpha.ResponseMetaData - * @instance - */ - ResponseMetaData.prototype.dataLossFromOtherRow = false; - - /** - * ResponseMetaData schemaRestrictionResponse. - * @member {google.analytics.data.v1alpha.ResponseMetaData.ISchemaRestrictionResponse|null|undefined} schemaRestrictionResponse - * @memberof google.analytics.data.v1alpha.ResponseMetaData - * @instance - */ - ResponseMetaData.prototype.schemaRestrictionResponse = null; - - /** - * ResponseMetaData currencyCode. - * @member {string|null|undefined} currencyCode - * @memberof google.analytics.data.v1alpha.ResponseMetaData - * @instance - */ - ResponseMetaData.prototype.currencyCode = null; - - /** - * ResponseMetaData timeZone. - * @member {string|null|undefined} timeZone - * @memberof google.analytics.data.v1alpha.ResponseMetaData - * @instance - */ - ResponseMetaData.prototype.timeZone = null; - - /** - * ResponseMetaData emptyReason. - * @member {string|null|undefined} emptyReason - * @memberof google.analytics.data.v1alpha.ResponseMetaData - * @instance - */ - ResponseMetaData.prototype.emptyReason = null; - - /** - * ResponseMetaData subjectToThresholding. - * @member {boolean|null|undefined} subjectToThresholding - * @memberof google.analytics.data.v1alpha.ResponseMetaData + * Row dimensionValues. + * @member {Array.} dimensionValues + * @memberof google.analytics.data.v1alpha.Row * @instance */ - ResponseMetaData.prototype.subjectToThresholding = null; + Row.prototype.dimensionValues = $util.emptyArray; /** - * ResponseMetaData samplingMetadatas. - * @member {Array.} samplingMetadatas - * @memberof google.analytics.data.v1alpha.ResponseMetaData + * Row metricValues. + * @member {Array.} metricValues + * @memberof google.analytics.data.v1alpha.Row * @instance */ - ResponseMetaData.prototype.samplingMetadatas = $util.emptyArray; - - // OneOf field names bound to virtual getters and setters - var $oneOfFields; - - // Virtual OneOf for proto3 optional field - Object.defineProperty(ResponseMetaData.prototype, "_schemaRestrictionResponse", { - get: $util.oneOfGetter($oneOfFields = ["schemaRestrictionResponse"]), - set: $util.oneOfSetter($oneOfFields) - }); - - // Virtual OneOf for proto3 optional field - Object.defineProperty(ResponseMetaData.prototype, "_currencyCode", { - get: $util.oneOfGetter($oneOfFields = ["currencyCode"]), - set: $util.oneOfSetter($oneOfFields) - }); - - // Virtual OneOf for proto3 optional field - Object.defineProperty(ResponseMetaData.prototype, "_timeZone", { - get: $util.oneOfGetter($oneOfFields = ["timeZone"]), - set: $util.oneOfSetter($oneOfFields) - }); - - // Virtual OneOf for proto3 optional field - Object.defineProperty(ResponseMetaData.prototype, "_emptyReason", { - get: $util.oneOfGetter($oneOfFields = ["emptyReason"]), - set: $util.oneOfSetter($oneOfFields) - }); - - // Virtual OneOf for proto3 optional field - Object.defineProperty(ResponseMetaData.prototype, "_subjectToThresholding", { - get: $util.oneOfGetter($oneOfFields = ["subjectToThresholding"]), - set: $util.oneOfSetter($oneOfFields) - }); + Row.prototype.metricValues = $util.emptyArray; /** - * Creates a new ResponseMetaData instance using the specified properties. + * Creates a new Row instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.ResponseMetaData + * @memberof google.analytics.data.v1alpha.Row * @static - * @param {google.analytics.data.v1alpha.IResponseMetaData=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.ResponseMetaData} ResponseMetaData instance + * @param {google.analytics.data.v1alpha.IRow=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.Row} Row instance */ - ResponseMetaData.create = function create(properties) { - return new ResponseMetaData(properties); + Row.create = function create(properties) { + return new Row(properties); }; /** - * Encodes the specified ResponseMetaData message. Does not implicitly {@link google.analytics.data.v1alpha.ResponseMetaData.verify|verify} messages. + * Encodes the specified Row message. Does not implicitly {@link google.analytics.data.v1alpha.Row.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.ResponseMetaData + * @memberof google.analytics.data.v1alpha.Row * @static - * @param {google.analytics.data.v1alpha.IResponseMetaData} message ResponseMetaData message or plain object to encode + * @param {google.analytics.data.v1alpha.IRow} message Row message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ResponseMetaData.encode = function encode(message, writer) { + Row.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.dataLossFromOtherRow != null && Object.hasOwnProperty.call(message, "dataLossFromOtherRow")) - writer.uint32(/* id 3, wireType 0 =*/24).bool(message.dataLossFromOtherRow); - if (message.schemaRestrictionResponse != null && Object.hasOwnProperty.call(message, "schemaRestrictionResponse")) - $root.google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.encode(message.schemaRestrictionResponse, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); - if (message.currencyCode != null && Object.hasOwnProperty.call(message, "currencyCode")) - writer.uint32(/* id 5, wireType 2 =*/42).string(message.currencyCode); - if (message.timeZone != null && Object.hasOwnProperty.call(message, "timeZone")) - writer.uint32(/* id 6, wireType 2 =*/50).string(message.timeZone); - if (message.emptyReason != null && Object.hasOwnProperty.call(message, "emptyReason")) - writer.uint32(/* id 7, wireType 2 =*/58).string(message.emptyReason); - if (message.subjectToThresholding != null && Object.hasOwnProperty.call(message, "subjectToThresholding")) - writer.uint32(/* id 8, wireType 0 =*/64).bool(message.subjectToThresholding); - if (message.samplingMetadatas != null && message.samplingMetadatas.length) - for (var i = 0; i < message.samplingMetadatas.length; ++i) - $root.google.analytics.data.v1alpha.SamplingMetadata.encode(message.samplingMetadatas[i], writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim(); + if (message.dimensionValues != null && message.dimensionValues.length) + for (var i = 0; i < message.dimensionValues.length; ++i) + $root.google.analytics.data.v1alpha.DimensionValue.encode(message.dimensionValues[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.metricValues != null && message.metricValues.length) + for (var i = 0; i < message.metricValues.length; ++i) + $root.google.analytics.data.v1alpha.MetricValue.encode(message.metricValues[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); return writer; }; /** - * Encodes the specified ResponseMetaData message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.ResponseMetaData.verify|verify} messages. + * Encodes the specified Row message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.Row.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.ResponseMetaData + * @memberof google.analytics.data.v1alpha.Row * @static - * @param {google.analytics.data.v1alpha.IResponseMetaData} message ResponseMetaData message or plain object to encode + * @param {google.analytics.data.v1alpha.IRow} message Row message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ResponseMetaData.encodeDelimited = function encodeDelimited(message, writer) { + Row.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a ResponseMetaData message from the specified reader or buffer. + * Decodes a Row message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.ResponseMetaData + * @memberof google.analytics.data.v1alpha.Row * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.ResponseMetaData} ResponseMetaData + * @returns {google.analytics.data.v1alpha.Row} Row * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ResponseMetaData.decode = function decode(reader, length, error) { + Row.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.ResponseMetaData(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.Row(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { - case 3: { - message.dataLossFromOtherRow = reader.bool(); - break; - } - case 4: { - message.schemaRestrictionResponse = $root.google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.decode(reader, reader.uint32()); - break; - } - case 5: { - message.currencyCode = reader.string(); - break; - } - case 6: { - message.timeZone = reader.string(); - break; - } - case 7: { - message.emptyReason = reader.string(); - break; - } - case 8: { - message.subjectToThresholding = reader.bool(); + case 1: { + if (!(message.dimensionValues && message.dimensionValues.length)) + message.dimensionValues = []; + message.dimensionValues.push($root.google.analytics.data.v1alpha.DimensionValue.decode(reader, reader.uint32())); break; } - case 9: { - if (!(message.samplingMetadatas && message.samplingMetadatas.length)) - message.samplingMetadatas = []; - message.samplingMetadatas.push($root.google.analytics.data.v1alpha.SamplingMetadata.decode(reader, reader.uint32())); + case 2: { + if (!(message.metricValues && message.metricValues.length)) + message.metricValues = []; + message.metricValues.push($root.google.analytics.data.v1alpha.MetricValue.decode(reader, reader.uint32())); break; } default: @@ -29432,731 +32502,616 @@ }; /** - * Decodes a ResponseMetaData message from the specified reader or buffer, length delimited. + * Decodes a Row message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.ResponseMetaData + * @memberof google.analytics.data.v1alpha.Row * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.ResponseMetaData} ResponseMetaData + * @returns {google.analytics.data.v1alpha.Row} Row * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ResponseMetaData.decodeDelimited = function decodeDelimited(reader) { + Row.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a ResponseMetaData message. + * Verifies a Row message. * @function verify - * @memberof google.analytics.data.v1alpha.ResponseMetaData + * @memberof google.analytics.data.v1alpha.Row * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ResponseMetaData.verify = function verify(message) { + Row.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - var properties = {}; - if (message.dataLossFromOtherRow != null && message.hasOwnProperty("dataLossFromOtherRow")) - if (typeof message.dataLossFromOtherRow !== "boolean") - return "dataLossFromOtherRow: boolean expected"; - if (message.schemaRestrictionResponse != null && message.hasOwnProperty("schemaRestrictionResponse")) { - properties._schemaRestrictionResponse = 1; - { - var error = $root.google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.verify(message.schemaRestrictionResponse); + if (message.dimensionValues != null && message.hasOwnProperty("dimensionValues")) { + if (!Array.isArray(message.dimensionValues)) + return "dimensionValues: array expected"; + for (var i = 0; i < message.dimensionValues.length; ++i) { + var error = $root.google.analytics.data.v1alpha.DimensionValue.verify(message.dimensionValues[i]); if (error) - return "schemaRestrictionResponse." + error; + return "dimensionValues." + error; } } - if (message.currencyCode != null && message.hasOwnProperty("currencyCode")) { - properties._currencyCode = 1; - if (!$util.isString(message.currencyCode)) - return "currencyCode: string expected"; - } - if (message.timeZone != null && message.hasOwnProperty("timeZone")) { - properties._timeZone = 1; - if (!$util.isString(message.timeZone)) - return "timeZone: string expected"; - } - if (message.emptyReason != null && message.hasOwnProperty("emptyReason")) { - properties._emptyReason = 1; - if (!$util.isString(message.emptyReason)) - return "emptyReason: string expected"; - } - if (message.subjectToThresholding != null && message.hasOwnProperty("subjectToThresholding")) { - properties._subjectToThresholding = 1; - if (typeof message.subjectToThresholding !== "boolean") - return "subjectToThresholding: boolean expected"; - } - if (message.samplingMetadatas != null && message.hasOwnProperty("samplingMetadatas")) { - if (!Array.isArray(message.samplingMetadatas)) - return "samplingMetadatas: array expected"; - for (var i = 0; i < message.samplingMetadatas.length; ++i) { - var error = $root.google.analytics.data.v1alpha.SamplingMetadata.verify(message.samplingMetadatas[i]); + if (message.metricValues != null && message.hasOwnProperty("metricValues")) { + if (!Array.isArray(message.metricValues)) + return "metricValues: array expected"; + for (var i = 0; i < message.metricValues.length; ++i) { + var error = $root.google.analytics.data.v1alpha.MetricValue.verify(message.metricValues[i]); if (error) - return "samplingMetadatas." + error; + return "metricValues." + error; } } return null; }; /** - * Creates a ResponseMetaData message from a plain object. Also converts values to their respective internal types. + * Creates a Row message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.ResponseMetaData + * @memberof google.analytics.data.v1alpha.Row * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.ResponseMetaData} ResponseMetaData + * @returns {google.analytics.data.v1alpha.Row} Row */ - ResponseMetaData.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.ResponseMetaData) + Row.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.Row) return object; - var message = new $root.google.analytics.data.v1alpha.ResponseMetaData(); - if (object.dataLossFromOtherRow != null) - message.dataLossFromOtherRow = Boolean(object.dataLossFromOtherRow); - if (object.schemaRestrictionResponse != null) { - if (typeof object.schemaRestrictionResponse !== "object") - throw TypeError(".google.analytics.data.v1alpha.ResponseMetaData.schemaRestrictionResponse: object expected"); - message.schemaRestrictionResponse = $root.google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.fromObject(object.schemaRestrictionResponse); + var message = new $root.google.analytics.data.v1alpha.Row(); + if (object.dimensionValues) { + if (!Array.isArray(object.dimensionValues)) + throw TypeError(".google.analytics.data.v1alpha.Row.dimensionValues: array expected"); + message.dimensionValues = []; + for (var i = 0; i < object.dimensionValues.length; ++i) { + if (typeof object.dimensionValues[i] !== "object") + throw TypeError(".google.analytics.data.v1alpha.Row.dimensionValues: object expected"); + message.dimensionValues[i] = $root.google.analytics.data.v1alpha.DimensionValue.fromObject(object.dimensionValues[i]); + } } - if (object.currencyCode != null) - message.currencyCode = String(object.currencyCode); - if (object.timeZone != null) - message.timeZone = String(object.timeZone); - if (object.emptyReason != null) - message.emptyReason = String(object.emptyReason); - if (object.subjectToThresholding != null) - message.subjectToThresholding = Boolean(object.subjectToThresholding); - if (object.samplingMetadatas) { - if (!Array.isArray(object.samplingMetadatas)) - throw TypeError(".google.analytics.data.v1alpha.ResponseMetaData.samplingMetadatas: array expected"); - message.samplingMetadatas = []; - for (var i = 0; i < object.samplingMetadatas.length; ++i) { - if (typeof object.samplingMetadatas[i] !== "object") - throw TypeError(".google.analytics.data.v1alpha.ResponseMetaData.samplingMetadatas: object expected"); - message.samplingMetadatas[i] = $root.google.analytics.data.v1alpha.SamplingMetadata.fromObject(object.samplingMetadatas[i]); + if (object.metricValues) { + if (!Array.isArray(object.metricValues)) + throw TypeError(".google.analytics.data.v1alpha.Row.metricValues: array expected"); + message.metricValues = []; + for (var i = 0; i < object.metricValues.length; ++i) { + if (typeof object.metricValues[i] !== "object") + throw TypeError(".google.analytics.data.v1alpha.Row.metricValues: object expected"); + message.metricValues[i] = $root.google.analytics.data.v1alpha.MetricValue.fromObject(object.metricValues[i]); } } return message; }; /** - * Creates a plain object from a ResponseMetaData message. Also converts values to other types if specified. + * Creates a plain object from a Row message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.ResponseMetaData + * @memberof google.analytics.data.v1alpha.Row * @static - * @param {google.analytics.data.v1alpha.ResponseMetaData} message ResponseMetaData + * @param {google.analytics.data.v1alpha.Row} message Row * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - ResponseMetaData.toObject = function toObject(message, options) { + Row.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.arrays || options.defaults) - object.samplingMetadatas = []; - if (options.defaults) - object.dataLossFromOtherRow = false; - if (message.dataLossFromOtherRow != null && message.hasOwnProperty("dataLossFromOtherRow")) - object.dataLossFromOtherRow = message.dataLossFromOtherRow; - if (message.schemaRestrictionResponse != null && message.hasOwnProperty("schemaRestrictionResponse")) { - object.schemaRestrictionResponse = $root.google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.toObject(message.schemaRestrictionResponse, options); - if (options.oneofs) - object._schemaRestrictionResponse = "schemaRestrictionResponse"; - } - if (message.currencyCode != null && message.hasOwnProperty("currencyCode")) { - object.currencyCode = message.currencyCode; - if (options.oneofs) - object._currencyCode = "currencyCode"; - } - if (message.timeZone != null && message.hasOwnProperty("timeZone")) { - object.timeZone = message.timeZone; - if (options.oneofs) - object._timeZone = "timeZone"; - } - if (message.emptyReason != null && message.hasOwnProperty("emptyReason")) { - object.emptyReason = message.emptyReason; - if (options.oneofs) - object._emptyReason = "emptyReason"; + if (options.arrays || options.defaults) { + object.dimensionValues = []; + object.metricValues = []; } - if (message.subjectToThresholding != null && message.hasOwnProperty("subjectToThresholding")) { - object.subjectToThresholding = message.subjectToThresholding; - if (options.oneofs) - object._subjectToThresholding = "subjectToThresholding"; + if (message.dimensionValues && message.dimensionValues.length) { + object.dimensionValues = []; + for (var j = 0; j < message.dimensionValues.length; ++j) + object.dimensionValues[j] = $root.google.analytics.data.v1alpha.DimensionValue.toObject(message.dimensionValues[j], options); } - if (message.samplingMetadatas && message.samplingMetadatas.length) { - object.samplingMetadatas = []; - for (var j = 0; j < message.samplingMetadatas.length; ++j) - object.samplingMetadatas[j] = $root.google.analytics.data.v1alpha.SamplingMetadata.toObject(message.samplingMetadatas[j], options); + if (message.metricValues && message.metricValues.length) { + object.metricValues = []; + for (var j = 0; j < message.metricValues.length; ++j) + object.metricValues[j] = $root.google.analytics.data.v1alpha.MetricValue.toObject(message.metricValues[j], options); } return object; }; /** - * Converts this ResponseMetaData to JSON. + * Converts this Row to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.ResponseMetaData + * @memberof google.analytics.data.v1alpha.Row * @instance * @returns {Object.} JSON object */ - ResponseMetaData.prototype.toJSON = function toJSON() { + Row.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for ResponseMetaData + * Gets the default type url for Row * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.ResponseMetaData + * @memberof google.analytics.data.v1alpha.Row * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - ResponseMetaData.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + Row.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.analytics.data.v1alpha.ResponseMetaData"; + return typeUrlPrefix + "/google.analytics.data.v1alpha.Row"; }; - ResponseMetaData.SchemaRestrictionResponse = (function() { + return Row; + })(); - /** - * Properties of a SchemaRestrictionResponse. - * @memberof google.analytics.data.v1alpha.ResponseMetaData - * @interface ISchemaRestrictionResponse - * @property {Array.|null} [activeMetricRestrictions] SchemaRestrictionResponse activeMetricRestrictions - */ + v1alpha.DimensionValue = (function() { - /** - * Constructs a new SchemaRestrictionResponse. - * @memberof google.analytics.data.v1alpha.ResponseMetaData - * @classdesc Represents a SchemaRestrictionResponse. - * @implements ISchemaRestrictionResponse - * @constructor - * @param {google.analytics.data.v1alpha.ResponseMetaData.ISchemaRestrictionResponse=} [properties] Properties to set - */ - function SchemaRestrictionResponse(properties) { - this.activeMetricRestrictions = []; - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * Properties of a DimensionValue. + * @memberof google.analytics.data.v1alpha + * @interface IDimensionValue + * @property {string|null} [value] DimensionValue value + */ - /** - * SchemaRestrictionResponse activeMetricRestrictions. - * @member {Array.} activeMetricRestrictions - * @memberof google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse - * @instance - */ - SchemaRestrictionResponse.prototype.activeMetricRestrictions = $util.emptyArray; + /** + * Constructs a new DimensionValue. + * @memberof google.analytics.data.v1alpha + * @classdesc Represents a DimensionValue. + * @implements IDimensionValue + * @constructor + * @param {google.analytics.data.v1alpha.IDimensionValue=} [properties] Properties to set + */ + function DimensionValue(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * Creates a new SchemaRestrictionResponse instance using the specified properties. - * @function create - * @memberof google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse - * @static - * @param {google.analytics.data.v1alpha.ResponseMetaData.ISchemaRestrictionResponse=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse} SchemaRestrictionResponse instance - */ - SchemaRestrictionResponse.create = function create(properties) { - return new SchemaRestrictionResponse(properties); - }; + /** + * DimensionValue value. + * @member {string|null|undefined} value + * @memberof google.analytics.data.v1alpha.DimensionValue + * @instance + */ + DimensionValue.prototype.value = null; - /** - * Encodes the specified SchemaRestrictionResponse message. Does not implicitly {@link google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.verify|verify} messages. - * @function encode - * @memberof google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse - * @static - * @param {google.analytics.data.v1alpha.ResponseMetaData.ISchemaRestrictionResponse} message SchemaRestrictionResponse message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - SchemaRestrictionResponse.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.activeMetricRestrictions != null && message.activeMetricRestrictions.length) - for (var i = 0; i < message.activeMetricRestrictions.length; ++i) - $root.google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction.encode(message.activeMetricRestrictions[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - return writer; - }; + // OneOf field names bound to virtual getters and setters + var $oneOfFields; - /** - * Encodes the specified SchemaRestrictionResponse message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.verify|verify} messages. - * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse - * @static - * @param {google.analytics.data.v1alpha.ResponseMetaData.ISchemaRestrictionResponse} message SchemaRestrictionResponse message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - SchemaRestrictionResponse.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * DimensionValue oneValue. + * @member {"value"|undefined} oneValue + * @memberof google.analytics.data.v1alpha.DimensionValue + * @instance + */ + Object.defineProperty(DimensionValue.prototype, "oneValue", { + get: $util.oneOfGetter($oneOfFields = ["value"]), + set: $util.oneOfSetter($oneOfFields) + }); - /** - * Decodes a SchemaRestrictionResponse message from the specified reader or buffer. - * @function decode - * @memberof google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse} SchemaRestrictionResponse - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - SchemaRestrictionResponse.decode = function decode(reader, length, error) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse(); - while (reader.pos < end) { - var tag = reader.uint32(); - if (tag === error) - break; - switch (tag >>> 3) { - case 1: { - if (!(message.activeMetricRestrictions && message.activeMetricRestrictions.length)) - message.activeMetricRestrictions = []; - message.activeMetricRestrictions.push($root.google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction.decode(reader, reader.uint32())); - break; - } - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + /** + * Creates a new DimensionValue instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1alpha.DimensionValue + * @static + * @param {google.analytics.data.v1alpha.IDimensionValue=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.DimensionValue} DimensionValue instance + */ + DimensionValue.create = function create(properties) { + return new DimensionValue(properties); + }; - /** - * Decodes a SchemaRestrictionResponse message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse} SchemaRestrictionResponse - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - SchemaRestrictionResponse.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * Encodes the specified DimensionValue message. Does not implicitly {@link google.analytics.data.v1alpha.DimensionValue.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1alpha.DimensionValue + * @static + * @param {google.analytics.data.v1alpha.IDimensionValue} message DimensionValue message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DimensionValue.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.value != null && Object.hasOwnProperty.call(message, "value")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.value); + return writer; + }; - /** - * Verifies a SchemaRestrictionResponse message. - * @function verify - * @memberof google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - SchemaRestrictionResponse.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.activeMetricRestrictions != null && message.hasOwnProperty("activeMetricRestrictions")) { - if (!Array.isArray(message.activeMetricRestrictions)) - return "activeMetricRestrictions: array expected"; - for (var i = 0; i < message.activeMetricRestrictions.length; ++i) { - var error = $root.google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction.verify(message.activeMetricRestrictions[i]); - if (error) - return "activeMetricRestrictions." + error; - } - } - return null; - }; + /** + * Encodes the specified DimensionValue message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.DimensionValue.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1alpha.DimensionValue + * @static + * @param {google.analytics.data.v1alpha.IDimensionValue} message DimensionValue message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DimensionValue.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * Creates a SchemaRestrictionResponse message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse - * @static - * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse} SchemaRestrictionResponse - */ - SchemaRestrictionResponse.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse) - return object; - var message = new $root.google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse(); - if (object.activeMetricRestrictions) { - if (!Array.isArray(object.activeMetricRestrictions)) - throw TypeError(".google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.activeMetricRestrictions: array expected"); - message.activeMetricRestrictions = []; - for (var i = 0; i < object.activeMetricRestrictions.length; ++i) { - if (typeof object.activeMetricRestrictions[i] !== "object") - throw TypeError(".google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.activeMetricRestrictions: object expected"); - message.activeMetricRestrictions[i] = $root.google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction.fromObject(object.activeMetricRestrictions[i]); + /** + * Decodes a DimensionValue message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1alpha.DimensionValue + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1alpha.DimensionValue} DimensionValue + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DimensionValue.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.DimensionValue(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.value = reader.string(); + break; } + default: + reader.skipType(tag & 7); + break; } - return message; - }; + } + return message; + }; - /** - * Creates a plain object from a SchemaRestrictionResponse message. Also converts values to other types if specified. - * @function toObject - * @memberof google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse - * @static - * @param {google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse} message SchemaRestrictionResponse - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - SchemaRestrictionResponse.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.arrays || options.defaults) - object.activeMetricRestrictions = []; - if (message.activeMetricRestrictions && message.activeMetricRestrictions.length) { - object.activeMetricRestrictions = []; - for (var j = 0; j < message.activeMetricRestrictions.length; ++j) - object.activeMetricRestrictions[j] = $root.google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction.toObject(message.activeMetricRestrictions[j], options); - } - return object; - }; + /** + * Decodes a DimensionValue message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1alpha.DimensionValue + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1alpha.DimensionValue} DimensionValue + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DimensionValue.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Converts this SchemaRestrictionResponse to JSON. - * @function toJSON - * @memberof google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse - * @instance - * @returns {Object.} JSON object - */ - SchemaRestrictionResponse.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Verifies a DimensionValue message. + * @function verify + * @memberof google.analytics.data.v1alpha.DimensionValue + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + DimensionValue.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.value != null && message.hasOwnProperty("value")) { + properties.oneValue = 1; + if (!$util.isString(message.value)) + return "value: string expected"; + } + return null; + }; - /** - * Gets the default type url for SchemaRestrictionResponse - * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse - * @static - * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns {string} The default type url - */ - SchemaRestrictionResponse.getTypeUrl = function getTypeUrl(typeUrlPrefix) { - if (typeUrlPrefix === undefined) { - typeUrlPrefix = "type.googleapis.com"; - } - return typeUrlPrefix + "/google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse"; - }; + /** + * Creates a DimensionValue message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1alpha.DimensionValue + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1alpha.DimensionValue} DimensionValue + */ + DimensionValue.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.DimensionValue) + return object; + var message = new $root.google.analytics.data.v1alpha.DimensionValue(); + if (object.value != null) + message.value = String(object.value); + return message; + }; - SchemaRestrictionResponse.ActiveMetricRestriction = (function() { + /** + * Creates a plain object from a DimensionValue message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1alpha.DimensionValue + * @static + * @param {google.analytics.data.v1alpha.DimensionValue} message DimensionValue + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + DimensionValue.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.value != null && message.hasOwnProperty("value")) { + object.value = message.value; + if (options.oneofs) + object.oneValue = "value"; + } + return object; + }; - /** - * Properties of an ActiveMetricRestriction. - * @memberof google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse - * @interface IActiveMetricRestriction - * @property {string|null} [metricName] ActiveMetricRestriction metricName - * @property {Array.|null} [restrictedMetricTypes] ActiveMetricRestriction restrictedMetricTypes - */ + /** + * Converts this DimensionValue to JSON. + * @function toJSON + * @memberof google.analytics.data.v1alpha.DimensionValue + * @instance + * @returns {Object.} JSON object + */ + DimensionValue.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * Constructs a new ActiveMetricRestriction. - * @memberof google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse - * @classdesc Represents an ActiveMetricRestriction. - * @implements IActiveMetricRestriction - * @constructor - * @param {google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.IActiveMetricRestriction=} [properties] Properties to set - */ - function ActiveMetricRestriction(properties) { - this.restrictedMetricTypes = []; - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * Gets the default type url for DimensionValue + * @function getTypeUrl + * @memberof google.analytics.data.v1alpha.DimensionValue + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + DimensionValue.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.analytics.data.v1alpha.DimensionValue"; + }; - /** - * ActiveMetricRestriction metricName. - * @member {string|null|undefined} metricName - * @memberof google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction - * @instance - */ - ActiveMetricRestriction.prototype.metricName = null; + return DimensionValue; + })(); - /** - * ActiveMetricRestriction restrictedMetricTypes. - * @member {Array.} restrictedMetricTypes - * @memberof google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction - * @instance - */ - ActiveMetricRestriction.prototype.restrictedMetricTypes = $util.emptyArray; + v1alpha.MetricValue = (function() { - // OneOf field names bound to virtual getters and setters - var $oneOfFields; + /** + * Properties of a MetricValue. + * @memberof google.analytics.data.v1alpha + * @interface IMetricValue + * @property {string|null} [value] MetricValue value + */ - // Virtual OneOf for proto3 optional field - Object.defineProperty(ActiveMetricRestriction.prototype, "_metricName", { - get: $util.oneOfGetter($oneOfFields = ["metricName"]), - set: $util.oneOfSetter($oneOfFields) - }); + /** + * Constructs a new MetricValue. + * @memberof google.analytics.data.v1alpha + * @classdesc Represents a MetricValue. + * @implements IMetricValue + * @constructor + * @param {google.analytics.data.v1alpha.IMetricValue=} [properties] Properties to set + */ + function MetricValue(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * Creates a new ActiveMetricRestriction instance using the specified properties. - * @function create - * @memberof google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction - * @static - * @param {google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.IActiveMetricRestriction=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction} ActiveMetricRestriction instance - */ - ActiveMetricRestriction.create = function create(properties) { - return new ActiveMetricRestriction(properties); - }; + /** + * MetricValue value. + * @member {string|null|undefined} value + * @memberof google.analytics.data.v1alpha.MetricValue + * @instance + */ + MetricValue.prototype.value = null; - /** - * Encodes the specified ActiveMetricRestriction message. Does not implicitly {@link google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction.verify|verify} messages. - * @function encode - * @memberof google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction - * @static - * @param {google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.IActiveMetricRestriction} message ActiveMetricRestriction message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - ActiveMetricRestriction.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.metricName != null && Object.hasOwnProperty.call(message, "metricName")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.metricName); - if (message.restrictedMetricTypes != null && message.restrictedMetricTypes.length) { - writer.uint32(/* id 2, wireType 2 =*/18).fork(); - for (var i = 0; i < message.restrictedMetricTypes.length; ++i) - writer.int32(message.restrictedMetricTypes[i]); - writer.ldelim(); - } - return writer; - }; + // OneOf field names bound to virtual getters and setters + var $oneOfFields; - /** - * Encodes the specified ActiveMetricRestriction message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction.verify|verify} messages. - * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction - * @static - * @param {google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.IActiveMetricRestriction} message ActiveMetricRestriction message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - ActiveMetricRestriction.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * MetricValue oneValue. + * @member {"value"|undefined} oneValue + * @memberof google.analytics.data.v1alpha.MetricValue + * @instance + */ + Object.defineProperty(MetricValue.prototype, "oneValue", { + get: $util.oneOfGetter($oneOfFields = ["value"]), + set: $util.oneOfSetter($oneOfFields) + }); - /** - * Decodes an ActiveMetricRestriction message from the specified reader or buffer. - * @function decode - * @memberof google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction} ActiveMetricRestriction - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - ActiveMetricRestriction.decode = function decode(reader, length, error) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction(); - while (reader.pos < end) { - var tag = reader.uint32(); - if (tag === error) - break; - switch (tag >>> 3) { - case 1: { - message.metricName = reader.string(); - break; - } - case 2: { - if (!(message.restrictedMetricTypes && message.restrictedMetricTypes.length)) - message.restrictedMetricTypes = []; - if ((tag & 7) === 2) { - var end2 = reader.uint32() + reader.pos; - while (reader.pos < end2) - message.restrictedMetricTypes.push(reader.int32()); - } else - message.restrictedMetricTypes.push(reader.int32()); - break; - } - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + /** + * Creates a new MetricValue instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1alpha.MetricValue + * @static + * @param {google.analytics.data.v1alpha.IMetricValue=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.MetricValue} MetricValue instance + */ + MetricValue.create = function create(properties) { + return new MetricValue(properties); + }; - /** - * Decodes an ActiveMetricRestriction message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction} ActiveMetricRestriction - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - ActiveMetricRestriction.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * Encodes the specified MetricValue message. Does not implicitly {@link google.analytics.data.v1alpha.MetricValue.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1alpha.MetricValue + * @static + * @param {google.analytics.data.v1alpha.IMetricValue} message MetricValue message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + MetricValue.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.value != null && Object.hasOwnProperty.call(message, "value")) + writer.uint32(/* id 4, wireType 2 =*/34).string(message.value); + return writer; + }; - /** - * Verifies an ActiveMetricRestriction message. - * @function verify - * @memberof google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - ActiveMetricRestriction.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - var properties = {}; - if (message.metricName != null && message.hasOwnProperty("metricName")) { - properties._metricName = 1; - if (!$util.isString(message.metricName)) - return "metricName: string expected"; - } - if (message.restrictedMetricTypes != null && message.hasOwnProperty("restrictedMetricTypes")) { - if (!Array.isArray(message.restrictedMetricTypes)) - return "restrictedMetricTypes: array expected"; - for (var i = 0; i < message.restrictedMetricTypes.length; ++i) - switch (message.restrictedMetricTypes[i]) { - default: - return "restrictedMetricTypes: enum value[] expected"; - case 0: - case 1: - case 2: - break; - } - } - return null; - }; + /** + * Encodes the specified MetricValue message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.MetricValue.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1alpha.MetricValue + * @static + * @param {google.analytics.data.v1alpha.IMetricValue} message MetricValue message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + MetricValue.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * Creates an ActiveMetricRestriction message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction - * @static - * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction} ActiveMetricRestriction - */ - ActiveMetricRestriction.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction) - return object; - var message = new $root.google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction(); - if (object.metricName != null) - message.metricName = String(object.metricName); - if (object.restrictedMetricTypes) { - if (!Array.isArray(object.restrictedMetricTypes)) - throw TypeError(".google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction.restrictedMetricTypes: array expected"); - message.restrictedMetricTypes = []; - for (var i = 0; i < object.restrictedMetricTypes.length; ++i) - switch (object.restrictedMetricTypes[i]) { - default: - if (typeof object.restrictedMetricTypes[i] === "number") { - message.restrictedMetricTypes[i] = object.restrictedMetricTypes[i]; - break; - } - case "RESTRICTED_METRIC_TYPE_UNSPECIFIED": - case 0: - message.restrictedMetricTypes[i] = 0; - break; - case "COST_DATA": - case 1: - message.restrictedMetricTypes[i] = 1; - break; - case "REVENUE_DATA": - case 2: - message.restrictedMetricTypes[i] = 2; - break; - } + /** + * Decodes a MetricValue message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1alpha.MetricValue + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1alpha.MetricValue} MetricValue + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + MetricValue.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.MetricValue(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 4: { + message.value = reader.string(); + break; } - return message; - }; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; - /** - * Creates a plain object from an ActiveMetricRestriction message. Also converts values to other types if specified. - * @function toObject - * @memberof google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction - * @static - * @param {google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction} message ActiveMetricRestriction - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - ActiveMetricRestriction.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.arrays || options.defaults) - object.restrictedMetricTypes = []; - if (message.metricName != null && message.hasOwnProperty("metricName")) { - object.metricName = message.metricName; - if (options.oneofs) - object._metricName = "metricName"; - } - if (message.restrictedMetricTypes && message.restrictedMetricTypes.length) { - object.restrictedMetricTypes = []; - for (var j = 0; j < message.restrictedMetricTypes.length; ++j) - object.restrictedMetricTypes[j] = options.enums === String ? $root.google.analytics.data.v1alpha.RestrictedMetricType[message.restrictedMetricTypes[j]] === undefined ? message.restrictedMetricTypes[j] : $root.google.analytics.data.v1alpha.RestrictedMetricType[message.restrictedMetricTypes[j]] : message.restrictedMetricTypes[j]; - } - return object; - }; + /** + * Decodes a MetricValue message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1alpha.MetricValue + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1alpha.MetricValue} MetricValue + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + MetricValue.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Converts this ActiveMetricRestriction to JSON. - * @function toJSON - * @memberof google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction - * @instance - * @returns {Object.} JSON object - */ - ActiveMetricRestriction.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Verifies a MetricValue message. + * @function verify + * @memberof google.analytics.data.v1alpha.MetricValue + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + MetricValue.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.value != null && message.hasOwnProperty("value")) { + properties.oneValue = 1; + if (!$util.isString(message.value)) + return "value: string expected"; + } + return null; + }; - /** - * Gets the default type url for ActiveMetricRestriction - * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction - * @static - * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns {string} The default type url - */ - ActiveMetricRestriction.getTypeUrl = function getTypeUrl(typeUrlPrefix) { - if (typeUrlPrefix === undefined) { - typeUrlPrefix = "type.googleapis.com"; - } - return typeUrlPrefix + "/google.analytics.data.v1alpha.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction"; - }; + /** + * Creates a MetricValue message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1alpha.MetricValue + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1alpha.MetricValue} MetricValue + */ + MetricValue.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.MetricValue) + return object; + var message = new $root.google.analytics.data.v1alpha.MetricValue(); + if (object.value != null) + message.value = String(object.value); + return message; + }; - return ActiveMetricRestriction; - })(); + /** + * Creates a plain object from a MetricValue message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1alpha.MetricValue + * @static + * @param {google.analytics.data.v1alpha.MetricValue} message MetricValue + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + MetricValue.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.value != null && message.hasOwnProperty("value")) { + object.value = message.value; + if (options.oneofs) + object.oneValue = "value"; + } + return object; + }; - return SchemaRestrictionResponse; - })(); + /** + * Converts this MetricValue to JSON. + * @function toJSON + * @memberof google.analytics.data.v1alpha.MetricValue + * @instance + * @returns {Object.} JSON object + */ + MetricValue.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - return ResponseMetaData; + /** + * Gets the default type url for MetricValue + * @function getTypeUrl + * @memberof google.analytics.data.v1alpha.MetricValue + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + MetricValue.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.analytics.data.v1alpha.MetricValue"; + }; + + return MetricValue; })(); - v1alpha.DimensionHeader = (function() { + v1alpha.PropertyQuota = (function() { /** - * Properties of a DimensionHeader. + * Properties of a PropertyQuota. * @memberof google.analytics.data.v1alpha - * @interface IDimensionHeader - * @property {string|null} [name] DimensionHeader name + * @interface IPropertyQuota + * @property {google.analytics.data.v1alpha.IQuotaStatus|null} [tokensPerDay] PropertyQuota tokensPerDay + * @property {google.analytics.data.v1alpha.IQuotaStatus|null} [tokensPerHour] PropertyQuota tokensPerHour + * @property {google.analytics.data.v1alpha.IQuotaStatus|null} [concurrentRequests] PropertyQuota concurrentRequests + * @property {google.analytics.data.v1alpha.IQuotaStatus|null} [serverErrorsPerProjectPerHour] PropertyQuota serverErrorsPerProjectPerHour + * @property {google.analytics.data.v1alpha.IQuotaStatus|null} [potentiallyThresholdedRequestsPerHour] PropertyQuota potentiallyThresholdedRequestsPerHour + * @property {google.analytics.data.v1alpha.IQuotaStatus|null} [tokensPerProjectPerHour] PropertyQuota tokensPerProjectPerHour */ /** - * Constructs a new DimensionHeader. + * Constructs a new PropertyQuota. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a DimensionHeader. - * @implements IDimensionHeader + * @classdesc Represents a PropertyQuota. + * @implements IPropertyQuota * @constructor - * @param {google.analytics.data.v1alpha.IDimensionHeader=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IPropertyQuota=} [properties] Properties to set */ - function DimensionHeader(properties) { + function PropertyQuota(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -30164,77 +33119,147 @@ } /** - * DimensionHeader name. - * @member {string} name - * @memberof google.analytics.data.v1alpha.DimensionHeader + * PropertyQuota tokensPerDay. + * @member {google.analytics.data.v1alpha.IQuotaStatus|null|undefined} tokensPerDay + * @memberof google.analytics.data.v1alpha.PropertyQuota * @instance */ - DimensionHeader.prototype.name = ""; + PropertyQuota.prototype.tokensPerDay = null; /** - * Creates a new DimensionHeader instance using the specified properties. + * PropertyQuota tokensPerHour. + * @member {google.analytics.data.v1alpha.IQuotaStatus|null|undefined} tokensPerHour + * @memberof google.analytics.data.v1alpha.PropertyQuota + * @instance + */ + PropertyQuota.prototype.tokensPerHour = null; + + /** + * PropertyQuota concurrentRequests. + * @member {google.analytics.data.v1alpha.IQuotaStatus|null|undefined} concurrentRequests + * @memberof google.analytics.data.v1alpha.PropertyQuota + * @instance + */ + PropertyQuota.prototype.concurrentRequests = null; + + /** + * PropertyQuota serverErrorsPerProjectPerHour. + * @member {google.analytics.data.v1alpha.IQuotaStatus|null|undefined} serverErrorsPerProjectPerHour + * @memberof google.analytics.data.v1alpha.PropertyQuota + * @instance + */ + PropertyQuota.prototype.serverErrorsPerProjectPerHour = null; + + /** + * PropertyQuota potentiallyThresholdedRequestsPerHour. + * @member {google.analytics.data.v1alpha.IQuotaStatus|null|undefined} potentiallyThresholdedRequestsPerHour + * @memberof google.analytics.data.v1alpha.PropertyQuota + * @instance + */ + PropertyQuota.prototype.potentiallyThresholdedRequestsPerHour = null; + + /** + * PropertyQuota tokensPerProjectPerHour. + * @member {google.analytics.data.v1alpha.IQuotaStatus|null|undefined} tokensPerProjectPerHour + * @memberof google.analytics.data.v1alpha.PropertyQuota + * @instance + */ + PropertyQuota.prototype.tokensPerProjectPerHour = null; + + /** + * Creates a new PropertyQuota instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.DimensionHeader + * @memberof google.analytics.data.v1alpha.PropertyQuota * @static - * @param {google.analytics.data.v1alpha.IDimensionHeader=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.DimensionHeader} DimensionHeader instance + * @param {google.analytics.data.v1alpha.IPropertyQuota=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.PropertyQuota} PropertyQuota instance */ - DimensionHeader.create = function create(properties) { - return new DimensionHeader(properties); + PropertyQuota.create = function create(properties) { + return new PropertyQuota(properties); }; /** - * Encodes the specified DimensionHeader message. Does not implicitly {@link google.analytics.data.v1alpha.DimensionHeader.verify|verify} messages. + * Encodes the specified PropertyQuota message. Does not implicitly {@link google.analytics.data.v1alpha.PropertyQuota.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.DimensionHeader + * @memberof google.analytics.data.v1alpha.PropertyQuota * @static - * @param {google.analytics.data.v1alpha.IDimensionHeader} message DimensionHeader message or plain object to encode + * @param {google.analytics.data.v1alpha.IPropertyQuota} message PropertyQuota message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - DimensionHeader.encode = function encode(message, writer) { + PropertyQuota.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.tokensPerDay != null && Object.hasOwnProperty.call(message, "tokensPerDay")) + $root.google.analytics.data.v1alpha.QuotaStatus.encode(message.tokensPerDay, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.tokensPerHour != null && Object.hasOwnProperty.call(message, "tokensPerHour")) + $root.google.analytics.data.v1alpha.QuotaStatus.encode(message.tokensPerHour, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.concurrentRequests != null && Object.hasOwnProperty.call(message, "concurrentRequests")) + $root.google.analytics.data.v1alpha.QuotaStatus.encode(message.concurrentRequests, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.serverErrorsPerProjectPerHour != null && Object.hasOwnProperty.call(message, "serverErrorsPerProjectPerHour")) + $root.google.analytics.data.v1alpha.QuotaStatus.encode(message.serverErrorsPerProjectPerHour, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.potentiallyThresholdedRequestsPerHour != null && Object.hasOwnProperty.call(message, "potentiallyThresholdedRequestsPerHour")) + $root.google.analytics.data.v1alpha.QuotaStatus.encode(message.potentiallyThresholdedRequestsPerHour, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + if (message.tokensPerProjectPerHour != null && Object.hasOwnProperty.call(message, "tokensPerProjectPerHour")) + $root.google.analytics.data.v1alpha.QuotaStatus.encode(message.tokensPerProjectPerHour, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); return writer; }; /** - * Encodes the specified DimensionHeader message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.DimensionHeader.verify|verify} messages. + * Encodes the specified PropertyQuota message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.PropertyQuota.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.DimensionHeader + * @memberof google.analytics.data.v1alpha.PropertyQuota * @static - * @param {google.analytics.data.v1alpha.IDimensionHeader} message DimensionHeader message or plain object to encode + * @param {google.analytics.data.v1alpha.IPropertyQuota} message PropertyQuota message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - DimensionHeader.encodeDelimited = function encodeDelimited(message, writer) { + PropertyQuota.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a DimensionHeader message from the specified reader or buffer. + * Decodes a PropertyQuota message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.DimensionHeader + * @memberof google.analytics.data.v1alpha.PropertyQuota * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.DimensionHeader} DimensionHeader + * @returns {google.analytics.data.v1alpha.PropertyQuota} PropertyQuota * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DimensionHeader.decode = function decode(reader, length, error) { + PropertyQuota.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.DimensionHeader(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.PropertyQuota(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { case 1: { - message.name = reader.string(); + message.tokensPerDay = $root.google.analytics.data.v1alpha.QuotaStatus.decode(reader, reader.uint32()); + break; + } + case 2: { + message.tokensPerHour = $root.google.analytics.data.v1alpha.QuotaStatus.decode(reader, reader.uint32()); + break; + } + case 3: { + message.concurrentRequests = $root.google.analytics.data.v1alpha.QuotaStatus.decode(reader, reader.uint32()); + break; + } + case 4: { + message.serverErrorsPerProjectPerHour = $root.google.analytics.data.v1alpha.QuotaStatus.decode(reader, reader.uint32()); + break; + } + case 5: { + message.potentiallyThresholdedRequestsPerHour = $root.google.analytics.data.v1alpha.QuotaStatus.decode(reader, reader.uint32()); + break; + } + case 6: { + message.tokensPerProjectPerHour = $root.google.analytics.data.v1alpha.QuotaStatus.decode(reader, reader.uint32()); break; } default: @@ -30246,123 +33271,194 @@ }; /** - * Decodes a DimensionHeader message from the specified reader or buffer, length delimited. + * Decodes a PropertyQuota message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.DimensionHeader + * @memberof google.analytics.data.v1alpha.PropertyQuota * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.DimensionHeader} DimensionHeader + * @returns {google.analytics.data.v1alpha.PropertyQuota} PropertyQuota * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DimensionHeader.decodeDelimited = function decodeDelimited(reader) { + PropertyQuota.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a DimensionHeader message. + * Verifies a PropertyQuota message. * @function verify - * @memberof google.analytics.data.v1alpha.DimensionHeader + * @memberof google.analytics.data.v1alpha.PropertyQuota * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - DimensionHeader.verify = function verify(message) { + PropertyQuota.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.tokensPerDay != null && message.hasOwnProperty("tokensPerDay")) { + var error = $root.google.analytics.data.v1alpha.QuotaStatus.verify(message.tokensPerDay); + if (error) + return "tokensPerDay." + error; + } + if (message.tokensPerHour != null && message.hasOwnProperty("tokensPerHour")) { + var error = $root.google.analytics.data.v1alpha.QuotaStatus.verify(message.tokensPerHour); + if (error) + return "tokensPerHour." + error; + } + if (message.concurrentRequests != null && message.hasOwnProperty("concurrentRequests")) { + var error = $root.google.analytics.data.v1alpha.QuotaStatus.verify(message.concurrentRequests); + if (error) + return "concurrentRequests." + error; + } + if (message.serverErrorsPerProjectPerHour != null && message.hasOwnProperty("serverErrorsPerProjectPerHour")) { + var error = $root.google.analytics.data.v1alpha.QuotaStatus.verify(message.serverErrorsPerProjectPerHour); + if (error) + return "serverErrorsPerProjectPerHour." + error; + } + if (message.potentiallyThresholdedRequestsPerHour != null && message.hasOwnProperty("potentiallyThresholdedRequestsPerHour")) { + var error = $root.google.analytics.data.v1alpha.QuotaStatus.verify(message.potentiallyThresholdedRequestsPerHour); + if (error) + return "potentiallyThresholdedRequestsPerHour." + error; + } + if (message.tokensPerProjectPerHour != null && message.hasOwnProperty("tokensPerProjectPerHour")) { + var error = $root.google.analytics.data.v1alpha.QuotaStatus.verify(message.tokensPerProjectPerHour); + if (error) + return "tokensPerProjectPerHour." + error; + } return null; }; /** - * Creates a DimensionHeader message from a plain object. Also converts values to their respective internal types. + * Creates a PropertyQuota message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.DimensionHeader + * @memberof google.analytics.data.v1alpha.PropertyQuota * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.DimensionHeader} DimensionHeader + * @returns {google.analytics.data.v1alpha.PropertyQuota} PropertyQuota */ - DimensionHeader.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.DimensionHeader) + PropertyQuota.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.PropertyQuota) return object; - var message = new $root.google.analytics.data.v1alpha.DimensionHeader(); - if (object.name != null) - message.name = String(object.name); + var message = new $root.google.analytics.data.v1alpha.PropertyQuota(); + if (object.tokensPerDay != null) { + if (typeof object.tokensPerDay !== "object") + throw TypeError(".google.analytics.data.v1alpha.PropertyQuota.tokensPerDay: object expected"); + message.tokensPerDay = $root.google.analytics.data.v1alpha.QuotaStatus.fromObject(object.tokensPerDay); + } + if (object.tokensPerHour != null) { + if (typeof object.tokensPerHour !== "object") + throw TypeError(".google.analytics.data.v1alpha.PropertyQuota.tokensPerHour: object expected"); + message.tokensPerHour = $root.google.analytics.data.v1alpha.QuotaStatus.fromObject(object.tokensPerHour); + } + if (object.concurrentRequests != null) { + if (typeof object.concurrentRequests !== "object") + throw TypeError(".google.analytics.data.v1alpha.PropertyQuota.concurrentRequests: object expected"); + message.concurrentRequests = $root.google.analytics.data.v1alpha.QuotaStatus.fromObject(object.concurrentRequests); + } + if (object.serverErrorsPerProjectPerHour != null) { + if (typeof object.serverErrorsPerProjectPerHour !== "object") + throw TypeError(".google.analytics.data.v1alpha.PropertyQuota.serverErrorsPerProjectPerHour: object expected"); + message.serverErrorsPerProjectPerHour = $root.google.analytics.data.v1alpha.QuotaStatus.fromObject(object.serverErrorsPerProjectPerHour); + } + if (object.potentiallyThresholdedRequestsPerHour != null) { + if (typeof object.potentiallyThresholdedRequestsPerHour !== "object") + throw TypeError(".google.analytics.data.v1alpha.PropertyQuota.potentiallyThresholdedRequestsPerHour: object expected"); + message.potentiallyThresholdedRequestsPerHour = $root.google.analytics.data.v1alpha.QuotaStatus.fromObject(object.potentiallyThresholdedRequestsPerHour); + } + if (object.tokensPerProjectPerHour != null) { + if (typeof object.tokensPerProjectPerHour !== "object") + throw TypeError(".google.analytics.data.v1alpha.PropertyQuota.tokensPerProjectPerHour: object expected"); + message.tokensPerProjectPerHour = $root.google.analytics.data.v1alpha.QuotaStatus.fromObject(object.tokensPerProjectPerHour); + } return message; }; /** - * Creates a plain object from a DimensionHeader message. Also converts values to other types if specified. + * Creates a plain object from a PropertyQuota message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.DimensionHeader + * @memberof google.analytics.data.v1alpha.PropertyQuota * @static - * @param {google.analytics.data.v1alpha.DimensionHeader} message DimensionHeader + * @param {google.analytics.data.v1alpha.PropertyQuota} message PropertyQuota * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - DimensionHeader.toObject = function toObject(message, options) { + PropertyQuota.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; + if (options.defaults) { + object.tokensPerDay = null; + object.tokensPerHour = null; + object.concurrentRequests = null; + object.serverErrorsPerProjectPerHour = null; + object.potentiallyThresholdedRequestsPerHour = null; + object.tokensPerProjectPerHour = null; + } + if (message.tokensPerDay != null && message.hasOwnProperty("tokensPerDay")) + object.tokensPerDay = $root.google.analytics.data.v1alpha.QuotaStatus.toObject(message.tokensPerDay, options); + if (message.tokensPerHour != null && message.hasOwnProperty("tokensPerHour")) + object.tokensPerHour = $root.google.analytics.data.v1alpha.QuotaStatus.toObject(message.tokensPerHour, options); + if (message.concurrentRequests != null && message.hasOwnProperty("concurrentRequests")) + object.concurrentRequests = $root.google.analytics.data.v1alpha.QuotaStatus.toObject(message.concurrentRequests, options); + if (message.serverErrorsPerProjectPerHour != null && message.hasOwnProperty("serverErrorsPerProjectPerHour")) + object.serverErrorsPerProjectPerHour = $root.google.analytics.data.v1alpha.QuotaStatus.toObject(message.serverErrorsPerProjectPerHour, options); + if (message.potentiallyThresholdedRequestsPerHour != null && message.hasOwnProperty("potentiallyThresholdedRequestsPerHour")) + object.potentiallyThresholdedRequestsPerHour = $root.google.analytics.data.v1alpha.QuotaStatus.toObject(message.potentiallyThresholdedRequestsPerHour, options); + if (message.tokensPerProjectPerHour != null && message.hasOwnProperty("tokensPerProjectPerHour")) + object.tokensPerProjectPerHour = $root.google.analytics.data.v1alpha.QuotaStatus.toObject(message.tokensPerProjectPerHour, options); return object; }; /** - * Converts this DimensionHeader to JSON. + * Converts this PropertyQuota to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.DimensionHeader + * @memberof google.analytics.data.v1alpha.PropertyQuota * @instance * @returns {Object.} JSON object */ - DimensionHeader.prototype.toJSON = function toJSON() { + PropertyQuota.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for DimensionHeader + * Gets the default type url for PropertyQuota * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.DimensionHeader + * @memberof google.analytics.data.v1alpha.PropertyQuota * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - DimensionHeader.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + PropertyQuota.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.analytics.data.v1alpha.DimensionHeader"; + return typeUrlPrefix + "/google.analytics.data.v1alpha.PropertyQuota"; }; - return DimensionHeader; + return PropertyQuota; })(); - v1alpha.MetricHeader = (function() { + v1alpha.QuotaStatus = (function() { /** - * Properties of a MetricHeader. + * Properties of a QuotaStatus. * @memberof google.analytics.data.v1alpha - * @interface IMetricHeader - * @property {string|null} [name] MetricHeader name - * @property {google.analytics.data.v1alpha.MetricType|null} [type] MetricHeader type + * @interface IQuotaStatus + * @property {number|null} [consumed] QuotaStatus consumed + * @property {number|null} [remaining] QuotaStatus remaining */ /** - * Constructs a new MetricHeader. + * Constructs a new QuotaStatus. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a MetricHeader. - * @implements IMetricHeader + * @classdesc Represents a QuotaStatus. + * @implements IQuotaStatus * @constructor - * @param {google.analytics.data.v1alpha.IMetricHeader=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IQuotaStatus=} [properties] Properties to set */ - function MetricHeader(properties) { + function QuotaStatus(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -30370,91 +33466,91 @@ } /** - * MetricHeader name. - * @member {string} name - * @memberof google.analytics.data.v1alpha.MetricHeader + * QuotaStatus consumed. + * @member {number} consumed + * @memberof google.analytics.data.v1alpha.QuotaStatus * @instance */ - MetricHeader.prototype.name = ""; + QuotaStatus.prototype.consumed = 0; /** - * MetricHeader type. - * @member {google.analytics.data.v1alpha.MetricType} type - * @memberof google.analytics.data.v1alpha.MetricHeader + * QuotaStatus remaining. + * @member {number} remaining + * @memberof google.analytics.data.v1alpha.QuotaStatus * @instance */ - MetricHeader.prototype.type = 0; + QuotaStatus.prototype.remaining = 0; /** - * Creates a new MetricHeader instance using the specified properties. + * Creates a new QuotaStatus instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.MetricHeader + * @memberof google.analytics.data.v1alpha.QuotaStatus * @static - * @param {google.analytics.data.v1alpha.IMetricHeader=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.MetricHeader} MetricHeader instance + * @param {google.analytics.data.v1alpha.IQuotaStatus=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.QuotaStatus} QuotaStatus instance */ - MetricHeader.create = function create(properties) { - return new MetricHeader(properties); + QuotaStatus.create = function create(properties) { + return new QuotaStatus(properties); }; /** - * Encodes the specified MetricHeader message. Does not implicitly {@link google.analytics.data.v1alpha.MetricHeader.verify|verify} messages. + * Encodes the specified QuotaStatus message. Does not implicitly {@link google.analytics.data.v1alpha.QuotaStatus.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.MetricHeader + * @memberof google.analytics.data.v1alpha.QuotaStatus * @static - * @param {google.analytics.data.v1alpha.IMetricHeader} message MetricHeader message or plain object to encode + * @param {google.analytics.data.v1alpha.IQuotaStatus} message QuotaStatus message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - MetricHeader.encode = function encode(message, writer) { + QuotaStatus.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.name != null && Object.hasOwnProperty.call(message, "name")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); - if (message.type != null && Object.hasOwnProperty.call(message, "type")) - writer.uint32(/* id 2, wireType 0 =*/16).int32(message.type); + if (message.consumed != null && Object.hasOwnProperty.call(message, "consumed")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.consumed); + if (message.remaining != null && Object.hasOwnProperty.call(message, "remaining")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.remaining); return writer; }; /** - * Encodes the specified MetricHeader message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.MetricHeader.verify|verify} messages. + * Encodes the specified QuotaStatus message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.QuotaStatus.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.MetricHeader + * @memberof google.analytics.data.v1alpha.QuotaStatus * @static - * @param {google.analytics.data.v1alpha.IMetricHeader} message MetricHeader message or plain object to encode + * @param {google.analytics.data.v1alpha.IQuotaStatus} message QuotaStatus message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - MetricHeader.encodeDelimited = function encodeDelimited(message, writer) { + QuotaStatus.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a MetricHeader message from the specified reader or buffer. + * Decodes a QuotaStatus message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.MetricHeader + * @memberof google.analytics.data.v1alpha.QuotaStatus * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.MetricHeader} MetricHeader + * @returns {google.analytics.data.v1alpha.QuotaStatus} QuotaStatus * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - MetricHeader.decode = function decode(reader, length, error) { + QuotaStatus.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.MetricHeader(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.QuotaStatus(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { case 1: { - message.name = reader.string(); + message.consumed = reader.int32(); break; } case 2: { - message.type = reader.int32(); + message.remaining = reader.int32(); break; } default: @@ -30466,208 +33562,132 @@ }; /** - * Decodes a MetricHeader message from the specified reader or buffer, length delimited. + * Decodes a QuotaStatus message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.MetricHeader + * @memberof google.analytics.data.v1alpha.QuotaStatus * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.MetricHeader} MetricHeader + * @returns {google.analytics.data.v1alpha.QuotaStatus} QuotaStatus * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - MetricHeader.decodeDelimited = function decodeDelimited(reader) { + QuotaStatus.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a MetricHeader message. + * Verifies a QuotaStatus message. * @function verify - * @memberof google.analytics.data.v1alpha.MetricHeader + * @memberof google.analytics.data.v1alpha.QuotaStatus * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - MetricHeader.verify = function verify(message) { + QuotaStatus.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.name != null && message.hasOwnProperty("name")) - if (!$util.isString(message.name)) - return "name: string expected"; - if (message.type != null && message.hasOwnProperty("type")) - switch (message.type) { - default: - return "type: enum value expected"; - case 0: - case 1: - case 2: - case 4: - case 5: - case 6: - case 7: - case 8: - case 9: - case 10: - case 11: - case 12: - case 13: - break; - } + if (message.consumed != null && message.hasOwnProperty("consumed")) + if (!$util.isInteger(message.consumed)) + return "consumed: integer expected"; + if (message.remaining != null && message.hasOwnProperty("remaining")) + if (!$util.isInteger(message.remaining)) + return "remaining: integer expected"; return null; }; /** - * Creates a MetricHeader message from a plain object. Also converts values to their respective internal types. + * Creates a QuotaStatus message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.MetricHeader + * @memberof google.analytics.data.v1alpha.QuotaStatus * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.MetricHeader} MetricHeader + * @returns {google.analytics.data.v1alpha.QuotaStatus} QuotaStatus */ - MetricHeader.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.MetricHeader) + QuotaStatus.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.QuotaStatus) return object; - var message = new $root.google.analytics.data.v1alpha.MetricHeader(); - if (object.name != null) - message.name = String(object.name); - switch (object.type) { - default: - if (typeof object.type === "number") { - message.type = object.type; - break; - } - break; - case "METRIC_TYPE_UNSPECIFIED": - case 0: - message.type = 0; - break; - case "TYPE_INTEGER": - case 1: - message.type = 1; - break; - case "TYPE_FLOAT": - case 2: - message.type = 2; - break; - case "TYPE_SECONDS": - case 4: - message.type = 4; - break; - case "TYPE_MILLISECONDS": - case 5: - message.type = 5; - break; - case "TYPE_MINUTES": - case 6: - message.type = 6; - break; - case "TYPE_HOURS": - case 7: - message.type = 7; - break; - case "TYPE_STANDARD": - case 8: - message.type = 8; - break; - case "TYPE_CURRENCY": - case 9: - message.type = 9; - break; - case "TYPE_FEET": - case 10: - message.type = 10; - break; - case "TYPE_MILES": - case 11: - message.type = 11; - break; - case "TYPE_METERS": - case 12: - message.type = 12; - break; - case "TYPE_KILOMETERS": - case 13: - message.type = 13; - break; - } + var message = new $root.google.analytics.data.v1alpha.QuotaStatus(); + if (object.consumed != null) + message.consumed = object.consumed | 0; + if (object.remaining != null) + message.remaining = object.remaining | 0; return message; }; /** - * Creates a plain object from a MetricHeader message. Also converts values to other types if specified. + * Creates a plain object from a QuotaStatus message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.MetricHeader + * @memberof google.analytics.data.v1alpha.QuotaStatus * @static - * @param {google.analytics.data.v1alpha.MetricHeader} message MetricHeader + * @param {google.analytics.data.v1alpha.QuotaStatus} message QuotaStatus * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - MetricHeader.toObject = function toObject(message, options) { + QuotaStatus.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; if (options.defaults) { - object.name = ""; - object.type = options.enums === String ? "METRIC_TYPE_UNSPECIFIED" : 0; + object.consumed = 0; + object.remaining = 0; } - if (message.name != null && message.hasOwnProperty("name")) - object.name = message.name; - if (message.type != null && message.hasOwnProperty("type")) - object.type = options.enums === String ? $root.google.analytics.data.v1alpha.MetricType[message.type] === undefined ? message.type : $root.google.analytics.data.v1alpha.MetricType[message.type] : message.type; + if (message.consumed != null && message.hasOwnProperty("consumed")) + object.consumed = message.consumed; + if (message.remaining != null && message.hasOwnProperty("remaining")) + object.remaining = message.remaining; return object; }; /** - * Converts this MetricHeader to JSON. + * Converts this QuotaStatus to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.MetricHeader + * @memberof google.analytics.data.v1alpha.QuotaStatus * @instance * @returns {Object.} JSON object */ - MetricHeader.prototype.toJSON = function toJSON() { + QuotaStatus.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for MetricHeader + * Gets the default type url for QuotaStatus * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.MetricHeader + * @memberof google.analytics.data.v1alpha.QuotaStatus * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - MetricHeader.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + QuotaStatus.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.analytics.data.v1alpha.MetricHeader"; + return typeUrlPrefix + "/google.analytics.data.v1alpha.QuotaStatus"; }; - return MetricHeader; + return QuotaStatus; })(); - v1alpha.Row = (function() { + v1alpha.FunnelBreakdown = (function() { /** - * Properties of a Row. + * Properties of a FunnelBreakdown. * @memberof google.analytics.data.v1alpha - * @interface IRow - * @property {Array.|null} [dimensionValues] Row dimensionValues - * @property {Array.|null} [metricValues] Row metricValues + * @interface IFunnelBreakdown + * @property {google.analytics.data.v1alpha.IDimension|null} [breakdownDimension] FunnelBreakdown breakdownDimension + * @property {number|Long|null} [limit] FunnelBreakdown limit */ /** - * Constructs a new Row. + * Constructs a new FunnelBreakdown. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a Row. - * @implements IRow + * @classdesc Represents a FunnelBreakdown. + * @implements IFunnelBreakdown * @constructor - * @param {google.analytics.data.v1alpha.IRow=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IFunnelBreakdown=} [properties] Properties to set */ - function Row(properties) { - this.dimensionValues = []; - this.metricValues = []; + function FunnelBreakdown(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -30675,97 +33695,100 @@ } /** - * Row dimensionValues. - * @member {Array.} dimensionValues - * @memberof google.analytics.data.v1alpha.Row + * FunnelBreakdown breakdownDimension. + * @member {google.analytics.data.v1alpha.IDimension|null|undefined} breakdownDimension + * @memberof google.analytics.data.v1alpha.FunnelBreakdown * @instance */ - Row.prototype.dimensionValues = $util.emptyArray; + FunnelBreakdown.prototype.breakdownDimension = null; /** - * Row metricValues. - * @member {Array.} metricValues - * @memberof google.analytics.data.v1alpha.Row + * FunnelBreakdown limit. + * @member {number|Long|null|undefined} limit + * @memberof google.analytics.data.v1alpha.FunnelBreakdown * @instance */ - Row.prototype.metricValues = $util.emptyArray; + FunnelBreakdown.prototype.limit = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + // Virtual OneOf for proto3 optional field + Object.defineProperty(FunnelBreakdown.prototype, "_limit", { + get: $util.oneOfGetter($oneOfFields = ["limit"]), + set: $util.oneOfSetter($oneOfFields) + }); /** - * Creates a new Row instance using the specified properties. + * Creates a new FunnelBreakdown instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.Row + * @memberof google.analytics.data.v1alpha.FunnelBreakdown * @static - * @param {google.analytics.data.v1alpha.IRow=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.Row} Row instance + * @param {google.analytics.data.v1alpha.IFunnelBreakdown=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.FunnelBreakdown} FunnelBreakdown instance */ - Row.create = function create(properties) { - return new Row(properties); + FunnelBreakdown.create = function create(properties) { + return new FunnelBreakdown(properties); }; /** - * Encodes the specified Row message. Does not implicitly {@link google.analytics.data.v1alpha.Row.verify|verify} messages. + * Encodes the specified FunnelBreakdown message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelBreakdown.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.Row + * @memberof google.analytics.data.v1alpha.FunnelBreakdown * @static - * @param {google.analytics.data.v1alpha.IRow} message Row message or plain object to encode + * @param {google.analytics.data.v1alpha.IFunnelBreakdown} message FunnelBreakdown message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Row.encode = function encode(message, writer) { + FunnelBreakdown.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.dimensionValues != null && message.dimensionValues.length) - for (var i = 0; i < message.dimensionValues.length; ++i) - $root.google.analytics.data.v1alpha.DimensionValue.encode(message.dimensionValues[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.metricValues != null && message.metricValues.length) - for (var i = 0; i < message.metricValues.length; ++i) - $root.google.analytics.data.v1alpha.MetricValue.encode(message.metricValues[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.breakdownDimension != null && Object.hasOwnProperty.call(message, "breakdownDimension")) + $root.google.analytics.data.v1alpha.Dimension.encode(message.breakdownDimension, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.limit != null && Object.hasOwnProperty.call(message, "limit")) + writer.uint32(/* id 2, wireType 0 =*/16).int64(message.limit); return writer; }; /** - * Encodes the specified Row message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.Row.verify|verify} messages. + * Encodes the specified FunnelBreakdown message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelBreakdown.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.Row + * @memberof google.analytics.data.v1alpha.FunnelBreakdown * @static - * @param {google.analytics.data.v1alpha.IRow} message Row message or plain object to encode + * @param {google.analytics.data.v1alpha.IFunnelBreakdown} message FunnelBreakdown message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Row.encodeDelimited = function encodeDelimited(message, writer) { + FunnelBreakdown.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a Row message from the specified reader or buffer. + * Decodes a FunnelBreakdown message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.Row + * @memberof google.analytics.data.v1alpha.FunnelBreakdown * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.Row} Row + * @returns {google.analytics.data.v1alpha.FunnelBreakdown} FunnelBreakdown * @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, error) { + FunnelBreakdown.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.Row(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.FunnelBreakdown(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { case 1: { - if (!(message.dimensionValues && message.dimensionValues.length)) - message.dimensionValues = []; - message.dimensionValues.push($root.google.analytics.data.v1alpha.DimensionValue.decode(reader, reader.uint32())); + message.breakdownDimension = $root.google.analytics.data.v1alpha.Dimension.decode(reader, reader.uint32()); break; } case 2: { - if (!(message.metricValues && message.metricValues.length)) - message.metricValues = []; - message.metricValues.push($root.google.analytics.data.v1alpha.MetricValue.decode(reader, reader.uint32())); + message.limit = reader.int64(); break; } default: @@ -30777,165 +33800,151 @@ }; /** - * Decodes a Row message from the specified reader or buffer, length delimited. + * Decodes a FunnelBreakdown message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.Row + * @memberof google.analytics.data.v1alpha.FunnelBreakdown * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.Row} Row + * @returns {google.analytics.data.v1alpha.FunnelBreakdown} FunnelBreakdown * @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) { + FunnelBreakdown.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a Row message. + * Verifies a FunnelBreakdown message. * @function verify - * @memberof google.analytics.data.v1alpha.Row + * @memberof google.analytics.data.v1alpha.FunnelBreakdown * @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) { + FunnelBreakdown.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.dimensionValues != null && message.hasOwnProperty("dimensionValues")) { - if (!Array.isArray(message.dimensionValues)) - return "dimensionValues: array expected"; - for (var i = 0; i < message.dimensionValues.length; ++i) { - var error = $root.google.analytics.data.v1alpha.DimensionValue.verify(message.dimensionValues[i]); - if (error) - return "dimensionValues." + error; - } + var properties = {}; + if (message.breakdownDimension != null && message.hasOwnProperty("breakdownDimension")) { + var error = $root.google.analytics.data.v1alpha.Dimension.verify(message.breakdownDimension); + if (error) + return "breakdownDimension." + error; } - if (message.metricValues != null && message.hasOwnProperty("metricValues")) { - if (!Array.isArray(message.metricValues)) - return "metricValues: array expected"; - for (var i = 0; i < message.metricValues.length; ++i) { - var error = $root.google.analytics.data.v1alpha.MetricValue.verify(message.metricValues[i]); - if (error) - return "metricValues." + error; - } + if (message.limit != null && message.hasOwnProperty("limit")) { + properties._limit = 1; + if (!$util.isInteger(message.limit) && !(message.limit && $util.isInteger(message.limit.low) && $util.isInteger(message.limit.high))) + return "limit: integer|Long expected"; } return null; }; /** - * Creates a Row message from a plain object. Also converts values to their respective internal types. + * Creates a FunnelBreakdown message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.Row + * @memberof google.analytics.data.v1alpha.FunnelBreakdown * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.Row} Row + * @returns {google.analytics.data.v1alpha.FunnelBreakdown} FunnelBreakdown */ - Row.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.Row) + FunnelBreakdown.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.FunnelBreakdown) return object; - var message = new $root.google.analytics.data.v1alpha.Row(); - if (object.dimensionValues) { - if (!Array.isArray(object.dimensionValues)) - throw TypeError(".google.analytics.data.v1alpha.Row.dimensionValues: array expected"); - message.dimensionValues = []; - for (var i = 0; i < object.dimensionValues.length; ++i) { - if (typeof object.dimensionValues[i] !== "object") - throw TypeError(".google.analytics.data.v1alpha.Row.dimensionValues: object expected"); - message.dimensionValues[i] = $root.google.analytics.data.v1alpha.DimensionValue.fromObject(object.dimensionValues[i]); - } - } - if (object.metricValues) { - if (!Array.isArray(object.metricValues)) - throw TypeError(".google.analytics.data.v1alpha.Row.metricValues: array expected"); - message.metricValues = []; - for (var i = 0; i < object.metricValues.length; ++i) { - if (typeof object.metricValues[i] !== "object") - throw TypeError(".google.analytics.data.v1alpha.Row.metricValues: object expected"); - message.metricValues[i] = $root.google.analytics.data.v1alpha.MetricValue.fromObject(object.metricValues[i]); - } + var message = new $root.google.analytics.data.v1alpha.FunnelBreakdown(); + if (object.breakdownDimension != null) { + if (typeof object.breakdownDimension !== "object") + throw TypeError(".google.analytics.data.v1alpha.FunnelBreakdown.breakdownDimension: object expected"); + message.breakdownDimension = $root.google.analytics.data.v1alpha.Dimension.fromObject(object.breakdownDimension); } + if (object.limit != null) + if ($util.Long) + (message.limit = $util.Long.fromValue(object.limit)).unsigned = false; + else if (typeof object.limit === "string") + message.limit = parseInt(object.limit, 10); + else if (typeof object.limit === "number") + message.limit = object.limit; + else if (typeof object.limit === "object") + message.limit = new $util.LongBits(object.limit.low >>> 0, object.limit.high >>> 0).toNumber(); return message; }; /** - * Creates a plain object from a Row message. Also converts values to other types if specified. + * Creates a plain object from a FunnelBreakdown message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.Row + * @memberof google.analytics.data.v1alpha.FunnelBreakdown * @static - * @param {google.analytics.data.v1alpha.Row} message Row + * @param {google.analytics.data.v1alpha.FunnelBreakdown} message FunnelBreakdown * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - Row.toObject = function toObject(message, options) { + FunnelBreakdown.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.arrays || options.defaults) { - object.dimensionValues = []; - object.metricValues = []; - } - if (message.dimensionValues && message.dimensionValues.length) { - object.dimensionValues = []; - for (var j = 0; j < message.dimensionValues.length; ++j) - object.dimensionValues[j] = $root.google.analytics.data.v1alpha.DimensionValue.toObject(message.dimensionValues[j], options); - } - if (message.metricValues && message.metricValues.length) { - object.metricValues = []; - for (var j = 0; j < message.metricValues.length; ++j) - object.metricValues[j] = $root.google.analytics.data.v1alpha.MetricValue.toObject(message.metricValues[j], options); + if (options.defaults) + object.breakdownDimension = null; + if (message.breakdownDimension != null && message.hasOwnProperty("breakdownDimension")) + object.breakdownDimension = $root.google.analytics.data.v1alpha.Dimension.toObject(message.breakdownDimension, options); + if (message.limit != null && message.hasOwnProperty("limit")) { + if (typeof message.limit === "number") + object.limit = options.longs === String ? String(message.limit) : message.limit; + else + object.limit = options.longs === String ? $util.Long.prototype.toString.call(message.limit) : options.longs === Number ? new $util.LongBits(message.limit.low >>> 0, message.limit.high >>> 0).toNumber() : message.limit; + if (options.oneofs) + object._limit = "limit"; } return object; }; /** - * Converts this Row to JSON. + * Converts this FunnelBreakdown to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.Row + * @memberof google.analytics.data.v1alpha.FunnelBreakdown * @instance * @returns {Object.} JSON object */ - Row.prototype.toJSON = function toJSON() { + FunnelBreakdown.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for Row + * Gets the default type url for FunnelBreakdown * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.Row + * @memberof google.analytics.data.v1alpha.FunnelBreakdown * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - Row.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + FunnelBreakdown.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.analytics.data.v1alpha.Row"; + return typeUrlPrefix + "/google.analytics.data.v1alpha.FunnelBreakdown"; }; - return Row; + return FunnelBreakdown; })(); - v1alpha.DimensionValue = (function() { + v1alpha.FunnelNextAction = (function() { /** - * Properties of a DimensionValue. + * Properties of a FunnelNextAction. * @memberof google.analytics.data.v1alpha - * @interface IDimensionValue - * @property {string|null} [value] DimensionValue value + * @interface IFunnelNextAction + * @property {google.analytics.data.v1alpha.IDimension|null} [nextActionDimension] FunnelNextAction nextActionDimension + * @property {number|Long|null} [limit] FunnelNextAction limit */ /** - * Constructs a new DimensionValue. + * Constructs a new FunnelNextAction. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a DimensionValue. - * @implements IDimensionValue + * @classdesc Represents a FunnelNextAction. + * @implements IFunnelNextAction * @constructor - * @param {google.analytics.data.v1alpha.IDimensionValue=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IFunnelNextAction=} [properties] Properties to set */ - function DimensionValue(properties) { + function FunnelNextAction(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -30943,91 +33952,100 @@ } /** - * DimensionValue value. - * @member {string|null|undefined} value - * @memberof google.analytics.data.v1alpha.DimensionValue + * FunnelNextAction nextActionDimension. + * @member {google.analytics.data.v1alpha.IDimension|null|undefined} nextActionDimension + * @memberof google.analytics.data.v1alpha.FunnelNextAction * @instance */ - DimensionValue.prototype.value = null; - - // OneOf field names bound to virtual getters and setters - var $oneOfFields; + FunnelNextAction.prototype.nextActionDimension = null; /** - * DimensionValue oneValue. - * @member {"value"|undefined} oneValue - * @memberof google.analytics.data.v1alpha.DimensionValue + * FunnelNextAction limit. + * @member {number|Long|null|undefined} limit + * @memberof google.analytics.data.v1alpha.FunnelNextAction * @instance */ - Object.defineProperty(DimensionValue.prototype, "oneValue", { - get: $util.oneOfGetter($oneOfFields = ["value"]), + FunnelNextAction.prototype.limit = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + // Virtual OneOf for proto3 optional field + Object.defineProperty(FunnelNextAction.prototype, "_limit", { + get: $util.oneOfGetter($oneOfFields = ["limit"]), set: $util.oneOfSetter($oneOfFields) }); /** - * Creates a new DimensionValue instance using the specified properties. + * Creates a new FunnelNextAction instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.DimensionValue + * @memberof google.analytics.data.v1alpha.FunnelNextAction * @static - * @param {google.analytics.data.v1alpha.IDimensionValue=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.DimensionValue} DimensionValue instance + * @param {google.analytics.data.v1alpha.IFunnelNextAction=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.FunnelNextAction} FunnelNextAction instance */ - DimensionValue.create = function create(properties) { - return new DimensionValue(properties); + FunnelNextAction.create = function create(properties) { + return new FunnelNextAction(properties); }; /** - * Encodes the specified DimensionValue message. Does not implicitly {@link google.analytics.data.v1alpha.DimensionValue.verify|verify} messages. + * Encodes the specified FunnelNextAction message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelNextAction.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.DimensionValue + * @memberof google.analytics.data.v1alpha.FunnelNextAction * @static - * @param {google.analytics.data.v1alpha.IDimensionValue} message DimensionValue message or plain object to encode + * @param {google.analytics.data.v1alpha.IFunnelNextAction} message FunnelNextAction message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - DimensionValue.encode = function encode(message, writer) { + FunnelNextAction.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.value != null && Object.hasOwnProperty.call(message, "value")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.value); + if (message.nextActionDimension != null && Object.hasOwnProperty.call(message, "nextActionDimension")) + $root.google.analytics.data.v1alpha.Dimension.encode(message.nextActionDimension, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.limit != null && Object.hasOwnProperty.call(message, "limit")) + writer.uint32(/* id 2, wireType 0 =*/16).int64(message.limit); return writer; }; /** - * Encodes the specified DimensionValue message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.DimensionValue.verify|verify} messages. + * Encodes the specified FunnelNextAction message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelNextAction.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.DimensionValue + * @memberof google.analytics.data.v1alpha.FunnelNextAction * @static - * @param {google.analytics.data.v1alpha.IDimensionValue} message DimensionValue message or plain object to encode + * @param {google.analytics.data.v1alpha.IFunnelNextAction} message FunnelNextAction message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - DimensionValue.encodeDelimited = function encodeDelimited(message, writer) { + FunnelNextAction.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a DimensionValue message from the specified reader or buffer. + * Decodes a FunnelNextAction message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.DimensionValue + * @memberof google.analytics.data.v1alpha.FunnelNextAction * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.DimensionValue} DimensionValue + * @returns {google.analytics.data.v1alpha.FunnelNextAction} FunnelNextAction * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DimensionValue.decode = function decode(reader, length, error) { + FunnelNextAction.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.DimensionValue(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.FunnelNextAction(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { case 1: { - message.value = reader.string(); + message.nextActionDimension = $root.google.analytics.data.v1alpha.Dimension.decode(reader, reader.uint32()); + break; + } + case 2: { + message.limit = reader.int64(); break; } default: @@ -31039,126 +34057,152 @@ }; /** - * Decodes a DimensionValue message from the specified reader or buffer, length delimited. + * Decodes a FunnelNextAction message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.DimensionValue + * @memberof google.analytics.data.v1alpha.FunnelNextAction * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.DimensionValue} DimensionValue + * @returns {google.analytics.data.v1alpha.FunnelNextAction} FunnelNextAction * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DimensionValue.decodeDelimited = function decodeDelimited(reader) { + FunnelNextAction.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a DimensionValue message. + * Verifies a FunnelNextAction message. * @function verify - * @memberof google.analytics.data.v1alpha.DimensionValue + * @memberof google.analytics.data.v1alpha.FunnelNextAction * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - DimensionValue.verify = function verify(message) { + FunnelNextAction.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; var properties = {}; - if (message.value != null && message.hasOwnProperty("value")) { - properties.oneValue = 1; - if (!$util.isString(message.value)) - return "value: string expected"; + if (message.nextActionDimension != null && message.hasOwnProperty("nextActionDimension")) { + var error = $root.google.analytics.data.v1alpha.Dimension.verify(message.nextActionDimension); + if (error) + return "nextActionDimension." + error; + } + if (message.limit != null && message.hasOwnProperty("limit")) { + properties._limit = 1; + if (!$util.isInteger(message.limit) && !(message.limit && $util.isInteger(message.limit.low) && $util.isInteger(message.limit.high))) + return "limit: integer|Long expected"; } return null; }; /** - * Creates a DimensionValue message from a plain object. Also converts values to their respective internal types. + * Creates a FunnelNextAction message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.DimensionValue + * @memberof google.analytics.data.v1alpha.FunnelNextAction * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.DimensionValue} DimensionValue + * @returns {google.analytics.data.v1alpha.FunnelNextAction} FunnelNextAction */ - DimensionValue.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.DimensionValue) + FunnelNextAction.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.FunnelNextAction) return object; - var message = new $root.google.analytics.data.v1alpha.DimensionValue(); - if (object.value != null) - message.value = String(object.value); + var message = new $root.google.analytics.data.v1alpha.FunnelNextAction(); + if (object.nextActionDimension != null) { + if (typeof object.nextActionDimension !== "object") + throw TypeError(".google.analytics.data.v1alpha.FunnelNextAction.nextActionDimension: object expected"); + message.nextActionDimension = $root.google.analytics.data.v1alpha.Dimension.fromObject(object.nextActionDimension); + } + if (object.limit != null) + if ($util.Long) + (message.limit = $util.Long.fromValue(object.limit)).unsigned = false; + else if (typeof object.limit === "string") + message.limit = parseInt(object.limit, 10); + else if (typeof object.limit === "number") + message.limit = object.limit; + else if (typeof object.limit === "object") + message.limit = new $util.LongBits(object.limit.low >>> 0, object.limit.high >>> 0).toNumber(); return message; }; /** - * Creates a plain object from a DimensionValue message. Also converts values to other types if specified. + * Creates a plain object from a FunnelNextAction message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.DimensionValue + * @memberof google.analytics.data.v1alpha.FunnelNextAction * @static - * @param {google.analytics.data.v1alpha.DimensionValue} message DimensionValue + * @param {google.analytics.data.v1alpha.FunnelNextAction} message FunnelNextAction * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - DimensionValue.toObject = function toObject(message, options) { + FunnelNextAction.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (message.value != null && message.hasOwnProperty("value")) { - object.value = message.value; + if (options.defaults) + object.nextActionDimension = null; + if (message.nextActionDimension != null && message.hasOwnProperty("nextActionDimension")) + object.nextActionDimension = $root.google.analytics.data.v1alpha.Dimension.toObject(message.nextActionDimension, options); + if (message.limit != null && message.hasOwnProperty("limit")) { + if (typeof message.limit === "number") + object.limit = options.longs === String ? String(message.limit) : message.limit; + else + object.limit = options.longs === String ? $util.Long.prototype.toString.call(message.limit) : options.longs === Number ? new $util.LongBits(message.limit.low >>> 0, message.limit.high >>> 0).toNumber() : message.limit; if (options.oneofs) - object.oneValue = "value"; + object._limit = "limit"; } return object; }; /** - * Converts this DimensionValue to JSON. + * Converts this FunnelNextAction to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.DimensionValue + * @memberof google.analytics.data.v1alpha.FunnelNextAction * @instance * @returns {Object.} JSON object */ - DimensionValue.prototype.toJSON = function toJSON() { + FunnelNextAction.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for DimensionValue + * Gets the default type url for FunnelNextAction * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.DimensionValue + * @memberof google.analytics.data.v1alpha.FunnelNextAction * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - DimensionValue.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + FunnelNextAction.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.analytics.data.v1alpha.DimensionValue"; + return typeUrlPrefix + "/google.analytics.data.v1alpha.FunnelNextAction"; }; - return DimensionValue; + return FunnelNextAction; })(); - v1alpha.MetricValue = (function() { + v1alpha.Funnel = (function() { /** - * Properties of a MetricValue. + * Properties of a Funnel. * @memberof google.analytics.data.v1alpha - * @interface IMetricValue - * @property {string|null} [value] MetricValue value + * @interface IFunnel + * @property {boolean|null} [isOpenFunnel] Funnel isOpenFunnel + * @property {Array.|null} [steps] Funnel steps */ /** - * Constructs a new MetricValue. + * Constructs a new Funnel. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a MetricValue. - * @implements IMetricValue + * @classdesc Represents a Funnel. + * @implements IFunnel * @constructor - * @param {google.analytics.data.v1alpha.IMetricValue=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IFunnel=} [properties] Properties to set */ - function MetricValue(properties) { + function Funnel(properties) { + this.steps = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -31166,91 +34210,94 @@ } /** - * MetricValue value. - * @member {string|null|undefined} value - * @memberof google.analytics.data.v1alpha.MetricValue + * Funnel isOpenFunnel. + * @member {boolean} isOpenFunnel + * @memberof google.analytics.data.v1alpha.Funnel * @instance */ - MetricValue.prototype.value = null; - - // OneOf field names bound to virtual getters and setters - var $oneOfFields; + Funnel.prototype.isOpenFunnel = false; /** - * MetricValue oneValue. - * @member {"value"|undefined} oneValue - * @memberof google.analytics.data.v1alpha.MetricValue + * Funnel steps. + * @member {Array.} steps + * @memberof google.analytics.data.v1alpha.Funnel * @instance */ - Object.defineProperty(MetricValue.prototype, "oneValue", { - get: $util.oneOfGetter($oneOfFields = ["value"]), - set: $util.oneOfSetter($oneOfFields) - }); + Funnel.prototype.steps = $util.emptyArray; /** - * Creates a new MetricValue instance using the specified properties. + * Creates a new Funnel instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.MetricValue + * @memberof google.analytics.data.v1alpha.Funnel * @static - * @param {google.analytics.data.v1alpha.IMetricValue=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.MetricValue} MetricValue instance + * @param {google.analytics.data.v1alpha.IFunnel=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.Funnel} Funnel instance */ - MetricValue.create = function create(properties) { - return new MetricValue(properties); + Funnel.create = function create(properties) { + return new Funnel(properties); }; /** - * Encodes the specified MetricValue message. Does not implicitly {@link google.analytics.data.v1alpha.MetricValue.verify|verify} messages. + * Encodes the specified Funnel message. Does not implicitly {@link google.analytics.data.v1alpha.Funnel.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.MetricValue + * @memberof google.analytics.data.v1alpha.Funnel * @static - * @param {google.analytics.data.v1alpha.IMetricValue} message MetricValue message or plain object to encode + * @param {google.analytics.data.v1alpha.IFunnel} message Funnel message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - MetricValue.encode = function encode(message, writer) { + Funnel.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.value != null && Object.hasOwnProperty.call(message, "value")) - writer.uint32(/* id 4, wireType 2 =*/34).string(message.value); + if (message.isOpenFunnel != null && Object.hasOwnProperty.call(message, "isOpenFunnel")) + writer.uint32(/* id 1, wireType 0 =*/8).bool(message.isOpenFunnel); + if (message.steps != null && message.steps.length) + for (var i = 0; i < message.steps.length; ++i) + $root.google.analytics.data.v1alpha.FunnelStep.encode(message.steps[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); return writer; }; /** - * Encodes the specified MetricValue message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.MetricValue.verify|verify} messages. + * Encodes the specified Funnel message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.Funnel.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.MetricValue + * @memberof google.analytics.data.v1alpha.Funnel * @static - * @param {google.analytics.data.v1alpha.IMetricValue} message MetricValue message or plain object to encode + * @param {google.analytics.data.v1alpha.IFunnel} message Funnel message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - MetricValue.encodeDelimited = function encodeDelimited(message, writer) { + Funnel.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a MetricValue message from the specified reader or buffer. + * Decodes a Funnel message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.MetricValue + * @memberof google.analytics.data.v1alpha.Funnel * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.MetricValue} MetricValue + * @returns {google.analytics.data.v1alpha.Funnel} Funnel * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - MetricValue.decode = function decode(reader, length, error) { + Funnel.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.MetricValue(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.Funnel(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { - case 4: { - message.value = reader.string(); + case 1: { + message.isOpenFunnel = reader.bool(); + break; + } + case 2: { + if (!(message.steps && message.steps.length)) + message.steps = []; + message.steps.push($root.google.analytics.data.v1alpha.FunnelStep.decode(reader, reader.uint32())); break; } default: @@ -31262,131 +34309,151 @@ }; /** - * Decodes a MetricValue message from the specified reader or buffer, length delimited. + * Decodes a Funnel message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.MetricValue + * @memberof google.analytics.data.v1alpha.Funnel * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.MetricValue} MetricValue + * @returns {google.analytics.data.v1alpha.Funnel} Funnel * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - MetricValue.decodeDelimited = function decodeDelimited(reader) { + Funnel.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a MetricValue message. + * Verifies a Funnel message. * @function verify - * @memberof google.analytics.data.v1alpha.MetricValue + * @memberof google.analytics.data.v1alpha.Funnel * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - MetricValue.verify = function verify(message) { + Funnel.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - var properties = {}; - if (message.value != null && message.hasOwnProperty("value")) { - properties.oneValue = 1; - if (!$util.isString(message.value)) - return "value: string expected"; + if (message.isOpenFunnel != null && message.hasOwnProperty("isOpenFunnel")) + if (typeof message.isOpenFunnel !== "boolean") + return "isOpenFunnel: boolean expected"; + if (message.steps != null && message.hasOwnProperty("steps")) { + if (!Array.isArray(message.steps)) + return "steps: array expected"; + for (var i = 0; i < message.steps.length; ++i) { + var error = $root.google.analytics.data.v1alpha.FunnelStep.verify(message.steps[i]); + if (error) + return "steps." + error; + } } return null; }; /** - * Creates a MetricValue message from a plain object. Also converts values to their respective internal types. + * Creates a Funnel message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.MetricValue + * @memberof google.analytics.data.v1alpha.Funnel * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.MetricValue} MetricValue + * @returns {google.analytics.data.v1alpha.Funnel} Funnel */ - MetricValue.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.MetricValue) + Funnel.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.Funnel) return object; - var message = new $root.google.analytics.data.v1alpha.MetricValue(); - if (object.value != null) - message.value = String(object.value); + var message = new $root.google.analytics.data.v1alpha.Funnel(); + if (object.isOpenFunnel != null) + message.isOpenFunnel = Boolean(object.isOpenFunnel); + if (object.steps) { + if (!Array.isArray(object.steps)) + throw TypeError(".google.analytics.data.v1alpha.Funnel.steps: array expected"); + message.steps = []; + for (var i = 0; i < object.steps.length; ++i) { + if (typeof object.steps[i] !== "object") + throw TypeError(".google.analytics.data.v1alpha.Funnel.steps: object expected"); + message.steps[i] = $root.google.analytics.data.v1alpha.FunnelStep.fromObject(object.steps[i]); + } + } return message; }; /** - * Creates a plain object from a MetricValue message. Also converts values to other types if specified. + * Creates a plain object from a Funnel message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.MetricValue + * @memberof google.analytics.data.v1alpha.Funnel * @static - * @param {google.analytics.data.v1alpha.MetricValue} message MetricValue + * @param {google.analytics.data.v1alpha.Funnel} message Funnel * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - MetricValue.toObject = function toObject(message, options) { + Funnel.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (message.value != null && message.hasOwnProperty("value")) { - object.value = message.value; - if (options.oneofs) - object.oneValue = "value"; + if (options.arrays || options.defaults) + object.steps = []; + if (options.defaults) + object.isOpenFunnel = false; + if (message.isOpenFunnel != null && message.hasOwnProperty("isOpenFunnel")) + object.isOpenFunnel = message.isOpenFunnel; + if (message.steps && message.steps.length) { + object.steps = []; + for (var j = 0; j < message.steps.length; ++j) + object.steps[j] = $root.google.analytics.data.v1alpha.FunnelStep.toObject(message.steps[j], options); } return object; }; /** - * Converts this MetricValue to JSON. + * Converts this Funnel to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.MetricValue + * @memberof google.analytics.data.v1alpha.Funnel * @instance * @returns {Object.} JSON object */ - MetricValue.prototype.toJSON = function toJSON() { + Funnel.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for MetricValue + * Gets the default type url for Funnel * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.MetricValue + * @memberof google.analytics.data.v1alpha.Funnel * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - MetricValue.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + Funnel.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.analytics.data.v1alpha.MetricValue"; + return typeUrlPrefix + "/google.analytics.data.v1alpha.Funnel"; }; - return MetricValue; + return Funnel; })(); - v1alpha.PropertyQuota = (function() { + v1alpha.FunnelStep = (function() { /** - * Properties of a PropertyQuota. + * Properties of a FunnelStep. * @memberof google.analytics.data.v1alpha - * @interface IPropertyQuota - * @property {google.analytics.data.v1alpha.IQuotaStatus|null} [tokensPerDay] PropertyQuota tokensPerDay - * @property {google.analytics.data.v1alpha.IQuotaStatus|null} [tokensPerHour] PropertyQuota tokensPerHour - * @property {google.analytics.data.v1alpha.IQuotaStatus|null} [concurrentRequests] PropertyQuota concurrentRequests - * @property {google.analytics.data.v1alpha.IQuotaStatus|null} [serverErrorsPerProjectPerHour] PropertyQuota serverErrorsPerProjectPerHour - * @property {google.analytics.data.v1alpha.IQuotaStatus|null} [potentiallyThresholdedRequestsPerHour] PropertyQuota potentiallyThresholdedRequestsPerHour - * @property {google.analytics.data.v1alpha.IQuotaStatus|null} [tokensPerProjectPerHour] PropertyQuota tokensPerProjectPerHour + * @interface IFunnelStep + * @property {string|null} [name] FunnelStep name + * @property {boolean|null} [isDirectlyFollowedBy] FunnelStep isDirectlyFollowedBy + * @property {google.protobuf.IDuration|null} [withinDurationFromPriorStep] FunnelStep withinDurationFromPriorStep + * @property {google.analytics.data.v1alpha.IFunnelFilterExpression|null} [filterExpression] FunnelStep filterExpression */ /** - * Constructs a new PropertyQuota. + * Constructs a new FunnelStep. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a PropertyQuota. - * @implements IPropertyQuota + * @classdesc Represents a FunnelStep. + * @implements IFunnelStep * @constructor - * @param {google.analytics.data.v1alpha.IPropertyQuota=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IFunnelStep=} [properties] Properties to set */ - function PropertyQuota(properties) { + function FunnelStep(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -31394,147 +34461,128 @@ } /** - * PropertyQuota tokensPerDay. - * @member {google.analytics.data.v1alpha.IQuotaStatus|null|undefined} tokensPerDay - * @memberof google.analytics.data.v1alpha.PropertyQuota + * FunnelStep name. + * @member {string} name + * @memberof google.analytics.data.v1alpha.FunnelStep * @instance */ - PropertyQuota.prototype.tokensPerDay = null; + FunnelStep.prototype.name = ""; /** - * PropertyQuota tokensPerHour. - * @member {google.analytics.data.v1alpha.IQuotaStatus|null|undefined} tokensPerHour - * @memberof google.analytics.data.v1alpha.PropertyQuota + * FunnelStep isDirectlyFollowedBy. + * @member {boolean} isDirectlyFollowedBy + * @memberof google.analytics.data.v1alpha.FunnelStep * @instance */ - PropertyQuota.prototype.tokensPerHour = null; + FunnelStep.prototype.isDirectlyFollowedBy = false; /** - * PropertyQuota concurrentRequests. - * @member {google.analytics.data.v1alpha.IQuotaStatus|null|undefined} concurrentRequests - * @memberof google.analytics.data.v1alpha.PropertyQuota + * FunnelStep withinDurationFromPriorStep. + * @member {google.protobuf.IDuration|null|undefined} withinDurationFromPriorStep + * @memberof google.analytics.data.v1alpha.FunnelStep * @instance */ - PropertyQuota.prototype.concurrentRequests = null; + FunnelStep.prototype.withinDurationFromPriorStep = null; /** - * PropertyQuota serverErrorsPerProjectPerHour. - * @member {google.analytics.data.v1alpha.IQuotaStatus|null|undefined} serverErrorsPerProjectPerHour - * @memberof google.analytics.data.v1alpha.PropertyQuota + * FunnelStep filterExpression. + * @member {google.analytics.data.v1alpha.IFunnelFilterExpression|null|undefined} filterExpression + * @memberof google.analytics.data.v1alpha.FunnelStep * @instance */ - PropertyQuota.prototype.serverErrorsPerProjectPerHour = null; + FunnelStep.prototype.filterExpression = null; - /** - * PropertyQuota potentiallyThresholdedRequestsPerHour. - * @member {google.analytics.data.v1alpha.IQuotaStatus|null|undefined} potentiallyThresholdedRequestsPerHour - * @memberof google.analytics.data.v1alpha.PropertyQuota - * @instance - */ - PropertyQuota.prototype.potentiallyThresholdedRequestsPerHour = null; + // OneOf field names bound to virtual getters and setters + var $oneOfFields; - /** - * PropertyQuota tokensPerProjectPerHour. - * @member {google.analytics.data.v1alpha.IQuotaStatus|null|undefined} tokensPerProjectPerHour - * @memberof google.analytics.data.v1alpha.PropertyQuota - * @instance - */ - PropertyQuota.prototype.tokensPerProjectPerHour = null; + // Virtual OneOf for proto3 optional field + Object.defineProperty(FunnelStep.prototype, "_withinDurationFromPriorStep", { + get: $util.oneOfGetter($oneOfFields = ["withinDurationFromPriorStep"]), + set: $util.oneOfSetter($oneOfFields) + }); /** - * Creates a new PropertyQuota instance using the specified properties. + * Creates a new FunnelStep instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.PropertyQuota + * @memberof google.analytics.data.v1alpha.FunnelStep * @static - * @param {google.analytics.data.v1alpha.IPropertyQuota=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.PropertyQuota} PropertyQuota instance + * @param {google.analytics.data.v1alpha.IFunnelStep=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.FunnelStep} FunnelStep instance */ - PropertyQuota.create = function create(properties) { - return new PropertyQuota(properties); + FunnelStep.create = function create(properties) { + return new FunnelStep(properties); }; /** - * Encodes the specified PropertyQuota message. Does not implicitly {@link google.analytics.data.v1alpha.PropertyQuota.verify|verify} messages. + * Encodes the specified FunnelStep message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelStep.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.PropertyQuota + * @memberof google.analytics.data.v1alpha.FunnelStep * @static - * @param {google.analytics.data.v1alpha.IPropertyQuota} message PropertyQuota message or plain object to encode + * @param {google.analytics.data.v1alpha.IFunnelStep} message FunnelStep message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - PropertyQuota.encode = function encode(message, writer) { + FunnelStep.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.tokensPerDay != null && Object.hasOwnProperty.call(message, "tokensPerDay")) - $root.google.analytics.data.v1alpha.QuotaStatus.encode(message.tokensPerDay, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.tokensPerHour != null && Object.hasOwnProperty.call(message, "tokensPerHour")) - $root.google.analytics.data.v1alpha.QuotaStatus.encode(message.tokensPerHour, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.concurrentRequests != null && Object.hasOwnProperty.call(message, "concurrentRequests")) - $root.google.analytics.data.v1alpha.QuotaStatus.encode(message.concurrentRequests, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); - if (message.serverErrorsPerProjectPerHour != null && Object.hasOwnProperty.call(message, "serverErrorsPerProjectPerHour")) - $root.google.analytics.data.v1alpha.QuotaStatus.encode(message.serverErrorsPerProjectPerHour, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); - if (message.potentiallyThresholdedRequestsPerHour != null && Object.hasOwnProperty.call(message, "potentiallyThresholdedRequestsPerHour")) - $root.google.analytics.data.v1alpha.QuotaStatus.encode(message.potentiallyThresholdedRequestsPerHour, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); - if (message.tokensPerProjectPerHour != null && Object.hasOwnProperty.call(message, "tokensPerProjectPerHour")) - $root.google.analytics.data.v1alpha.QuotaStatus.encode(message.tokensPerProjectPerHour, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + if (message.name != null && Object.hasOwnProperty.call(message, "name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + if (message.isDirectlyFollowedBy != null && Object.hasOwnProperty.call(message, "isDirectlyFollowedBy")) + writer.uint32(/* id 2, wireType 0 =*/16).bool(message.isDirectlyFollowedBy); + if (message.withinDurationFromPriorStep != null && Object.hasOwnProperty.call(message, "withinDurationFromPriorStep")) + $root.google.protobuf.Duration.encode(message.withinDurationFromPriorStep, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.filterExpression != null && Object.hasOwnProperty.call(message, "filterExpression")) + $root.google.analytics.data.v1alpha.FunnelFilterExpression.encode(message.filterExpression, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); return writer; }; /** - * Encodes the specified PropertyQuota message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.PropertyQuota.verify|verify} messages. + * Encodes the specified FunnelStep message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelStep.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.PropertyQuota + * @memberof google.analytics.data.v1alpha.FunnelStep * @static - * @param {google.analytics.data.v1alpha.IPropertyQuota} message PropertyQuota message or plain object to encode + * @param {google.analytics.data.v1alpha.IFunnelStep} message FunnelStep message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - PropertyQuota.encodeDelimited = function encodeDelimited(message, writer) { + FunnelStep.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a PropertyQuota message from the specified reader or buffer. + * Decodes a FunnelStep message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.PropertyQuota + * @memberof google.analytics.data.v1alpha.FunnelStep * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.PropertyQuota} PropertyQuota + * @returns {google.analytics.data.v1alpha.FunnelStep} FunnelStep * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - PropertyQuota.decode = function decode(reader, length, error) { + FunnelStep.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.PropertyQuota(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.FunnelStep(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { case 1: { - message.tokensPerDay = $root.google.analytics.data.v1alpha.QuotaStatus.decode(reader, reader.uint32()); + message.name = reader.string(); break; } case 2: { - message.tokensPerHour = $root.google.analytics.data.v1alpha.QuotaStatus.decode(reader, reader.uint32()); + message.isDirectlyFollowedBy = reader.bool(); break; } case 3: { - message.concurrentRequests = $root.google.analytics.data.v1alpha.QuotaStatus.decode(reader, reader.uint32()); + message.withinDurationFromPriorStep = $root.google.protobuf.Duration.decode(reader, reader.uint32()); break; } case 4: { - message.serverErrorsPerProjectPerHour = $root.google.analytics.data.v1alpha.QuotaStatus.decode(reader, reader.uint32()); - break; - } - case 5: { - message.potentiallyThresholdedRequestsPerHour = $root.google.analytics.data.v1alpha.QuotaStatus.decode(reader, reader.uint32()); - break; - } - case 6: { - message.tokensPerProjectPerHour = $root.google.analytics.data.v1alpha.QuotaStatus.decode(reader, reader.uint32()); + message.filterExpression = $root.google.analytics.data.v1alpha.FunnelFilterExpression.decode(reader, reader.uint32()); break; } default: @@ -31546,194 +34594,169 @@ }; /** - * Decodes a PropertyQuota message from the specified reader or buffer, length delimited. + * Decodes a FunnelStep message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.PropertyQuota + * @memberof google.analytics.data.v1alpha.FunnelStep * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.PropertyQuota} PropertyQuota + * @returns {google.analytics.data.v1alpha.FunnelStep} FunnelStep * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - PropertyQuota.decodeDelimited = function decodeDelimited(reader) { + FunnelStep.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a PropertyQuota message. + * Verifies a FunnelStep message. * @function verify - * @memberof google.analytics.data.v1alpha.PropertyQuota + * @memberof google.analytics.data.v1alpha.FunnelStep * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - PropertyQuota.verify = function verify(message) { + FunnelStep.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.tokensPerDay != null && message.hasOwnProperty("tokensPerDay")) { - var error = $root.google.analytics.data.v1alpha.QuotaStatus.verify(message.tokensPerDay); - if (error) - return "tokensPerDay." + error; - } - if (message.tokensPerHour != null && message.hasOwnProperty("tokensPerHour")) { - var error = $root.google.analytics.data.v1alpha.QuotaStatus.verify(message.tokensPerHour); - if (error) - return "tokensPerHour." + error; - } - if (message.concurrentRequests != null && message.hasOwnProperty("concurrentRequests")) { - var error = $root.google.analytics.data.v1alpha.QuotaStatus.verify(message.concurrentRequests); - if (error) - return "concurrentRequests." + error; - } - if (message.serverErrorsPerProjectPerHour != null && message.hasOwnProperty("serverErrorsPerProjectPerHour")) { - var error = $root.google.analytics.data.v1alpha.QuotaStatus.verify(message.serverErrorsPerProjectPerHour); - if (error) - return "serverErrorsPerProjectPerHour." + error; - } - if (message.potentiallyThresholdedRequestsPerHour != null && message.hasOwnProperty("potentiallyThresholdedRequestsPerHour")) { - var error = $root.google.analytics.data.v1alpha.QuotaStatus.verify(message.potentiallyThresholdedRequestsPerHour); - if (error) - return "potentiallyThresholdedRequestsPerHour." + error; + var properties = {}; + if (message.name != null && message.hasOwnProperty("name")) + if (!$util.isString(message.name)) + return "name: string expected"; + if (message.isDirectlyFollowedBy != null && message.hasOwnProperty("isDirectlyFollowedBy")) + if (typeof message.isDirectlyFollowedBy !== "boolean") + return "isDirectlyFollowedBy: boolean expected"; + if (message.withinDurationFromPriorStep != null && message.hasOwnProperty("withinDurationFromPriorStep")) { + properties._withinDurationFromPriorStep = 1; + { + var error = $root.google.protobuf.Duration.verify(message.withinDurationFromPriorStep); + if (error) + return "withinDurationFromPriorStep." + error; + } } - if (message.tokensPerProjectPerHour != null && message.hasOwnProperty("tokensPerProjectPerHour")) { - var error = $root.google.analytics.data.v1alpha.QuotaStatus.verify(message.tokensPerProjectPerHour); + if (message.filterExpression != null && message.hasOwnProperty("filterExpression")) { + var error = $root.google.analytics.data.v1alpha.FunnelFilterExpression.verify(message.filterExpression); if (error) - return "tokensPerProjectPerHour." + error; + return "filterExpression." + error; } return null; }; /** - * Creates a PropertyQuota message from a plain object. Also converts values to their respective internal types. + * Creates a FunnelStep message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.PropertyQuota + * @memberof google.analytics.data.v1alpha.FunnelStep * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.PropertyQuota} PropertyQuota + * @returns {google.analytics.data.v1alpha.FunnelStep} FunnelStep */ - PropertyQuota.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.PropertyQuota) + FunnelStep.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.FunnelStep) return object; - var message = new $root.google.analytics.data.v1alpha.PropertyQuota(); - if (object.tokensPerDay != null) { - if (typeof object.tokensPerDay !== "object") - throw TypeError(".google.analytics.data.v1alpha.PropertyQuota.tokensPerDay: object expected"); - message.tokensPerDay = $root.google.analytics.data.v1alpha.QuotaStatus.fromObject(object.tokensPerDay); - } - if (object.tokensPerHour != null) { - if (typeof object.tokensPerHour !== "object") - throw TypeError(".google.analytics.data.v1alpha.PropertyQuota.tokensPerHour: object expected"); - message.tokensPerHour = $root.google.analytics.data.v1alpha.QuotaStatus.fromObject(object.tokensPerHour); - } - if (object.concurrentRequests != null) { - if (typeof object.concurrentRequests !== "object") - throw TypeError(".google.analytics.data.v1alpha.PropertyQuota.concurrentRequests: object expected"); - message.concurrentRequests = $root.google.analytics.data.v1alpha.QuotaStatus.fromObject(object.concurrentRequests); - } - if (object.serverErrorsPerProjectPerHour != null) { - if (typeof object.serverErrorsPerProjectPerHour !== "object") - throw TypeError(".google.analytics.data.v1alpha.PropertyQuota.serverErrorsPerProjectPerHour: object expected"); - message.serverErrorsPerProjectPerHour = $root.google.analytics.data.v1alpha.QuotaStatus.fromObject(object.serverErrorsPerProjectPerHour); - } - if (object.potentiallyThresholdedRequestsPerHour != null) { - if (typeof object.potentiallyThresholdedRequestsPerHour !== "object") - throw TypeError(".google.analytics.data.v1alpha.PropertyQuota.potentiallyThresholdedRequestsPerHour: object expected"); - message.potentiallyThresholdedRequestsPerHour = $root.google.analytics.data.v1alpha.QuotaStatus.fromObject(object.potentiallyThresholdedRequestsPerHour); + var message = new $root.google.analytics.data.v1alpha.FunnelStep(); + if (object.name != null) + message.name = String(object.name); + if (object.isDirectlyFollowedBy != null) + message.isDirectlyFollowedBy = Boolean(object.isDirectlyFollowedBy); + if (object.withinDurationFromPriorStep != null) { + if (typeof object.withinDurationFromPriorStep !== "object") + throw TypeError(".google.analytics.data.v1alpha.FunnelStep.withinDurationFromPriorStep: object expected"); + message.withinDurationFromPriorStep = $root.google.protobuf.Duration.fromObject(object.withinDurationFromPriorStep); } - if (object.tokensPerProjectPerHour != null) { - if (typeof object.tokensPerProjectPerHour !== "object") - throw TypeError(".google.analytics.data.v1alpha.PropertyQuota.tokensPerProjectPerHour: object expected"); - message.tokensPerProjectPerHour = $root.google.analytics.data.v1alpha.QuotaStatus.fromObject(object.tokensPerProjectPerHour); + if (object.filterExpression != null) { + if (typeof object.filterExpression !== "object") + throw TypeError(".google.analytics.data.v1alpha.FunnelStep.filterExpression: object expected"); + message.filterExpression = $root.google.analytics.data.v1alpha.FunnelFilterExpression.fromObject(object.filterExpression); } return message; }; /** - * Creates a plain object from a PropertyQuota message. Also converts values to other types if specified. + * Creates a plain object from a FunnelStep message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.PropertyQuota + * @memberof google.analytics.data.v1alpha.FunnelStep * @static - * @param {google.analytics.data.v1alpha.PropertyQuota} message PropertyQuota + * @param {google.analytics.data.v1alpha.FunnelStep} message FunnelStep * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - PropertyQuota.toObject = function toObject(message, options) { + FunnelStep.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; if (options.defaults) { - object.tokensPerDay = null; - object.tokensPerHour = null; - object.concurrentRequests = null; - object.serverErrorsPerProjectPerHour = null; - object.potentiallyThresholdedRequestsPerHour = null; - object.tokensPerProjectPerHour = null; + object.name = ""; + object.isDirectlyFollowedBy = false; + object.filterExpression = null; } - if (message.tokensPerDay != null && message.hasOwnProperty("tokensPerDay")) - object.tokensPerDay = $root.google.analytics.data.v1alpha.QuotaStatus.toObject(message.tokensPerDay, options); - if (message.tokensPerHour != null && message.hasOwnProperty("tokensPerHour")) - object.tokensPerHour = $root.google.analytics.data.v1alpha.QuotaStatus.toObject(message.tokensPerHour, options); - if (message.concurrentRequests != null && message.hasOwnProperty("concurrentRequests")) - object.concurrentRequests = $root.google.analytics.data.v1alpha.QuotaStatus.toObject(message.concurrentRequests, options); - if (message.serverErrorsPerProjectPerHour != null && message.hasOwnProperty("serverErrorsPerProjectPerHour")) - object.serverErrorsPerProjectPerHour = $root.google.analytics.data.v1alpha.QuotaStatus.toObject(message.serverErrorsPerProjectPerHour, options); - if (message.potentiallyThresholdedRequestsPerHour != null && message.hasOwnProperty("potentiallyThresholdedRequestsPerHour")) - object.potentiallyThresholdedRequestsPerHour = $root.google.analytics.data.v1alpha.QuotaStatus.toObject(message.potentiallyThresholdedRequestsPerHour, options); - if (message.tokensPerProjectPerHour != null && message.hasOwnProperty("tokensPerProjectPerHour")) - object.tokensPerProjectPerHour = $root.google.analytics.data.v1alpha.QuotaStatus.toObject(message.tokensPerProjectPerHour, options); + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + if (message.isDirectlyFollowedBy != null && message.hasOwnProperty("isDirectlyFollowedBy")) + object.isDirectlyFollowedBy = message.isDirectlyFollowedBy; + if (message.withinDurationFromPriorStep != null && message.hasOwnProperty("withinDurationFromPriorStep")) { + object.withinDurationFromPriorStep = $root.google.protobuf.Duration.toObject(message.withinDurationFromPriorStep, options); + if (options.oneofs) + object._withinDurationFromPriorStep = "withinDurationFromPriorStep"; + } + if (message.filterExpression != null && message.hasOwnProperty("filterExpression")) + object.filterExpression = $root.google.analytics.data.v1alpha.FunnelFilterExpression.toObject(message.filterExpression, options); return object; }; /** - * Converts this PropertyQuota to JSON. + * Converts this FunnelStep to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.PropertyQuota + * @memberof google.analytics.data.v1alpha.FunnelStep * @instance * @returns {Object.} JSON object */ - PropertyQuota.prototype.toJSON = function toJSON() { + FunnelStep.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for PropertyQuota + * Gets the default type url for FunnelStep * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.PropertyQuota + * @memberof google.analytics.data.v1alpha.FunnelStep * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - PropertyQuota.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + FunnelStep.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.analytics.data.v1alpha.PropertyQuota"; + return typeUrlPrefix + "/google.analytics.data.v1alpha.FunnelStep"; }; - return PropertyQuota; + return FunnelStep; })(); - v1alpha.QuotaStatus = (function() { + v1alpha.FunnelSubReport = (function() { /** - * Properties of a QuotaStatus. + * Properties of a FunnelSubReport. * @memberof google.analytics.data.v1alpha - * @interface IQuotaStatus - * @property {number|null} [consumed] QuotaStatus consumed - * @property {number|null} [remaining] QuotaStatus remaining + * @interface IFunnelSubReport + * @property {Array.|null} [dimensionHeaders] FunnelSubReport dimensionHeaders + * @property {Array.|null} [metricHeaders] FunnelSubReport metricHeaders + * @property {Array.|null} [rows] FunnelSubReport rows + * @property {google.analytics.data.v1alpha.IFunnelResponseMetadata|null} [metadata] FunnelSubReport metadata */ /** - * Constructs a new QuotaStatus. + * Constructs a new FunnelSubReport. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a QuotaStatus. - * @implements IQuotaStatus + * @classdesc Represents a FunnelSubReport. + * @implements IFunnelSubReport * @constructor - * @param {google.analytics.data.v1alpha.IQuotaStatus=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IFunnelSubReport=} [properties] Properties to set */ - function QuotaStatus(properties) { + function FunnelSubReport(properties) { + this.dimensionHeaders = []; + this.metricHeaders = []; + this.rows = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -31741,91 +34764,128 @@ } /** - * QuotaStatus consumed. - * @member {number} consumed - * @memberof google.analytics.data.v1alpha.QuotaStatus + * FunnelSubReport dimensionHeaders. + * @member {Array.} dimensionHeaders + * @memberof google.analytics.data.v1alpha.FunnelSubReport * @instance */ - QuotaStatus.prototype.consumed = 0; + FunnelSubReport.prototype.dimensionHeaders = $util.emptyArray; /** - * QuotaStatus remaining. - * @member {number} remaining - * @memberof google.analytics.data.v1alpha.QuotaStatus + * FunnelSubReport metricHeaders. + * @member {Array.} metricHeaders + * @memberof google.analytics.data.v1alpha.FunnelSubReport * @instance */ - QuotaStatus.prototype.remaining = 0; + FunnelSubReport.prototype.metricHeaders = $util.emptyArray; /** - * Creates a new QuotaStatus instance using the specified properties. + * FunnelSubReport rows. + * @member {Array.} rows + * @memberof google.analytics.data.v1alpha.FunnelSubReport + * @instance + */ + FunnelSubReport.prototype.rows = $util.emptyArray; + + /** + * FunnelSubReport metadata. + * @member {google.analytics.data.v1alpha.IFunnelResponseMetadata|null|undefined} metadata + * @memberof google.analytics.data.v1alpha.FunnelSubReport + * @instance + */ + FunnelSubReport.prototype.metadata = null; + + /** + * Creates a new FunnelSubReport instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.QuotaStatus + * @memberof google.analytics.data.v1alpha.FunnelSubReport * @static - * @param {google.analytics.data.v1alpha.IQuotaStatus=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.QuotaStatus} QuotaStatus instance + * @param {google.analytics.data.v1alpha.IFunnelSubReport=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.FunnelSubReport} FunnelSubReport instance */ - QuotaStatus.create = function create(properties) { - return new QuotaStatus(properties); + FunnelSubReport.create = function create(properties) { + return new FunnelSubReport(properties); }; /** - * Encodes the specified QuotaStatus message. Does not implicitly {@link google.analytics.data.v1alpha.QuotaStatus.verify|verify} messages. + * Encodes the specified FunnelSubReport message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelSubReport.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.QuotaStatus + * @memberof google.analytics.data.v1alpha.FunnelSubReport * @static - * @param {google.analytics.data.v1alpha.IQuotaStatus} message QuotaStatus message or plain object to encode + * @param {google.analytics.data.v1alpha.IFunnelSubReport} message FunnelSubReport message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - QuotaStatus.encode = function encode(message, writer) { + FunnelSubReport.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.consumed != null && Object.hasOwnProperty.call(message, "consumed")) - writer.uint32(/* id 1, wireType 0 =*/8).int32(message.consumed); - if (message.remaining != null && Object.hasOwnProperty.call(message, "remaining")) - writer.uint32(/* id 2, wireType 0 =*/16).int32(message.remaining); + if (message.dimensionHeaders != null && message.dimensionHeaders.length) + for (var i = 0; i < message.dimensionHeaders.length; ++i) + $root.google.analytics.data.v1alpha.DimensionHeader.encode(message.dimensionHeaders[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.metricHeaders != null && message.metricHeaders.length) + for (var i = 0; i < message.metricHeaders.length; ++i) + $root.google.analytics.data.v1alpha.MetricHeader.encode(message.metricHeaders[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.rows != null && message.rows.length) + for (var i = 0; i < message.rows.length; ++i) + $root.google.analytics.data.v1alpha.Row.encode(message.rows[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.metadata != null && Object.hasOwnProperty.call(message, "metadata")) + $root.google.analytics.data.v1alpha.FunnelResponseMetadata.encode(message.metadata, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); return writer; }; /** - * Encodes the specified QuotaStatus message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.QuotaStatus.verify|verify} messages. + * Encodes the specified FunnelSubReport message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelSubReport.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.QuotaStatus + * @memberof google.analytics.data.v1alpha.FunnelSubReport * @static - * @param {google.analytics.data.v1alpha.IQuotaStatus} message QuotaStatus message or plain object to encode + * @param {google.analytics.data.v1alpha.IFunnelSubReport} message FunnelSubReport message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - QuotaStatus.encodeDelimited = function encodeDelimited(message, writer) { + FunnelSubReport.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a QuotaStatus message from the specified reader or buffer. + * Decodes a FunnelSubReport message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.QuotaStatus + * @memberof google.analytics.data.v1alpha.FunnelSubReport * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.QuotaStatus} QuotaStatus + * @returns {google.analytics.data.v1alpha.FunnelSubReport} FunnelSubReport * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - QuotaStatus.decode = function decode(reader, length, error) { + FunnelSubReport.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.QuotaStatus(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.FunnelSubReport(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { case 1: { - message.consumed = reader.int32(); + if (!(message.dimensionHeaders && message.dimensionHeaders.length)) + message.dimensionHeaders = []; + message.dimensionHeaders.push($root.google.analytics.data.v1alpha.DimensionHeader.decode(reader, reader.uint32())); break; } case 2: { - message.remaining = reader.int32(); + if (!(message.metricHeaders && message.metricHeaders.length)) + message.metricHeaders = []; + message.metricHeaders.push($root.google.analytics.data.v1alpha.MetricHeader.decode(reader, reader.uint32())); + break; + } + case 3: { + if (!(message.rows && message.rows.length)) + message.rows = []; + message.rows.push($root.google.analytics.data.v1alpha.Row.decode(reader, reader.uint32())); + break; + } + case 4: { + message.metadata = $root.google.analytics.data.v1alpha.FunnelResponseMetadata.decode(reader, reader.uint32()); break; } default: @@ -31837,132 +34897,205 @@ }; /** - * Decodes a QuotaStatus message from the specified reader or buffer, length delimited. + * Decodes a FunnelSubReport message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.QuotaStatus + * @memberof google.analytics.data.v1alpha.FunnelSubReport * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.QuotaStatus} QuotaStatus + * @returns {google.analytics.data.v1alpha.FunnelSubReport} FunnelSubReport * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - QuotaStatus.decodeDelimited = function decodeDelimited(reader) { + FunnelSubReport.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a QuotaStatus message. + * Verifies a FunnelSubReport message. * @function verify - * @memberof google.analytics.data.v1alpha.QuotaStatus + * @memberof google.analytics.data.v1alpha.FunnelSubReport * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - QuotaStatus.verify = function verify(message) { + FunnelSubReport.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.consumed != null && message.hasOwnProperty("consumed")) - if (!$util.isInteger(message.consumed)) - return "consumed: integer expected"; - if (message.remaining != null && message.hasOwnProperty("remaining")) - if (!$util.isInteger(message.remaining)) - return "remaining: integer expected"; + if (message.dimensionHeaders != null && message.hasOwnProperty("dimensionHeaders")) { + if (!Array.isArray(message.dimensionHeaders)) + return "dimensionHeaders: array expected"; + for (var i = 0; i < message.dimensionHeaders.length; ++i) { + var error = $root.google.analytics.data.v1alpha.DimensionHeader.verify(message.dimensionHeaders[i]); + if (error) + return "dimensionHeaders." + error; + } + } + if (message.metricHeaders != null && message.hasOwnProperty("metricHeaders")) { + if (!Array.isArray(message.metricHeaders)) + return "metricHeaders: array expected"; + for (var i = 0; i < message.metricHeaders.length; ++i) { + var error = $root.google.analytics.data.v1alpha.MetricHeader.verify(message.metricHeaders[i]); + if (error) + return "metricHeaders." + error; + } + } + 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.analytics.data.v1alpha.Row.verify(message.rows[i]); + if (error) + return "rows." + error; + } + } + if (message.metadata != null && message.hasOwnProperty("metadata")) { + var error = $root.google.analytics.data.v1alpha.FunnelResponseMetadata.verify(message.metadata); + if (error) + return "metadata." + error; + } return null; }; /** - * Creates a QuotaStatus message from a plain object. Also converts values to their respective internal types. + * Creates a FunnelSubReport message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.QuotaStatus + * @memberof google.analytics.data.v1alpha.FunnelSubReport * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.QuotaStatus} QuotaStatus + * @returns {google.analytics.data.v1alpha.FunnelSubReport} FunnelSubReport */ - QuotaStatus.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.QuotaStatus) + FunnelSubReport.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.FunnelSubReport) return object; - var message = new $root.google.analytics.data.v1alpha.QuotaStatus(); - if (object.consumed != null) - message.consumed = object.consumed | 0; - if (object.remaining != null) - message.remaining = object.remaining | 0; + var message = new $root.google.analytics.data.v1alpha.FunnelSubReport(); + if (object.dimensionHeaders) { + if (!Array.isArray(object.dimensionHeaders)) + throw TypeError(".google.analytics.data.v1alpha.FunnelSubReport.dimensionHeaders: array expected"); + message.dimensionHeaders = []; + for (var i = 0; i < object.dimensionHeaders.length; ++i) { + if (typeof object.dimensionHeaders[i] !== "object") + throw TypeError(".google.analytics.data.v1alpha.FunnelSubReport.dimensionHeaders: object expected"); + message.dimensionHeaders[i] = $root.google.analytics.data.v1alpha.DimensionHeader.fromObject(object.dimensionHeaders[i]); + } + } + if (object.metricHeaders) { + if (!Array.isArray(object.metricHeaders)) + throw TypeError(".google.analytics.data.v1alpha.FunnelSubReport.metricHeaders: array expected"); + message.metricHeaders = []; + for (var i = 0; i < object.metricHeaders.length; ++i) { + if (typeof object.metricHeaders[i] !== "object") + throw TypeError(".google.analytics.data.v1alpha.FunnelSubReport.metricHeaders: object expected"); + message.metricHeaders[i] = $root.google.analytics.data.v1alpha.MetricHeader.fromObject(object.metricHeaders[i]); + } + } + if (object.rows) { + if (!Array.isArray(object.rows)) + throw TypeError(".google.analytics.data.v1alpha.FunnelSubReport.rows: array expected"); + message.rows = []; + for (var i = 0; i < object.rows.length; ++i) { + if (typeof object.rows[i] !== "object") + throw TypeError(".google.analytics.data.v1alpha.FunnelSubReport.rows: object expected"); + message.rows[i] = $root.google.analytics.data.v1alpha.Row.fromObject(object.rows[i]); + } + } + if (object.metadata != null) { + if (typeof object.metadata !== "object") + throw TypeError(".google.analytics.data.v1alpha.FunnelSubReport.metadata: object expected"); + message.metadata = $root.google.analytics.data.v1alpha.FunnelResponseMetadata.fromObject(object.metadata); + } return message; }; /** - * Creates a plain object from a QuotaStatus message. Also converts values to other types if specified. + * Creates a plain object from a FunnelSubReport message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.QuotaStatus + * @memberof google.analytics.data.v1alpha.FunnelSubReport * @static - * @param {google.analytics.data.v1alpha.QuotaStatus} message QuotaStatus + * @param {google.analytics.data.v1alpha.FunnelSubReport} message FunnelSubReport * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - QuotaStatus.toObject = function toObject(message, options) { + FunnelSubReport.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.defaults) { - object.consumed = 0; - object.remaining = 0; + if (options.arrays || options.defaults) { + object.dimensionHeaders = []; + object.metricHeaders = []; + object.rows = []; } - if (message.consumed != null && message.hasOwnProperty("consumed")) - object.consumed = message.consumed; - if (message.remaining != null && message.hasOwnProperty("remaining")) - object.remaining = message.remaining; + if (options.defaults) + object.metadata = null; + if (message.dimensionHeaders && message.dimensionHeaders.length) { + object.dimensionHeaders = []; + for (var j = 0; j < message.dimensionHeaders.length; ++j) + object.dimensionHeaders[j] = $root.google.analytics.data.v1alpha.DimensionHeader.toObject(message.dimensionHeaders[j], options); + } + if (message.metricHeaders && message.metricHeaders.length) { + object.metricHeaders = []; + for (var j = 0; j < message.metricHeaders.length; ++j) + object.metricHeaders[j] = $root.google.analytics.data.v1alpha.MetricHeader.toObject(message.metricHeaders[j], options); + } + if (message.rows && message.rows.length) { + object.rows = []; + for (var j = 0; j < message.rows.length; ++j) + object.rows[j] = $root.google.analytics.data.v1alpha.Row.toObject(message.rows[j], options); + } + if (message.metadata != null && message.hasOwnProperty("metadata")) + object.metadata = $root.google.analytics.data.v1alpha.FunnelResponseMetadata.toObject(message.metadata, options); return object; }; /** - * Converts this QuotaStatus to JSON. + * Converts this FunnelSubReport to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.QuotaStatus + * @memberof google.analytics.data.v1alpha.FunnelSubReport * @instance * @returns {Object.} JSON object */ - QuotaStatus.prototype.toJSON = function toJSON() { + FunnelSubReport.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for QuotaStatus + * Gets the default type url for FunnelSubReport * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.QuotaStatus + * @memberof google.analytics.data.v1alpha.FunnelSubReport * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - QuotaStatus.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + FunnelSubReport.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.analytics.data.v1alpha.QuotaStatus"; + return typeUrlPrefix + "/google.analytics.data.v1alpha.FunnelSubReport"; }; - return QuotaStatus; + return FunnelSubReport; })(); - v1alpha.FunnelBreakdown = (function() { + v1alpha.UserSegment = (function() { /** - * Properties of a FunnelBreakdown. + * Properties of a UserSegment. * @memberof google.analytics.data.v1alpha - * @interface IFunnelBreakdown - * @property {google.analytics.data.v1alpha.IDimension|null} [breakdownDimension] FunnelBreakdown breakdownDimension - * @property {number|Long|null} [limit] FunnelBreakdown limit + * @interface IUserSegment + * @property {google.analytics.data.v1alpha.IUserSegmentCriteria|null} [userInclusionCriteria] UserSegment userInclusionCriteria + * @property {google.analytics.data.v1alpha.IUserSegmentExclusion|null} [exclusion] UserSegment exclusion */ /** - * Constructs a new FunnelBreakdown. + * Constructs a new UserSegment. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a FunnelBreakdown. - * @implements IFunnelBreakdown + * @classdesc Represents a UserSegment. + * @implements IUserSegment * @constructor - * @param {google.analytics.data.v1alpha.IFunnelBreakdown=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IUserSegment=} [properties] Properties to set */ - function FunnelBreakdown(properties) { + function UserSegment(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -31970,100 +35103,91 @@ } /** - * FunnelBreakdown breakdownDimension. - * @member {google.analytics.data.v1alpha.IDimension|null|undefined} breakdownDimension - * @memberof google.analytics.data.v1alpha.FunnelBreakdown + * UserSegment userInclusionCriteria. + * @member {google.analytics.data.v1alpha.IUserSegmentCriteria|null|undefined} userInclusionCriteria + * @memberof google.analytics.data.v1alpha.UserSegment * @instance */ - FunnelBreakdown.prototype.breakdownDimension = null; + UserSegment.prototype.userInclusionCriteria = null; - /** - * FunnelBreakdown limit. - * @member {number|Long|null|undefined} limit - * @memberof google.analytics.data.v1alpha.FunnelBreakdown + /** + * UserSegment exclusion. + * @member {google.analytics.data.v1alpha.IUserSegmentExclusion|null|undefined} exclusion + * @memberof google.analytics.data.v1alpha.UserSegment * @instance */ - FunnelBreakdown.prototype.limit = null; - - // OneOf field names bound to virtual getters and setters - var $oneOfFields; - - // Virtual OneOf for proto3 optional field - Object.defineProperty(FunnelBreakdown.prototype, "_limit", { - get: $util.oneOfGetter($oneOfFields = ["limit"]), - set: $util.oneOfSetter($oneOfFields) - }); + UserSegment.prototype.exclusion = null; /** - * Creates a new FunnelBreakdown instance using the specified properties. + * Creates a new UserSegment instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.FunnelBreakdown + * @memberof google.analytics.data.v1alpha.UserSegment * @static - * @param {google.analytics.data.v1alpha.IFunnelBreakdown=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.FunnelBreakdown} FunnelBreakdown instance + * @param {google.analytics.data.v1alpha.IUserSegment=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.UserSegment} UserSegment instance */ - FunnelBreakdown.create = function create(properties) { - return new FunnelBreakdown(properties); + UserSegment.create = function create(properties) { + return new UserSegment(properties); }; /** - * Encodes the specified FunnelBreakdown message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelBreakdown.verify|verify} messages. + * Encodes the specified UserSegment message. Does not implicitly {@link google.analytics.data.v1alpha.UserSegment.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.FunnelBreakdown + * @memberof google.analytics.data.v1alpha.UserSegment * @static - * @param {google.analytics.data.v1alpha.IFunnelBreakdown} message FunnelBreakdown message or plain object to encode + * @param {google.analytics.data.v1alpha.IUserSegment} message UserSegment message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - FunnelBreakdown.encode = function encode(message, writer) { + UserSegment.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.breakdownDimension != null && Object.hasOwnProperty.call(message, "breakdownDimension")) - $root.google.analytics.data.v1alpha.Dimension.encode(message.breakdownDimension, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.limit != null && Object.hasOwnProperty.call(message, "limit")) - writer.uint32(/* id 2, wireType 0 =*/16).int64(message.limit); + if (message.userInclusionCriteria != null && Object.hasOwnProperty.call(message, "userInclusionCriteria")) + $root.google.analytics.data.v1alpha.UserSegmentCriteria.encode(message.userInclusionCriteria, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.exclusion != null && Object.hasOwnProperty.call(message, "exclusion")) + $root.google.analytics.data.v1alpha.UserSegmentExclusion.encode(message.exclusion, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); return writer; }; /** - * Encodes the specified FunnelBreakdown message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelBreakdown.verify|verify} messages. + * Encodes the specified UserSegment message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.UserSegment.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.FunnelBreakdown + * @memberof google.analytics.data.v1alpha.UserSegment * @static - * @param {google.analytics.data.v1alpha.IFunnelBreakdown} message FunnelBreakdown message or plain object to encode + * @param {google.analytics.data.v1alpha.IUserSegment} message UserSegment message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - FunnelBreakdown.encodeDelimited = function encodeDelimited(message, writer) { + UserSegment.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a FunnelBreakdown message from the specified reader or buffer. + * Decodes a UserSegment message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.FunnelBreakdown + * @memberof google.analytics.data.v1alpha.UserSegment * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.FunnelBreakdown} FunnelBreakdown + * @returns {google.analytics.data.v1alpha.UserSegment} UserSegment * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - FunnelBreakdown.decode = function decode(reader, length, error) { + UserSegment.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.FunnelBreakdown(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.UserSegment(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { case 1: { - message.breakdownDimension = $root.google.analytics.data.v1alpha.Dimension.decode(reader, reader.uint32()); + message.userInclusionCriteria = $root.google.analytics.data.v1alpha.UserSegmentCriteria.decode(reader, reader.uint32()); break; } case 2: { - message.limit = reader.int64(); + message.exclusion = $root.google.analytics.data.v1alpha.UserSegmentExclusion.decode(reader, reader.uint32()); break; } default: @@ -32075,151 +35199,144 @@ }; /** - * Decodes a FunnelBreakdown message from the specified reader or buffer, length delimited. + * Decodes a UserSegment message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.FunnelBreakdown + * @memberof google.analytics.data.v1alpha.UserSegment * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.FunnelBreakdown} FunnelBreakdown + * @returns {google.analytics.data.v1alpha.UserSegment} UserSegment * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - FunnelBreakdown.decodeDelimited = function decodeDelimited(reader) { + UserSegment.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a FunnelBreakdown message. + * Verifies a UserSegment message. * @function verify - * @memberof google.analytics.data.v1alpha.FunnelBreakdown + * @memberof google.analytics.data.v1alpha.UserSegment * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - FunnelBreakdown.verify = function verify(message) { + UserSegment.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - var properties = {}; - if (message.breakdownDimension != null && message.hasOwnProperty("breakdownDimension")) { - var error = $root.google.analytics.data.v1alpha.Dimension.verify(message.breakdownDimension); + if (message.userInclusionCriteria != null && message.hasOwnProperty("userInclusionCriteria")) { + var error = $root.google.analytics.data.v1alpha.UserSegmentCriteria.verify(message.userInclusionCriteria); if (error) - return "breakdownDimension." + error; + return "userInclusionCriteria." + error; } - if (message.limit != null && message.hasOwnProperty("limit")) { - properties._limit = 1; - if (!$util.isInteger(message.limit) && !(message.limit && $util.isInteger(message.limit.low) && $util.isInteger(message.limit.high))) - return "limit: integer|Long expected"; + if (message.exclusion != null && message.hasOwnProperty("exclusion")) { + var error = $root.google.analytics.data.v1alpha.UserSegmentExclusion.verify(message.exclusion); + if (error) + return "exclusion." + error; } return null; }; /** - * Creates a FunnelBreakdown message from a plain object. Also converts values to their respective internal types. + * Creates a UserSegment message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.FunnelBreakdown + * @memberof google.analytics.data.v1alpha.UserSegment * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.FunnelBreakdown} FunnelBreakdown + * @returns {google.analytics.data.v1alpha.UserSegment} UserSegment */ - FunnelBreakdown.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.FunnelBreakdown) + UserSegment.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.UserSegment) return object; - var message = new $root.google.analytics.data.v1alpha.FunnelBreakdown(); - if (object.breakdownDimension != null) { - if (typeof object.breakdownDimension !== "object") - throw TypeError(".google.analytics.data.v1alpha.FunnelBreakdown.breakdownDimension: object expected"); - message.breakdownDimension = $root.google.analytics.data.v1alpha.Dimension.fromObject(object.breakdownDimension); + var message = new $root.google.analytics.data.v1alpha.UserSegment(); + if (object.userInclusionCriteria != null) { + if (typeof object.userInclusionCriteria !== "object") + throw TypeError(".google.analytics.data.v1alpha.UserSegment.userInclusionCriteria: object expected"); + message.userInclusionCriteria = $root.google.analytics.data.v1alpha.UserSegmentCriteria.fromObject(object.userInclusionCriteria); + } + if (object.exclusion != null) { + if (typeof object.exclusion !== "object") + throw TypeError(".google.analytics.data.v1alpha.UserSegment.exclusion: object expected"); + message.exclusion = $root.google.analytics.data.v1alpha.UserSegmentExclusion.fromObject(object.exclusion); } - if (object.limit != null) - if ($util.Long) - (message.limit = $util.Long.fromValue(object.limit)).unsigned = false; - else if (typeof object.limit === "string") - message.limit = parseInt(object.limit, 10); - else if (typeof object.limit === "number") - message.limit = object.limit; - else if (typeof object.limit === "object") - message.limit = new $util.LongBits(object.limit.low >>> 0, object.limit.high >>> 0).toNumber(); return message; }; /** - * Creates a plain object from a FunnelBreakdown message. Also converts values to other types if specified. + * Creates a plain object from a UserSegment message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.FunnelBreakdown + * @memberof google.analytics.data.v1alpha.UserSegment * @static - * @param {google.analytics.data.v1alpha.FunnelBreakdown} message FunnelBreakdown + * @param {google.analytics.data.v1alpha.UserSegment} message UserSegment * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - FunnelBreakdown.toObject = function toObject(message, options) { + UserSegment.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.defaults) - object.breakdownDimension = null; - if (message.breakdownDimension != null && message.hasOwnProperty("breakdownDimension")) - object.breakdownDimension = $root.google.analytics.data.v1alpha.Dimension.toObject(message.breakdownDimension, options); - if (message.limit != null && message.hasOwnProperty("limit")) { - if (typeof message.limit === "number") - object.limit = options.longs === String ? String(message.limit) : message.limit; - else - object.limit = options.longs === String ? $util.Long.prototype.toString.call(message.limit) : options.longs === Number ? new $util.LongBits(message.limit.low >>> 0, message.limit.high >>> 0).toNumber() : message.limit; - if (options.oneofs) - object._limit = "limit"; + if (options.defaults) { + object.userInclusionCriteria = null; + object.exclusion = null; } + if (message.userInclusionCriteria != null && message.hasOwnProperty("userInclusionCriteria")) + object.userInclusionCriteria = $root.google.analytics.data.v1alpha.UserSegmentCriteria.toObject(message.userInclusionCriteria, options); + if (message.exclusion != null && message.hasOwnProperty("exclusion")) + object.exclusion = $root.google.analytics.data.v1alpha.UserSegmentExclusion.toObject(message.exclusion, options); return object; }; /** - * Converts this FunnelBreakdown to JSON. + * Converts this UserSegment to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.FunnelBreakdown + * @memberof google.analytics.data.v1alpha.UserSegment * @instance * @returns {Object.} JSON object */ - FunnelBreakdown.prototype.toJSON = function toJSON() { + UserSegment.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for FunnelBreakdown + * Gets the default type url for UserSegment * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.FunnelBreakdown + * @memberof google.analytics.data.v1alpha.UserSegment * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - FunnelBreakdown.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + UserSegment.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.analytics.data.v1alpha.FunnelBreakdown"; + return typeUrlPrefix + "/google.analytics.data.v1alpha.UserSegment"; }; - return FunnelBreakdown; + return UserSegment; })(); - v1alpha.FunnelNextAction = (function() { + v1alpha.UserSegmentCriteria = (function() { /** - * Properties of a FunnelNextAction. + * Properties of a UserSegmentCriteria. * @memberof google.analytics.data.v1alpha - * @interface IFunnelNextAction - * @property {google.analytics.data.v1alpha.IDimension|null} [nextActionDimension] FunnelNextAction nextActionDimension - * @property {number|Long|null} [limit] FunnelNextAction limit + * @interface IUserSegmentCriteria + * @property {Array.|null} [andConditionGroups] UserSegmentCriteria andConditionGroups + * @property {Array.|null} [andSequenceGroups] UserSegmentCriteria andSequenceGroups */ /** - * Constructs a new FunnelNextAction. + * Constructs a new UserSegmentCriteria. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a FunnelNextAction. - * @implements IFunnelNextAction + * @classdesc Represents a UserSegmentCriteria. + * @implements IUserSegmentCriteria * @constructor - * @param {google.analytics.data.v1alpha.IFunnelNextAction=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IUserSegmentCriteria=} [properties] Properties to set */ - function FunnelNextAction(properties) { + function UserSegmentCriteria(properties) { + this.andConditionGroups = []; + this.andSequenceGroups = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -32227,100 +35344,97 @@ } /** - * FunnelNextAction nextActionDimension. - * @member {google.analytics.data.v1alpha.IDimension|null|undefined} nextActionDimension - * @memberof google.analytics.data.v1alpha.FunnelNextAction + * UserSegmentCriteria andConditionGroups. + * @member {Array.} andConditionGroups + * @memberof google.analytics.data.v1alpha.UserSegmentCriteria * @instance */ - FunnelNextAction.prototype.nextActionDimension = null; + UserSegmentCriteria.prototype.andConditionGroups = $util.emptyArray; /** - * FunnelNextAction limit. - * @member {number|Long|null|undefined} limit - * @memberof google.analytics.data.v1alpha.FunnelNextAction + * UserSegmentCriteria andSequenceGroups. + * @member {Array.} andSequenceGroups + * @memberof google.analytics.data.v1alpha.UserSegmentCriteria * @instance */ - FunnelNextAction.prototype.limit = null; - - // OneOf field names bound to virtual getters and setters - var $oneOfFields; - - // Virtual OneOf for proto3 optional field - Object.defineProperty(FunnelNextAction.prototype, "_limit", { - get: $util.oneOfGetter($oneOfFields = ["limit"]), - set: $util.oneOfSetter($oneOfFields) - }); + UserSegmentCriteria.prototype.andSequenceGroups = $util.emptyArray; /** - * Creates a new FunnelNextAction instance using the specified properties. + * Creates a new UserSegmentCriteria instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.FunnelNextAction + * @memberof google.analytics.data.v1alpha.UserSegmentCriteria * @static - * @param {google.analytics.data.v1alpha.IFunnelNextAction=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.FunnelNextAction} FunnelNextAction instance + * @param {google.analytics.data.v1alpha.IUserSegmentCriteria=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.UserSegmentCriteria} UserSegmentCriteria instance */ - FunnelNextAction.create = function create(properties) { - return new FunnelNextAction(properties); + UserSegmentCriteria.create = function create(properties) { + return new UserSegmentCriteria(properties); }; /** - * Encodes the specified FunnelNextAction message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelNextAction.verify|verify} messages. + * Encodes the specified UserSegmentCriteria message. Does not implicitly {@link google.analytics.data.v1alpha.UserSegmentCriteria.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.FunnelNextAction + * @memberof google.analytics.data.v1alpha.UserSegmentCriteria * @static - * @param {google.analytics.data.v1alpha.IFunnelNextAction} message FunnelNextAction message or plain object to encode + * @param {google.analytics.data.v1alpha.IUserSegmentCriteria} message UserSegmentCriteria message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - FunnelNextAction.encode = function encode(message, writer) { + UserSegmentCriteria.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.nextActionDimension != null && Object.hasOwnProperty.call(message, "nextActionDimension")) - $root.google.analytics.data.v1alpha.Dimension.encode(message.nextActionDimension, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.limit != null && Object.hasOwnProperty.call(message, "limit")) - writer.uint32(/* id 2, wireType 0 =*/16).int64(message.limit); + if (message.andConditionGroups != null && message.andConditionGroups.length) + for (var i = 0; i < message.andConditionGroups.length; ++i) + $root.google.analytics.data.v1alpha.UserSegmentConditionGroup.encode(message.andConditionGroups[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.andSequenceGroups != null && message.andSequenceGroups.length) + for (var i = 0; i < message.andSequenceGroups.length; ++i) + $root.google.analytics.data.v1alpha.UserSegmentSequenceGroup.encode(message.andSequenceGroups[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); return writer; }; /** - * Encodes the specified FunnelNextAction message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelNextAction.verify|verify} messages. + * Encodes the specified UserSegmentCriteria message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.UserSegmentCriteria.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.FunnelNextAction + * @memberof google.analytics.data.v1alpha.UserSegmentCriteria * @static - * @param {google.analytics.data.v1alpha.IFunnelNextAction} message FunnelNextAction message or plain object to encode + * @param {google.analytics.data.v1alpha.IUserSegmentCriteria} message UserSegmentCriteria message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - FunnelNextAction.encodeDelimited = function encodeDelimited(message, writer) { + UserSegmentCriteria.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a FunnelNextAction message from the specified reader or buffer. + * Decodes a UserSegmentCriteria message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.FunnelNextAction + * @memberof google.analytics.data.v1alpha.UserSegmentCriteria * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.FunnelNextAction} FunnelNextAction + * @returns {google.analytics.data.v1alpha.UserSegmentCriteria} UserSegmentCriteria * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - FunnelNextAction.decode = function decode(reader, length, error) { + UserSegmentCriteria.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.FunnelNextAction(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.UserSegmentCriteria(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { case 1: { - message.nextActionDimension = $root.google.analytics.data.v1alpha.Dimension.decode(reader, reader.uint32()); + if (!(message.andConditionGroups && message.andConditionGroups.length)) + message.andConditionGroups = []; + message.andConditionGroups.push($root.google.analytics.data.v1alpha.UserSegmentConditionGroup.decode(reader, reader.uint32())); break; } case 2: { - message.limit = reader.int64(); + if (!(message.andSequenceGroups && message.andSequenceGroups.length)) + message.andSequenceGroups = []; + message.andSequenceGroups.push($root.google.analytics.data.v1alpha.UserSegmentSequenceGroup.decode(reader, reader.uint32())); break; } default: @@ -32332,152 +35446,184 @@ }; /** - * Decodes a FunnelNextAction message from the specified reader or buffer, length delimited. + * Decodes a UserSegmentCriteria message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.FunnelNextAction + * @memberof google.analytics.data.v1alpha.UserSegmentCriteria * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.FunnelNextAction} FunnelNextAction + * @returns {google.analytics.data.v1alpha.UserSegmentCriteria} UserSegmentCriteria * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - FunnelNextAction.decodeDelimited = function decodeDelimited(reader) { + UserSegmentCriteria.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a FunnelNextAction message. + * Verifies a UserSegmentCriteria message. * @function verify - * @memberof google.analytics.data.v1alpha.FunnelNextAction + * @memberof google.analytics.data.v1alpha.UserSegmentCriteria * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - FunnelNextAction.verify = function verify(message) { + UserSegmentCriteria.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - var properties = {}; - if (message.nextActionDimension != null && message.hasOwnProperty("nextActionDimension")) { - var error = $root.google.analytics.data.v1alpha.Dimension.verify(message.nextActionDimension); - if (error) - return "nextActionDimension." + error; + if (message.andConditionGroups != null && message.hasOwnProperty("andConditionGroups")) { + if (!Array.isArray(message.andConditionGroups)) + return "andConditionGroups: array expected"; + for (var i = 0; i < message.andConditionGroups.length; ++i) { + var error = $root.google.analytics.data.v1alpha.UserSegmentConditionGroup.verify(message.andConditionGroups[i]); + if (error) + return "andConditionGroups." + error; + } } - if (message.limit != null && message.hasOwnProperty("limit")) { - properties._limit = 1; - if (!$util.isInteger(message.limit) && !(message.limit && $util.isInteger(message.limit.low) && $util.isInteger(message.limit.high))) - return "limit: integer|Long expected"; + if (message.andSequenceGroups != null && message.hasOwnProperty("andSequenceGroups")) { + if (!Array.isArray(message.andSequenceGroups)) + return "andSequenceGroups: array expected"; + for (var i = 0; i < message.andSequenceGroups.length; ++i) { + var error = $root.google.analytics.data.v1alpha.UserSegmentSequenceGroup.verify(message.andSequenceGroups[i]); + if (error) + return "andSequenceGroups." + error; + } } return null; }; /** - * Creates a FunnelNextAction message from a plain object. Also converts values to their respective internal types. + * Creates a UserSegmentCriteria message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.FunnelNextAction + * @memberof google.analytics.data.v1alpha.UserSegmentCriteria * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.FunnelNextAction} FunnelNextAction + * @returns {google.analytics.data.v1alpha.UserSegmentCriteria} UserSegmentCriteria */ - FunnelNextAction.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.FunnelNextAction) + UserSegmentCriteria.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.UserSegmentCriteria) return object; - var message = new $root.google.analytics.data.v1alpha.FunnelNextAction(); - if (object.nextActionDimension != null) { - if (typeof object.nextActionDimension !== "object") - throw TypeError(".google.analytics.data.v1alpha.FunnelNextAction.nextActionDimension: object expected"); - message.nextActionDimension = $root.google.analytics.data.v1alpha.Dimension.fromObject(object.nextActionDimension); + var message = new $root.google.analytics.data.v1alpha.UserSegmentCriteria(); + if (object.andConditionGroups) { + if (!Array.isArray(object.andConditionGroups)) + throw TypeError(".google.analytics.data.v1alpha.UserSegmentCriteria.andConditionGroups: array expected"); + message.andConditionGroups = []; + for (var i = 0; i < object.andConditionGroups.length; ++i) { + if (typeof object.andConditionGroups[i] !== "object") + throw TypeError(".google.analytics.data.v1alpha.UserSegmentCriteria.andConditionGroups: object expected"); + message.andConditionGroups[i] = $root.google.analytics.data.v1alpha.UserSegmentConditionGroup.fromObject(object.andConditionGroups[i]); + } + } + if (object.andSequenceGroups) { + if (!Array.isArray(object.andSequenceGroups)) + throw TypeError(".google.analytics.data.v1alpha.UserSegmentCriteria.andSequenceGroups: array expected"); + message.andSequenceGroups = []; + for (var i = 0; i < object.andSequenceGroups.length; ++i) { + if (typeof object.andSequenceGroups[i] !== "object") + throw TypeError(".google.analytics.data.v1alpha.UserSegmentCriteria.andSequenceGroups: object expected"); + message.andSequenceGroups[i] = $root.google.analytics.data.v1alpha.UserSegmentSequenceGroup.fromObject(object.andSequenceGroups[i]); + } } - if (object.limit != null) - if ($util.Long) - (message.limit = $util.Long.fromValue(object.limit)).unsigned = false; - else if (typeof object.limit === "string") - message.limit = parseInt(object.limit, 10); - else if (typeof object.limit === "number") - message.limit = object.limit; - else if (typeof object.limit === "object") - message.limit = new $util.LongBits(object.limit.low >>> 0, object.limit.high >>> 0).toNumber(); return message; }; /** - * Creates a plain object from a FunnelNextAction message. Also converts values to other types if specified. + * Creates a plain object from a UserSegmentCriteria message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.FunnelNextAction + * @memberof google.analytics.data.v1alpha.UserSegmentCriteria * @static - * @param {google.analytics.data.v1alpha.FunnelNextAction} message FunnelNextAction + * @param {google.analytics.data.v1alpha.UserSegmentCriteria} message UserSegmentCriteria * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - FunnelNextAction.toObject = function toObject(message, options) { + UserSegmentCriteria.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.defaults) - object.nextActionDimension = null; - if (message.nextActionDimension != null && message.hasOwnProperty("nextActionDimension")) - object.nextActionDimension = $root.google.analytics.data.v1alpha.Dimension.toObject(message.nextActionDimension, options); - if (message.limit != null && message.hasOwnProperty("limit")) { - if (typeof message.limit === "number") - object.limit = options.longs === String ? String(message.limit) : message.limit; - else - object.limit = options.longs === String ? $util.Long.prototype.toString.call(message.limit) : options.longs === Number ? new $util.LongBits(message.limit.low >>> 0, message.limit.high >>> 0).toNumber() : message.limit; - if (options.oneofs) - object._limit = "limit"; + if (options.arrays || options.defaults) { + object.andConditionGroups = []; + object.andSequenceGroups = []; + } + if (message.andConditionGroups && message.andConditionGroups.length) { + object.andConditionGroups = []; + for (var j = 0; j < message.andConditionGroups.length; ++j) + object.andConditionGroups[j] = $root.google.analytics.data.v1alpha.UserSegmentConditionGroup.toObject(message.andConditionGroups[j], options); + } + if (message.andSequenceGroups && message.andSequenceGroups.length) { + object.andSequenceGroups = []; + for (var j = 0; j < message.andSequenceGroups.length; ++j) + object.andSequenceGroups[j] = $root.google.analytics.data.v1alpha.UserSegmentSequenceGroup.toObject(message.andSequenceGroups[j], options); } return object; }; /** - * Converts this FunnelNextAction to JSON. + * Converts this UserSegmentCriteria to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.FunnelNextAction + * @memberof google.analytics.data.v1alpha.UserSegmentCriteria * @instance * @returns {Object.} JSON object */ - FunnelNextAction.prototype.toJSON = function toJSON() { + UserSegmentCriteria.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for FunnelNextAction + * Gets the default type url for UserSegmentCriteria * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.FunnelNextAction + * @memberof google.analytics.data.v1alpha.UserSegmentCriteria * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - FunnelNextAction.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + UserSegmentCriteria.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.analytics.data.v1alpha.FunnelNextAction"; + return typeUrlPrefix + "/google.analytics.data.v1alpha.UserSegmentCriteria"; }; - return FunnelNextAction; + return UserSegmentCriteria; })(); - v1alpha.Funnel = (function() { + /** + * UserCriteriaScoping enum. + * @name google.analytics.data.v1alpha.UserCriteriaScoping + * @enum {number} + * @property {number} USER_CRITERIA_SCOPING_UNSPECIFIED=0 USER_CRITERIA_SCOPING_UNSPECIFIED value + * @property {number} USER_CRITERIA_WITHIN_SAME_EVENT=1 USER_CRITERIA_WITHIN_SAME_EVENT value + * @property {number} USER_CRITERIA_WITHIN_SAME_SESSION=2 USER_CRITERIA_WITHIN_SAME_SESSION value + * @property {number} USER_CRITERIA_ACROSS_ALL_SESSIONS=3 USER_CRITERIA_ACROSS_ALL_SESSIONS value + */ + v1alpha.UserCriteriaScoping = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "USER_CRITERIA_SCOPING_UNSPECIFIED"] = 0; + values[valuesById[1] = "USER_CRITERIA_WITHIN_SAME_EVENT"] = 1; + values[valuesById[2] = "USER_CRITERIA_WITHIN_SAME_SESSION"] = 2; + values[valuesById[3] = "USER_CRITERIA_ACROSS_ALL_SESSIONS"] = 3; + return values; + })(); + + v1alpha.UserSegmentConditionGroup = (function() { /** - * Properties of a Funnel. + * Properties of a UserSegmentConditionGroup. * @memberof google.analytics.data.v1alpha - * @interface IFunnel - * @property {boolean|null} [isOpenFunnel] Funnel isOpenFunnel - * @property {Array.|null} [steps] Funnel steps + * @interface IUserSegmentConditionGroup + * @property {google.analytics.data.v1alpha.UserCriteriaScoping|null} [conditionScoping] UserSegmentConditionGroup conditionScoping + * @property {google.analytics.data.v1alpha.ISegmentFilterExpression|null} [segmentFilterExpression] UserSegmentConditionGroup segmentFilterExpression */ /** - * Constructs a new Funnel. + * Constructs a new UserSegmentConditionGroup. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a Funnel. - * @implements IFunnel + * @classdesc Represents a UserSegmentConditionGroup. + * @implements IUserSegmentConditionGroup * @constructor - * @param {google.analytics.data.v1alpha.IFunnel=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IUserSegmentConditionGroup=} [properties] Properties to set */ - function Funnel(properties) { - this.steps = []; + function UserSegmentConditionGroup(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -32485,94 +35631,91 @@ } /** - * Funnel isOpenFunnel. - * @member {boolean} isOpenFunnel - * @memberof google.analytics.data.v1alpha.Funnel + * UserSegmentConditionGroup conditionScoping. + * @member {google.analytics.data.v1alpha.UserCriteriaScoping} conditionScoping + * @memberof google.analytics.data.v1alpha.UserSegmentConditionGroup * @instance */ - Funnel.prototype.isOpenFunnel = false; + UserSegmentConditionGroup.prototype.conditionScoping = 0; /** - * Funnel steps. - * @member {Array.} steps - * @memberof google.analytics.data.v1alpha.Funnel + * UserSegmentConditionGroup segmentFilterExpression. + * @member {google.analytics.data.v1alpha.ISegmentFilterExpression|null|undefined} segmentFilterExpression + * @memberof google.analytics.data.v1alpha.UserSegmentConditionGroup * @instance */ - Funnel.prototype.steps = $util.emptyArray; + UserSegmentConditionGroup.prototype.segmentFilterExpression = null; /** - * Creates a new Funnel instance using the specified properties. + * Creates a new UserSegmentConditionGroup instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.Funnel + * @memberof google.analytics.data.v1alpha.UserSegmentConditionGroup * @static - * @param {google.analytics.data.v1alpha.IFunnel=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.Funnel} Funnel instance + * @param {google.analytics.data.v1alpha.IUserSegmentConditionGroup=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.UserSegmentConditionGroup} UserSegmentConditionGroup instance */ - Funnel.create = function create(properties) { - return new Funnel(properties); + UserSegmentConditionGroup.create = function create(properties) { + return new UserSegmentConditionGroup(properties); }; /** - * Encodes the specified Funnel message. Does not implicitly {@link google.analytics.data.v1alpha.Funnel.verify|verify} messages. + * Encodes the specified UserSegmentConditionGroup message. Does not implicitly {@link google.analytics.data.v1alpha.UserSegmentConditionGroup.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.Funnel + * @memberof google.analytics.data.v1alpha.UserSegmentConditionGroup * @static - * @param {google.analytics.data.v1alpha.IFunnel} message Funnel message or plain object to encode + * @param {google.analytics.data.v1alpha.IUserSegmentConditionGroup} message UserSegmentConditionGroup message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Funnel.encode = function encode(message, writer) { + UserSegmentConditionGroup.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.isOpenFunnel != null && Object.hasOwnProperty.call(message, "isOpenFunnel")) - writer.uint32(/* id 1, wireType 0 =*/8).bool(message.isOpenFunnel); - if (message.steps != null && message.steps.length) - for (var i = 0; i < message.steps.length; ++i) - $root.google.analytics.data.v1alpha.FunnelStep.encode(message.steps[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.conditionScoping != null && Object.hasOwnProperty.call(message, "conditionScoping")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.conditionScoping); + if (message.segmentFilterExpression != null && Object.hasOwnProperty.call(message, "segmentFilterExpression")) + $root.google.analytics.data.v1alpha.SegmentFilterExpression.encode(message.segmentFilterExpression, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); return writer; }; /** - * Encodes the specified Funnel message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.Funnel.verify|verify} messages. + * Encodes the specified UserSegmentConditionGroup message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.UserSegmentConditionGroup.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.Funnel + * @memberof google.analytics.data.v1alpha.UserSegmentConditionGroup * @static - * @param {google.analytics.data.v1alpha.IFunnel} message Funnel message or plain object to encode + * @param {google.analytics.data.v1alpha.IUserSegmentConditionGroup} message UserSegmentConditionGroup message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Funnel.encodeDelimited = function encodeDelimited(message, writer) { + UserSegmentConditionGroup.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a Funnel message from the specified reader or buffer. + * Decodes a UserSegmentConditionGroup message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.Funnel + * @memberof google.analytics.data.v1alpha.UserSegmentConditionGroup * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.Funnel} Funnel + * @returns {google.analytics.data.v1alpha.UserSegmentConditionGroup} UserSegmentConditionGroup * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Funnel.decode = function decode(reader, length, error) { + UserSegmentConditionGroup.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.Funnel(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.UserSegmentConditionGroup(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { case 1: { - message.isOpenFunnel = reader.bool(); + message.conditionScoping = reader.int32(); break; } - case 2: { - if (!(message.steps && message.steps.length)) - message.steps = []; - message.steps.push($root.google.analytics.data.v1alpha.FunnelStep.decode(reader, reader.uint32())); + case 2: { + message.segmentFilterExpression = $root.google.analytics.data.v1alpha.SegmentFilterExpression.decode(reader, reader.uint32()); break; } default: @@ -32584,151 +35727,168 @@ }; /** - * Decodes a Funnel message from the specified reader or buffer, length delimited. + * Decodes a UserSegmentConditionGroup message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.Funnel + * @memberof google.analytics.data.v1alpha.UserSegmentConditionGroup * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.Funnel} Funnel + * @returns {google.analytics.data.v1alpha.UserSegmentConditionGroup} UserSegmentConditionGroup * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Funnel.decodeDelimited = function decodeDelimited(reader) { + UserSegmentConditionGroup.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a Funnel message. + * Verifies a UserSegmentConditionGroup message. * @function verify - * @memberof google.analytics.data.v1alpha.Funnel + * @memberof google.analytics.data.v1alpha.UserSegmentConditionGroup * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Funnel.verify = function verify(message) { + UserSegmentConditionGroup.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.isOpenFunnel != null && message.hasOwnProperty("isOpenFunnel")) - if (typeof message.isOpenFunnel !== "boolean") - return "isOpenFunnel: boolean expected"; - if (message.steps != null && message.hasOwnProperty("steps")) { - if (!Array.isArray(message.steps)) - return "steps: array expected"; - for (var i = 0; i < message.steps.length; ++i) { - var error = $root.google.analytics.data.v1alpha.FunnelStep.verify(message.steps[i]); - if (error) - return "steps." + error; + if (message.conditionScoping != null && message.hasOwnProperty("conditionScoping")) + switch (message.conditionScoping) { + default: + return "conditionScoping: enum value expected"; + case 0: + case 1: + case 2: + case 3: + break; } + if (message.segmentFilterExpression != null && message.hasOwnProperty("segmentFilterExpression")) { + var error = $root.google.analytics.data.v1alpha.SegmentFilterExpression.verify(message.segmentFilterExpression); + if (error) + return "segmentFilterExpression." + error; } return null; }; /** - * Creates a Funnel message from a plain object. Also converts values to their respective internal types. + * Creates a UserSegmentConditionGroup message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.Funnel + * @memberof google.analytics.data.v1alpha.UserSegmentConditionGroup * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.Funnel} Funnel + * @returns {google.analytics.data.v1alpha.UserSegmentConditionGroup} UserSegmentConditionGroup */ - Funnel.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.Funnel) + UserSegmentConditionGroup.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.UserSegmentConditionGroup) return object; - var message = new $root.google.analytics.data.v1alpha.Funnel(); - if (object.isOpenFunnel != null) - message.isOpenFunnel = Boolean(object.isOpenFunnel); - if (object.steps) { - if (!Array.isArray(object.steps)) - throw TypeError(".google.analytics.data.v1alpha.Funnel.steps: array expected"); - message.steps = []; - for (var i = 0; i < object.steps.length; ++i) { - if (typeof object.steps[i] !== "object") - throw TypeError(".google.analytics.data.v1alpha.Funnel.steps: object expected"); - message.steps[i] = $root.google.analytics.data.v1alpha.FunnelStep.fromObject(object.steps[i]); + var message = new $root.google.analytics.data.v1alpha.UserSegmentConditionGroup(); + switch (object.conditionScoping) { + default: + if (typeof object.conditionScoping === "number") { + message.conditionScoping = object.conditionScoping; + break; } + break; + case "USER_CRITERIA_SCOPING_UNSPECIFIED": + case 0: + message.conditionScoping = 0; + break; + case "USER_CRITERIA_WITHIN_SAME_EVENT": + case 1: + message.conditionScoping = 1; + break; + case "USER_CRITERIA_WITHIN_SAME_SESSION": + case 2: + message.conditionScoping = 2; + break; + case "USER_CRITERIA_ACROSS_ALL_SESSIONS": + case 3: + message.conditionScoping = 3; + break; + } + if (object.segmentFilterExpression != null) { + if (typeof object.segmentFilterExpression !== "object") + throw TypeError(".google.analytics.data.v1alpha.UserSegmentConditionGroup.segmentFilterExpression: object expected"); + message.segmentFilterExpression = $root.google.analytics.data.v1alpha.SegmentFilterExpression.fromObject(object.segmentFilterExpression); } return message; }; /** - * Creates a plain object from a Funnel message. Also converts values to other types if specified. + * Creates a plain object from a UserSegmentConditionGroup message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.Funnel + * @memberof google.analytics.data.v1alpha.UserSegmentConditionGroup * @static - * @param {google.analytics.data.v1alpha.Funnel} message Funnel + * @param {google.analytics.data.v1alpha.UserSegmentConditionGroup} message UserSegmentConditionGroup * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - Funnel.toObject = function toObject(message, options) { + UserSegmentConditionGroup.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.arrays || options.defaults) - object.steps = []; - if (options.defaults) - object.isOpenFunnel = false; - if (message.isOpenFunnel != null && message.hasOwnProperty("isOpenFunnel")) - object.isOpenFunnel = message.isOpenFunnel; - if (message.steps && message.steps.length) { - object.steps = []; - for (var j = 0; j < message.steps.length; ++j) - object.steps[j] = $root.google.analytics.data.v1alpha.FunnelStep.toObject(message.steps[j], options); + if (options.defaults) { + object.conditionScoping = options.enums === String ? "USER_CRITERIA_SCOPING_UNSPECIFIED" : 0; + object.segmentFilterExpression = null; } + if (message.conditionScoping != null && message.hasOwnProperty("conditionScoping")) + object.conditionScoping = options.enums === String ? $root.google.analytics.data.v1alpha.UserCriteriaScoping[message.conditionScoping] === undefined ? message.conditionScoping : $root.google.analytics.data.v1alpha.UserCriteriaScoping[message.conditionScoping] : message.conditionScoping; + if (message.segmentFilterExpression != null && message.hasOwnProperty("segmentFilterExpression")) + object.segmentFilterExpression = $root.google.analytics.data.v1alpha.SegmentFilterExpression.toObject(message.segmentFilterExpression, options); return object; }; /** - * Converts this Funnel to JSON. + * Converts this UserSegmentConditionGroup to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.Funnel + * @memberof google.analytics.data.v1alpha.UserSegmentConditionGroup * @instance * @returns {Object.} JSON object */ - Funnel.prototype.toJSON = function toJSON() { + UserSegmentConditionGroup.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for Funnel + * Gets the default type url for UserSegmentConditionGroup * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.Funnel + * @memberof google.analytics.data.v1alpha.UserSegmentConditionGroup * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - Funnel.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + UserSegmentConditionGroup.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.analytics.data.v1alpha.Funnel"; + return typeUrlPrefix + "/google.analytics.data.v1alpha.UserSegmentConditionGroup"; }; - return Funnel; + return UserSegmentConditionGroup; })(); - v1alpha.FunnelStep = (function() { + v1alpha.UserSegmentSequenceGroup = (function() { /** - * Properties of a FunnelStep. + * Properties of a UserSegmentSequenceGroup. * @memberof google.analytics.data.v1alpha - * @interface IFunnelStep - * @property {string|null} [name] FunnelStep name - * @property {boolean|null} [isDirectlyFollowedBy] FunnelStep isDirectlyFollowedBy - * @property {google.protobuf.IDuration|null} [withinDurationFromPriorStep] FunnelStep withinDurationFromPriorStep - * @property {google.analytics.data.v1alpha.IFunnelFilterExpression|null} [filterExpression] FunnelStep filterExpression + * @interface IUserSegmentSequenceGroup + * @property {google.analytics.data.v1alpha.UserCriteriaScoping|null} [sequenceScoping] UserSegmentSequenceGroup sequenceScoping + * @property {google.protobuf.IDuration|null} [sequenceMaximumDuration] UserSegmentSequenceGroup sequenceMaximumDuration + * @property {Array.|null} [userSequenceSteps] UserSegmentSequenceGroup userSequenceSteps */ /** - * Constructs a new FunnelStep. + * Constructs a new UserSegmentSequenceGroup. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a FunnelStep. - * @implements IFunnelStep + * @classdesc Represents a UserSegmentSequenceGroup. + * @implements IUserSegmentSequenceGroup * @constructor - * @param {google.analytics.data.v1alpha.IFunnelStep=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IUserSegmentSequenceGroup=} [properties] Properties to set */ - function FunnelStep(properties) { + function UserSegmentSequenceGroup(properties) { + this.userSequenceSteps = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -32736,128 +35896,108 @@ } /** - * FunnelStep name. - * @member {string} name - * @memberof google.analytics.data.v1alpha.FunnelStep - * @instance - */ - FunnelStep.prototype.name = ""; - - /** - * FunnelStep isDirectlyFollowedBy. - * @member {boolean} isDirectlyFollowedBy - * @memberof google.analytics.data.v1alpha.FunnelStep + * UserSegmentSequenceGroup sequenceScoping. + * @member {google.analytics.data.v1alpha.UserCriteriaScoping} sequenceScoping + * @memberof google.analytics.data.v1alpha.UserSegmentSequenceGroup * @instance */ - FunnelStep.prototype.isDirectlyFollowedBy = false; + UserSegmentSequenceGroup.prototype.sequenceScoping = 0; /** - * FunnelStep withinDurationFromPriorStep. - * @member {google.protobuf.IDuration|null|undefined} withinDurationFromPriorStep - * @memberof google.analytics.data.v1alpha.FunnelStep + * UserSegmentSequenceGroup sequenceMaximumDuration. + * @member {google.protobuf.IDuration|null|undefined} sequenceMaximumDuration + * @memberof google.analytics.data.v1alpha.UserSegmentSequenceGroup * @instance */ - FunnelStep.prototype.withinDurationFromPriorStep = null; + UserSegmentSequenceGroup.prototype.sequenceMaximumDuration = null; /** - * FunnelStep filterExpression. - * @member {google.analytics.data.v1alpha.IFunnelFilterExpression|null|undefined} filterExpression - * @memberof google.analytics.data.v1alpha.FunnelStep + * UserSegmentSequenceGroup userSequenceSteps. + * @member {Array.} userSequenceSteps + * @memberof google.analytics.data.v1alpha.UserSegmentSequenceGroup * @instance */ - FunnelStep.prototype.filterExpression = null; - - // OneOf field names bound to virtual getters and setters - var $oneOfFields; - - // Virtual OneOf for proto3 optional field - Object.defineProperty(FunnelStep.prototype, "_withinDurationFromPriorStep", { - get: $util.oneOfGetter($oneOfFields = ["withinDurationFromPriorStep"]), - set: $util.oneOfSetter($oneOfFields) - }); + UserSegmentSequenceGroup.prototype.userSequenceSteps = $util.emptyArray; /** - * Creates a new FunnelStep instance using the specified properties. + * Creates a new UserSegmentSequenceGroup instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.FunnelStep + * @memberof google.analytics.data.v1alpha.UserSegmentSequenceGroup * @static - * @param {google.analytics.data.v1alpha.IFunnelStep=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.FunnelStep} FunnelStep instance + * @param {google.analytics.data.v1alpha.IUserSegmentSequenceGroup=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.UserSegmentSequenceGroup} UserSegmentSequenceGroup instance */ - FunnelStep.create = function create(properties) { - return new FunnelStep(properties); + UserSegmentSequenceGroup.create = function create(properties) { + return new UserSegmentSequenceGroup(properties); }; /** - * Encodes the specified FunnelStep message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelStep.verify|verify} messages. + * Encodes the specified UserSegmentSequenceGroup message. Does not implicitly {@link google.analytics.data.v1alpha.UserSegmentSequenceGroup.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.FunnelStep + * @memberof google.analytics.data.v1alpha.UserSegmentSequenceGroup * @static - * @param {google.analytics.data.v1alpha.IFunnelStep} message FunnelStep message or plain object to encode + * @param {google.analytics.data.v1alpha.IUserSegmentSequenceGroup} message UserSegmentSequenceGroup message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - FunnelStep.encode = function encode(message, writer) { + UserSegmentSequenceGroup.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.isDirectlyFollowedBy != null && Object.hasOwnProperty.call(message, "isDirectlyFollowedBy")) - writer.uint32(/* id 2, wireType 0 =*/16).bool(message.isDirectlyFollowedBy); - if (message.withinDurationFromPriorStep != null && Object.hasOwnProperty.call(message, "withinDurationFromPriorStep")) - $root.google.protobuf.Duration.encode(message.withinDurationFromPriorStep, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); - if (message.filterExpression != null && Object.hasOwnProperty.call(message, "filterExpression")) - $root.google.analytics.data.v1alpha.FunnelFilterExpression.encode(message.filterExpression, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.sequenceScoping != null && Object.hasOwnProperty.call(message, "sequenceScoping")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.sequenceScoping); + if (message.sequenceMaximumDuration != null && Object.hasOwnProperty.call(message, "sequenceMaximumDuration")) + $root.google.protobuf.Duration.encode(message.sequenceMaximumDuration, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.userSequenceSteps != null && message.userSequenceSteps.length) + for (var i = 0; i < message.userSequenceSteps.length; ++i) + $root.google.analytics.data.v1alpha.UserSequenceStep.encode(message.userSequenceSteps[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); return writer; }; /** - * Encodes the specified FunnelStep message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelStep.verify|verify} messages. + * Encodes the specified UserSegmentSequenceGroup message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.UserSegmentSequenceGroup.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.FunnelStep + * @memberof google.analytics.data.v1alpha.UserSegmentSequenceGroup * @static - * @param {google.analytics.data.v1alpha.IFunnelStep} message FunnelStep message or plain object to encode + * @param {google.analytics.data.v1alpha.IUserSegmentSequenceGroup} message UserSegmentSequenceGroup message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - FunnelStep.encodeDelimited = function encodeDelimited(message, writer) { + UserSegmentSequenceGroup.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a FunnelStep message from the specified reader or buffer. + * Decodes a UserSegmentSequenceGroup message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.FunnelStep + * @memberof google.analytics.data.v1alpha.UserSegmentSequenceGroup * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.FunnelStep} FunnelStep + * @returns {google.analytics.data.v1alpha.UserSegmentSequenceGroup} UserSegmentSequenceGroup * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - FunnelStep.decode = function decode(reader, length, error) { + UserSegmentSequenceGroup.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.FunnelStep(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.UserSegmentSequenceGroup(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { case 1: { - message.name = reader.string(); + message.sequenceScoping = reader.int32(); break; } case 2: { - message.isDirectlyFollowedBy = reader.bool(); + message.sequenceMaximumDuration = $root.google.protobuf.Duration.decode(reader, reader.uint32()); break; } case 3: { - message.withinDurationFromPriorStep = $root.google.protobuf.Duration.decode(reader, reader.uint32()); - break; - } - case 4: { - message.filterExpression = $root.google.analytics.data.v1alpha.FunnelFilterExpression.decode(reader, reader.uint32()); + if (!(message.userSequenceSteps && message.userSequenceSteps.length)) + message.userSequenceSteps = []; + message.userSequenceSteps.push($root.google.analytics.data.v1alpha.UserSequenceStep.decode(reader, reader.uint32())); break; } default: @@ -32869,169 +36009,193 @@ }; /** - * Decodes a FunnelStep message from the specified reader or buffer, length delimited. + * Decodes a UserSegmentSequenceGroup message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.FunnelStep + * @memberof google.analytics.data.v1alpha.UserSegmentSequenceGroup * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.FunnelStep} FunnelStep + * @returns {google.analytics.data.v1alpha.UserSegmentSequenceGroup} UserSegmentSequenceGroup * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - FunnelStep.decodeDelimited = function decodeDelimited(reader) { + UserSegmentSequenceGroup.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a FunnelStep message. + * Verifies a UserSegmentSequenceGroup message. * @function verify - * @memberof google.analytics.data.v1alpha.FunnelStep + * @memberof google.analytics.data.v1alpha.UserSegmentSequenceGroup * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - FunnelStep.verify = function verify(message) { + UserSegmentSequenceGroup.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.isDirectlyFollowedBy != null && message.hasOwnProperty("isDirectlyFollowedBy")) - if (typeof message.isDirectlyFollowedBy !== "boolean") - return "isDirectlyFollowedBy: boolean expected"; - if (message.withinDurationFromPriorStep != null && message.hasOwnProperty("withinDurationFromPriorStep")) { - properties._withinDurationFromPriorStep = 1; - { - var error = $root.google.protobuf.Duration.verify(message.withinDurationFromPriorStep); - if (error) - return "withinDurationFromPriorStep." + error; + if (message.sequenceScoping != null && message.hasOwnProperty("sequenceScoping")) + switch (message.sequenceScoping) { + default: + return "sequenceScoping: enum value expected"; + case 0: + case 1: + case 2: + case 3: + break; } - } - if (message.filterExpression != null && message.hasOwnProperty("filterExpression")) { - var error = $root.google.analytics.data.v1alpha.FunnelFilterExpression.verify(message.filterExpression); + if (message.sequenceMaximumDuration != null && message.hasOwnProperty("sequenceMaximumDuration")) { + var error = $root.google.protobuf.Duration.verify(message.sequenceMaximumDuration); if (error) - return "filterExpression." + error; + return "sequenceMaximumDuration." + error; + } + if (message.userSequenceSteps != null && message.hasOwnProperty("userSequenceSteps")) { + if (!Array.isArray(message.userSequenceSteps)) + return "userSequenceSteps: array expected"; + for (var i = 0; i < message.userSequenceSteps.length; ++i) { + var error = $root.google.analytics.data.v1alpha.UserSequenceStep.verify(message.userSequenceSteps[i]); + if (error) + return "userSequenceSteps." + error; + } } return null; }; /** - * Creates a FunnelStep message from a plain object. Also converts values to their respective internal types. + * Creates a UserSegmentSequenceGroup message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.FunnelStep + * @memberof google.analytics.data.v1alpha.UserSegmentSequenceGroup * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.FunnelStep} FunnelStep + * @returns {google.analytics.data.v1alpha.UserSegmentSequenceGroup} UserSegmentSequenceGroup */ - FunnelStep.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.FunnelStep) + UserSegmentSequenceGroup.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.UserSegmentSequenceGroup) return object; - var message = new $root.google.analytics.data.v1alpha.FunnelStep(); - if (object.name != null) - message.name = String(object.name); - if (object.isDirectlyFollowedBy != null) - message.isDirectlyFollowedBy = Boolean(object.isDirectlyFollowedBy); - if (object.withinDurationFromPriorStep != null) { - if (typeof object.withinDurationFromPriorStep !== "object") - throw TypeError(".google.analytics.data.v1alpha.FunnelStep.withinDurationFromPriorStep: object expected"); - message.withinDurationFromPriorStep = $root.google.protobuf.Duration.fromObject(object.withinDurationFromPriorStep); + var message = new $root.google.analytics.data.v1alpha.UserSegmentSequenceGroup(); + switch (object.sequenceScoping) { + default: + if (typeof object.sequenceScoping === "number") { + message.sequenceScoping = object.sequenceScoping; + break; + } + break; + case "USER_CRITERIA_SCOPING_UNSPECIFIED": + case 0: + message.sequenceScoping = 0; + break; + case "USER_CRITERIA_WITHIN_SAME_EVENT": + case 1: + message.sequenceScoping = 1; + break; + case "USER_CRITERIA_WITHIN_SAME_SESSION": + case 2: + message.sequenceScoping = 2; + break; + case "USER_CRITERIA_ACROSS_ALL_SESSIONS": + case 3: + message.sequenceScoping = 3; + break; } - if (object.filterExpression != null) { - if (typeof object.filterExpression !== "object") - throw TypeError(".google.analytics.data.v1alpha.FunnelStep.filterExpression: object expected"); - message.filterExpression = $root.google.analytics.data.v1alpha.FunnelFilterExpression.fromObject(object.filterExpression); + if (object.sequenceMaximumDuration != null) { + if (typeof object.sequenceMaximumDuration !== "object") + throw TypeError(".google.analytics.data.v1alpha.UserSegmentSequenceGroup.sequenceMaximumDuration: object expected"); + message.sequenceMaximumDuration = $root.google.protobuf.Duration.fromObject(object.sequenceMaximumDuration); + } + if (object.userSequenceSteps) { + if (!Array.isArray(object.userSequenceSteps)) + throw TypeError(".google.analytics.data.v1alpha.UserSegmentSequenceGroup.userSequenceSteps: array expected"); + message.userSequenceSteps = []; + for (var i = 0; i < object.userSequenceSteps.length; ++i) { + if (typeof object.userSequenceSteps[i] !== "object") + throw TypeError(".google.analytics.data.v1alpha.UserSegmentSequenceGroup.userSequenceSteps: object expected"); + message.userSequenceSteps[i] = $root.google.analytics.data.v1alpha.UserSequenceStep.fromObject(object.userSequenceSteps[i]); + } } return message; }; /** - * Creates a plain object from a FunnelStep message. Also converts values to other types if specified. + * Creates a plain object from a UserSegmentSequenceGroup message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.FunnelStep + * @memberof google.analytics.data.v1alpha.UserSegmentSequenceGroup * @static - * @param {google.analytics.data.v1alpha.FunnelStep} message FunnelStep + * @param {google.analytics.data.v1alpha.UserSegmentSequenceGroup} message UserSegmentSequenceGroup * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - FunnelStep.toObject = function toObject(message, options) { + UserSegmentSequenceGroup.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; + if (options.arrays || options.defaults) + object.userSequenceSteps = []; if (options.defaults) { - object.name = ""; - object.isDirectlyFollowedBy = false; - object.filterExpression = null; + object.sequenceScoping = options.enums === String ? "USER_CRITERIA_SCOPING_UNSPECIFIED" : 0; + object.sequenceMaximumDuration = null; } - if (message.name != null && message.hasOwnProperty("name")) - object.name = message.name; - if (message.isDirectlyFollowedBy != null && message.hasOwnProperty("isDirectlyFollowedBy")) - object.isDirectlyFollowedBy = message.isDirectlyFollowedBy; - if (message.withinDurationFromPriorStep != null && message.hasOwnProperty("withinDurationFromPriorStep")) { - object.withinDurationFromPriorStep = $root.google.protobuf.Duration.toObject(message.withinDurationFromPriorStep, options); - if (options.oneofs) - object._withinDurationFromPriorStep = "withinDurationFromPriorStep"; + if (message.sequenceScoping != null && message.hasOwnProperty("sequenceScoping")) + object.sequenceScoping = options.enums === String ? $root.google.analytics.data.v1alpha.UserCriteriaScoping[message.sequenceScoping] === undefined ? message.sequenceScoping : $root.google.analytics.data.v1alpha.UserCriteriaScoping[message.sequenceScoping] : message.sequenceScoping; + if (message.sequenceMaximumDuration != null && message.hasOwnProperty("sequenceMaximumDuration")) + object.sequenceMaximumDuration = $root.google.protobuf.Duration.toObject(message.sequenceMaximumDuration, options); + if (message.userSequenceSteps && message.userSequenceSteps.length) { + object.userSequenceSteps = []; + for (var j = 0; j < message.userSequenceSteps.length; ++j) + object.userSequenceSteps[j] = $root.google.analytics.data.v1alpha.UserSequenceStep.toObject(message.userSequenceSteps[j], options); } - if (message.filterExpression != null && message.hasOwnProperty("filterExpression")) - object.filterExpression = $root.google.analytics.data.v1alpha.FunnelFilterExpression.toObject(message.filterExpression, options); return object; }; /** - * Converts this FunnelStep to JSON. + * Converts this UserSegmentSequenceGroup to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.FunnelStep + * @memberof google.analytics.data.v1alpha.UserSegmentSequenceGroup * @instance * @returns {Object.} JSON object */ - FunnelStep.prototype.toJSON = function toJSON() { + UserSegmentSequenceGroup.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for FunnelStep + * Gets the default type url for UserSegmentSequenceGroup * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.FunnelStep + * @memberof google.analytics.data.v1alpha.UserSegmentSequenceGroup * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - FunnelStep.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + UserSegmentSequenceGroup.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.analytics.data.v1alpha.FunnelStep"; + return typeUrlPrefix + "/google.analytics.data.v1alpha.UserSegmentSequenceGroup"; }; - return FunnelStep; + return UserSegmentSequenceGroup; })(); - v1alpha.FunnelSubReport = (function() { + v1alpha.UserSequenceStep = (function() { /** - * Properties of a FunnelSubReport. + * Properties of a UserSequenceStep. * @memberof google.analytics.data.v1alpha - * @interface IFunnelSubReport - * @property {Array.|null} [dimensionHeaders] FunnelSubReport dimensionHeaders - * @property {Array.|null} [metricHeaders] FunnelSubReport metricHeaders - * @property {Array.|null} [rows] FunnelSubReport rows - * @property {google.analytics.data.v1alpha.IFunnelResponseMetadata|null} [metadata] FunnelSubReport metadata + * @interface IUserSequenceStep + * @property {boolean|null} [isDirectlyFollowedBy] UserSequenceStep isDirectlyFollowedBy + * @property {google.analytics.data.v1alpha.UserCriteriaScoping|null} [stepScoping] UserSequenceStep stepScoping + * @property {google.analytics.data.v1alpha.ISegmentFilterExpression|null} [segmentFilterExpression] UserSequenceStep segmentFilterExpression */ /** - * Constructs a new FunnelSubReport. + * Constructs a new UserSequenceStep. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a FunnelSubReport. - * @implements IFunnelSubReport + * @classdesc Represents a UserSequenceStep. + * @implements IUserSequenceStep * @constructor - * @param {google.analytics.data.v1alpha.IFunnelSubReport=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IUserSequenceStep=} [properties] Properties to set */ - function FunnelSubReport(properties) { - this.dimensionHeaders = []; - this.metricHeaders = []; - this.rows = []; + function UserSequenceStep(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -33039,128 +36203,105 @@ } /** - * FunnelSubReport dimensionHeaders. - * @member {Array.} dimensionHeaders - * @memberof google.analytics.data.v1alpha.FunnelSubReport - * @instance - */ - FunnelSubReport.prototype.dimensionHeaders = $util.emptyArray; - - /** - * FunnelSubReport metricHeaders. - * @member {Array.} metricHeaders - * @memberof google.analytics.data.v1alpha.FunnelSubReport + * UserSequenceStep isDirectlyFollowedBy. + * @member {boolean} isDirectlyFollowedBy + * @memberof google.analytics.data.v1alpha.UserSequenceStep * @instance */ - FunnelSubReport.prototype.metricHeaders = $util.emptyArray; + UserSequenceStep.prototype.isDirectlyFollowedBy = false; /** - * FunnelSubReport rows. - * @member {Array.} rows - * @memberof google.analytics.data.v1alpha.FunnelSubReport + * UserSequenceStep stepScoping. + * @member {google.analytics.data.v1alpha.UserCriteriaScoping} stepScoping + * @memberof google.analytics.data.v1alpha.UserSequenceStep * @instance */ - FunnelSubReport.prototype.rows = $util.emptyArray; + UserSequenceStep.prototype.stepScoping = 0; /** - * FunnelSubReport metadata. - * @member {google.analytics.data.v1alpha.IFunnelResponseMetadata|null|undefined} metadata - * @memberof google.analytics.data.v1alpha.FunnelSubReport + * UserSequenceStep segmentFilterExpression. + * @member {google.analytics.data.v1alpha.ISegmentFilterExpression|null|undefined} segmentFilterExpression + * @memberof google.analytics.data.v1alpha.UserSequenceStep * @instance */ - FunnelSubReport.prototype.metadata = null; + UserSequenceStep.prototype.segmentFilterExpression = null; /** - * Creates a new FunnelSubReport instance using the specified properties. + * Creates a new UserSequenceStep instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.FunnelSubReport + * @memberof google.analytics.data.v1alpha.UserSequenceStep * @static - * @param {google.analytics.data.v1alpha.IFunnelSubReport=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.FunnelSubReport} FunnelSubReport instance + * @param {google.analytics.data.v1alpha.IUserSequenceStep=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.UserSequenceStep} UserSequenceStep instance */ - FunnelSubReport.create = function create(properties) { - return new FunnelSubReport(properties); + UserSequenceStep.create = function create(properties) { + return new UserSequenceStep(properties); }; /** - * Encodes the specified FunnelSubReport message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelSubReport.verify|verify} messages. + * Encodes the specified UserSequenceStep message. Does not implicitly {@link google.analytics.data.v1alpha.UserSequenceStep.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.FunnelSubReport + * @memberof google.analytics.data.v1alpha.UserSequenceStep * @static - * @param {google.analytics.data.v1alpha.IFunnelSubReport} message FunnelSubReport message or plain object to encode + * @param {google.analytics.data.v1alpha.IUserSequenceStep} message UserSequenceStep message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer - */ - FunnelSubReport.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.dimensionHeaders != null && message.dimensionHeaders.length) - for (var i = 0; i < message.dimensionHeaders.length; ++i) - $root.google.analytics.data.v1alpha.DimensionHeader.encode(message.dimensionHeaders[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.metricHeaders != null && message.metricHeaders.length) - for (var i = 0; i < message.metricHeaders.length; ++i) - $root.google.analytics.data.v1alpha.MetricHeader.encode(message.metricHeaders[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.rows != null && message.rows.length) - for (var i = 0; i < message.rows.length; ++i) - $root.google.analytics.data.v1alpha.Row.encode(message.rows[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); - if (message.metadata != null && Object.hasOwnProperty.call(message, "metadata")) - $root.google.analytics.data.v1alpha.FunnelResponseMetadata.encode(message.metadata, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + */ + UserSequenceStep.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.isDirectlyFollowedBy != null && Object.hasOwnProperty.call(message, "isDirectlyFollowedBy")) + writer.uint32(/* id 1, wireType 0 =*/8).bool(message.isDirectlyFollowedBy); + if (message.stepScoping != null && Object.hasOwnProperty.call(message, "stepScoping")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.stepScoping); + if (message.segmentFilterExpression != null && Object.hasOwnProperty.call(message, "segmentFilterExpression")) + $root.google.analytics.data.v1alpha.SegmentFilterExpression.encode(message.segmentFilterExpression, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); return writer; }; /** - * Encodes the specified FunnelSubReport message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelSubReport.verify|verify} messages. + * Encodes the specified UserSequenceStep message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.UserSequenceStep.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.FunnelSubReport + * @memberof google.analytics.data.v1alpha.UserSequenceStep * @static - * @param {google.analytics.data.v1alpha.IFunnelSubReport} message FunnelSubReport message or plain object to encode + * @param {google.analytics.data.v1alpha.IUserSequenceStep} message UserSequenceStep message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - FunnelSubReport.encodeDelimited = function encodeDelimited(message, writer) { + UserSequenceStep.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a FunnelSubReport message from the specified reader or buffer. + * Decodes a UserSequenceStep message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.FunnelSubReport + * @memberof google.analytics.data.v1alpha.UserSequenceStep * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.FunnelSubReport} FunnelSubReport + * @returns {google.analytics.data.v1alpha.UserSequenceStep} UserSequenceStep * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - FunnelSubReport.decode = function decode(reader, length, error) { + UserSequenceStep.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.FunnelSubReport(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.UserSequenceStep(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { case 1: { - if (!(message.dimensionHeaders && message.dimensionHeaders.length)) - message.dimensionHeaders = []; - message.dimensionHeaders.push($root.google.analytics.data.v1alpha.DimensionHeader.decode(reader, reader.uint32())); + message.isDirectlyFollowedBy = reader.bool(); break; } case 2: { - if (!(message.metricHeaders && message.metricHeaders.length)) - message.metricHeaders = []; - message.metricHeaders.push($root.google.analytics.data.v1alpha.MetricHeader.decode(reader, reader.uint32())); + message.stepScoping = reader.int32(); break; } case 3: { - if (!(message.rows && message.rows.length)) - message.rows = []; - message.rows.push($root.google.analytics.data.v1alpha.Row.decode(reader, reader.uint32())); - break; - } - case 4: { - message.metadata = $root.google.analytics.data.v1alpha.FunnelResponseMetadata.decode(reader, reader.uint32()); + message.segmentFilterExpression = $root.google.analytics.data.v1alpha.SegmentFilterExpression.decode(reader, reader.uint32()); break; } default: @@ -33172,205 +36313,174 @@ }; /** - * Decodes a FunnelSubReport message from the specified reader or buffer, length delimited. + * Decodes a UserSequenceStep message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.FunnelSubReport + * @memberof google.analytics.data.v1alpha.UserSequenceStep * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.FunnelSubReport} FunnelSubReport + * @returns {google.analytics.data.v1alpha.UserSequenceStep} UserSequenceStep * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - FunnelSubReport.decodeDelimited = function decodeDelimited(reader) { + UserSequenceStep.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a FunnelSubReport message. + * Verifies a UserSequenceStep message. * @function verify - * @memberof google.analytics.data.v1alpha.FunnelSubReport + * @memberof google.analytics.data.v1alpha.UserSequenceStep * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - FunnelSubReport.verify = function verify(message) { + UserSequenceStep.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.dimensionHeaders != null && message.hasOwnProperty("dimensionHeaders")) { - if (!Array.isArray(message.dimensionHeaders)) - return "dimensionHeaders: array expected"; - for (var i = 0; i < message.dimensionHeaders.length; ++i) { - var error = $root.google.analytics.data.v1alpha.DimensionHeader.verify(message.dimensionHeaders[i]); - if (error) - return "dimensionHeaders." + error; - } - } - if (message.metricHeaders != null && message.hasOwnProperty("metricHeaders")) { - if (!Array.isArray(message.metricHeaders)) - return "metricHeaders: array expected"; - for (var i = 0; i < message.metricHeaders.length; ++i) { - var error = $root.google.analytics.data.v1alpha.MetricHeader.verify(message.metricHeaders[i]); - if (error) - return "metricHeaders." + error; - } - } - 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.analytics.data.v1alpha.Row.verify(message.rows[i]); - if (error) - return "rows." + error; + if (message.isDirectlyFollowedBy != null && message.hasOwnProperty("isDirectlyFollowedBy")) + if (typeof message.isDirectlyFollowedBy !== "boolean") + return "isDirectlyFollowedBy: boolean expected"; + if (message.stepScoping != null && message.hasOwnProperty("stepScoping")) + switch (message.stepScoping) { + default: + return "stepScoping: enum value expected"; + case 0: + case 1: + case 2: + case 3: + break; } - } - if (message.metadata != null && message.hasOwnProperty("metadata")) { - var error = $root.google.analytics.data.v1alpha.FunnelResponseMetadata.verify(message.metadata); + if (message.segmentFilterExpression != null && message.hasOwnProperty("segmentFilterExpression")) { + var error = $root.google.analytics.data.v1alpha.SegmentFilterExpression.verify(message.segmentFilterExpression); if (error) - return "metadata." + error; + return "segmentFilterExpression." + error; } return null; }; /** - * Creates a FunnelSubReport message from a plain object. Also converts values to their respective internal types. + * Creates a UserSequenceStep message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.FunnelSubReport + * @memberof google.analytics.data.v1alpha.UserSequenceStep * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.FunnelSubReport} FunnelSubReport + * @returns {google.analytics.data.v1alpha.UserSequenceStep} UserSequenceStep */ - FunnelSubReport.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.FunnelSubReport) + UserSequenceStep.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.UserSequenceStep) return object; - var message = new $root.google.analytics.data.v1alpha.FunnelSubReport(); - if (object.dimensionHeaders) { - if (!Array.isArray(object.dimensionHeaders)) - throw TypeError(".google.analytics.data.v1alpha.FunnelSubReport.dimensionHeaders: array expected"); - message.dimensionHeaders = []; - for (var i = 0; i < object.dimensionHeaders.length; ++i) { - if (typeof object.dimensionHeaders[i] !== "object") - throw TypeError(".google.analytics.data.v1alpha.FunnelSubReport.dimensionHeaders: object expected"); - message.dimensionHeaders[i] = $root.google.analytics.data.v1alpha.DimensionHeader.fromObject(object.dimensionHeaders[i]); - } - } - if (object.metricHeaders) { - if (!Array.isArray(object.metricHeaders)) - throw TypeError(".google.analytics.data.v1alpha.FunnelSubReport.metricHeaders: array expected"); - message.metricHeaders = []; - for (var i = 0; i < object.metricHeaders.length; ++i) { - if (typeof object.metricHeaders[i] !== "object") - throw TypeError(".google.analytics.data.v1alpha.FunnelSubReport.metricHeaders: object expected"); - message.metricHeaders[i] = $root.google.analytics.data.v1alpha.MetricHeader.fromObject(object.metricHeaders[i]); - } - } - if (object.rows) { - if (!Array.isArray(object.rows)) - throw TypeError(".google.analytics.data.v1alpha.FunnelSubReport.rows: array expected"); - message.rows = []; - for (var i = 0; i < object.rows.length; ++i) { - if (typeof object.rows[i] !== "object") - throw TypeError(".google.analytics.data.v1alpha.FunnelSubReport.rows: object expected"); - message.rows[i] = $root.google.analytics.data.v1alpha.Row.fromObject(object.rows[i]); + var message = new $root.google.analytics.data.v1alpha.UserSequenceStep(); + if (object.isDirectlyFollowedBy != null) + message.isDirectlyFollowedBy = Boolean(object.isDirectlyFollowedBy); + switch (object.stepScoping) { + default: + if (typeof object.stepScoping === "number") { + message.stepScoping = object.stepScoping; + break; } + break; + case "USER_CRITERIA_SCOPING_UNSPECIFIED": + case 0: + message.stepScoping = 0; + break; + case "USER_CRITERIA_WITHIN_SAME_EVENT": + case 1: + message.stepScoping = 1; + break; + case "USER_CRITERIA_WITHIN_SAME_SESSION": + case 2: + message.stepScoping = 2; + break; + case "USER_CRITERIA_ACROSS_ALL_SESSIONS": + case 3: + message.stepScoping = 3; + break; } - if (object.metadata != null) { - if (typeof object.metadata !== "object") - throw TypeError(".google.analytics.data.v1alpha.FunnelSubReport.metadata: object expected"); - message.metadata = $root.google.analytics.data.v1alpha.FunnelResponseMetadata.fromObject(object.metadata); + if (object.segmentFilterExpression != null) { + if (typeof object.segmentFilterExpression !== "object") + throw TypeError(".google.analytics.data.v1alpha.UserSequenceStep.segmentFilterExpression: object expected"); + message.segmentFilterExpression = $root.google.analytics.data.v1alpha.SegmentFilterExpression.fromObject(object.segmentFilterExpression); } return message; }; /** - * Creates a plain object from a FunnelSubReport message. Also converts values to other types if specified. + * Creates a plain object from a UserSequenceStep message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.FunnelSubReport + * @memberof google.analytics.data.v1alpha.UserSequenceStep * @static - * @param {google.analytics.data.v1alpha.FunnelSubReport} message FunnelSubReport + * @param {google.analytics.data.v1alpha.UserSequenceStep} message UserSequenceStep * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - FunnelSubReport.toObject = function toObject(message, options) { + UserSequenceStep.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.arrays || options.defaults) { - object.dimensionHeaders = []; - object.metricHeaders = []; - object.rows = []; - } - if (options.defaults) - object.metadata = null; - if (message.dimensionHeaders && message.dimensionHeaders.length) { - object.dimensionHeaders = []; - for (var j = 0; j < message.dimensionHeaders.length; ++j) - object.dimensionHeaders[j] = $root.google.analytics.data.v1alpha.DimensionHeader.toObject(message.dimensionHeaders[j], options); - } - if (message.metricHeaders && message.metricHeaders.length) { - object.metricHeaders = []; - for (var j = 0; j < message.metricHeaders.length; ++j) - object.metricHeaders[j] = $root.google.analytics.data.v1alpha.MetricHeader.toObject(message.metricHeaders[j], options); - } - if (message.rows && message.rows.length) { - object.rows = []; - for (var j = 0; j < message.rows.length; ++j) - object.rows[j] = $root.google.analytics.data.v1alpha.Row.toObject(message.rows[j], options); + if (options.defaults) { + object.isDirectlyFollowedBy = false; + object.stepScoping = options.enums === String ? "USER_CRITERIA_SCOPING_UNSPECIFIED" : 0; + object.segmentFilterExpression = null; } - if (message.metadata != null && message.hasOwnProperty("metadata")) - object.metadata = $root.google.analytics.data.v1alpha.FunnelResponseMetadata.toObject(message.metadata, options); + if (message.isDirectlyFollowedBy != null && message.hasOwnProperty("isDirectlyFollowedBy")) + object.isDirectlyFollowedBy = message.isDirectlyFollowedBy; + if (message.stepScoping != null && message.hasOwnProperty("stepScoping")) + object.stepScoping = options.enums === String ? $root.google.analytics.data.v1alpha.UserCriteriaScoping[message.stepScoping] === undefined ? message.stepScoping : $root.google.analytics.data.v1alpha.UserCriteriaScoping[message.stepScoping] : message.stepScoping; + if (message.segmentFilterExpression != null && message.hasOwnProperty("segmentFilterExpression")) + object.segmentFilterExpression = $root.google.analytics.data.v1alpha.SegmentFilterExpression.toObject(message.segmentFilterExpression, options); return object; }; /** - * Converts this FunnelSubReport to JSON. + * Converts this UserSequenceStep to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.FunnelSubReport + * @memberof google.analytics.data.v1alpha.UserSequenceStep * @instance * @returns {Object.} JSON object */ - FunnelSubReport.prototype.toJSON = function toJSON() { + UserSequenceStep.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for FunnelSubReport + * Gets the default type url for UserSequenceStep * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.FunnelSubReport + * @memberof google.analytics.data.v1alpha.UserSequenceStep * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - FunnelSubReport.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + UserSequenceStep.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.analytics.data.v1alpha.FunnelSubReport"; + return typeUrlPrefix + "/google.analytics.data.v1alpha.UserSequenceStep"; }; - return FunnelSubReport; + return UserSequenceStep; })(); - v1alpha.UserSegment = (function() { + v1alpha.UserSegmentExclusion = (function() { /** - * Properties of a UserSegment. + * Properties of a UserSegmentExclusion. * @memberof google.analytics.data.v1alpha - * @interface IUserSegment - * @property {google.analytics.data.v1alpha.IUserSegmentCriteria|null} [userInclusionCriteria] UserSegment userInclusionCriteria - * @property {google.analytics.data.v1alpha.IUserSegmentExclusion|null} [exclusion] UserSegment exclusion + * @interface IUserSegmentExclusion + * @property {google.analytics.data.v1alpha.UserExclusionDuration|null} [userExclusionDuration] UserSegmentExclusion userExclusionDuration + * @property {google.analytics.data.v1alpha.IUserSegmentCriteria|null} [userExclusionCriteria] UserSegmentExclusion userExclusionCriteria */ /** - * Constructs a new UserSegment. + * Constructs a new UserSegmentExclusion. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a UserSegment. - * @implements IUserSegment + * @classdesc Represents a UserSegmentExclusion. + * @implements IUserSegmentExclusion * @constructor - * @param {google.analytics.data.v1alpha.IUserSegment=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IUserSegmentExclusion=} [properties] Properties to set */ - function UserSegment(properties) { + function UserSegmentExclusion(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -33378,91 +36488,91 @@ } /** - * UserSegment userInclusionCriteria. - * @member {google.analytics.data.v1alpha.IUserSegmentCriteria|null|undefined} userInclusionCriteria - * @memberof google.analytics.data.v1alpha.UserSegment + * UserSegmentExclusion userExclusionDuration. + * @member {google.analytics.data.v1alpha.UserExclusionDuration} userExclusionDuration + * @memberof google.analytics.data.v1alpha.UserSegmentExclusion * @instance */ - UserSegment.prototype.userInclusionCriteria = null; + UserSegmentExclusion.prototype.userExclusionDuration = 0; /** - * UserSegment exclusion. - * @member {google.analytics.data.v1alpha.IUserSegmentExclusion|null|undefined} exclusion - * @memberof google.analytics.data.v1alpha.UserSegment + * UserSegmentExclusion userExclusionCriteria. + * @member {google.analytics.data.v1alpha.IUserSegmentCriteria|null|undefined} userExclusionCriteria + * @memberof google.analytics.data.v1alpha.UserSegmentExclusion * @instance */ - UserSegment.prototype.exclusion = null; + UserSegmentExclusion.prototype.userExclusionCriteria = null; /** - * Creates a new UserSegment instance using the specified properties. + * Creates a new UserSegmentExclusion instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.UserSegment + * @memberof google.analytics.data.v1alpha.UserSegmentExclusion * @static - * @param {google.analytics.data.v1alpha.IUserSegment=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.UserSegment} UserSegment instance + * @param {google.analytics.data.v1alpha.IUserSegmentExclusion=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.UserSegmentExclusion} UserSegmentExclusion instance */ - UserSegment.create = function create(properties) { - return new UserSegment(properties); + UserSegmentExclusion.create = function create(properties) { + return new UserSegmentExclusion(properties); }; /** - * Encodes the specified UserSegment message. Does not implicitly {@link google.analytics.data.v1alpha.UserSegment.verify|verify} messages. + * Encodes the specified UserSegmentExclusion message. Does not implicitly {@link google.analytics.data.v1alpha.UserSegmentExclusion.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.UserSegment + * @memberof google.analytics.data.v1alpha.UserSegmentExclusion * @static - * @param {google.analytics.data.v1alpha.IUserSegment} message UserSegment message or plain object to encode + * @param {google.analytics.data.v1alpha.IUserSegmentExclusion} message UserSegmentExclusion message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - UserSegment.encode = function encode(message, writer) { + UserSegmentExclusion.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.userInclusionCriteria != null && Object.hasOwnProperty.call(message, "userInclusionCriteria")) - $root.google.analytics.data.v1alpha.UserSegmentCriteria.encode(message.userInclusionCriteria, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.exclusion != null && Object.hasOwnProperty.call(message, "exclusion")) - $root.google.analytics.data.v1alpha.UserSegmentExclusion.encode(message.exclusion, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.userExclusionDuration != null && Object.hasOwnProperty.call(message, "userExclusionDuration")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.userExclusionDuration); + if (message.userExclusionCriteria != null && Object.hasOwnProperty.call(message, "userExclusionCriteria")) + $root.google.analytics.data.v1alpha.UserSegmentCriteria.encode(message.userExclusionCriteria, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); return writer; }; /** - * Encodes the specified UserSegment message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.UserSegment.verify|verify} messages. + * Encodes the specified UserSegmentExclusion message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.UserSegmentExclusion.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.UserSegment + * @memberof google.analytics.data.v1alpha.UserSegmentExclusion * @static - * @param {google.analytics.data.v1alpha.IUserSegment} message UserSegment message or plain object to encode + * @param {google.analytics.data.v1alpha.IUserSegmentExclusion} message UserSegmentExclusion message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - UserSegment.encodeDelimited = function encodeDelimited(message, writer) { + UserSegmentExclusion.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a UserSegment message from the specified reader or buffer. + * Decodes a UserSegmentExclusion message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.UserSegment + * @memberof google.analytics.data.v1alpha.UserSegmentExclusion * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.UserSegment} UserSegment + * @returns {google.analytics.data.v1alpha.UserSegmentExclusion} UserSegmentExclusion * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - UserSegment.decode = function decode(reader, length, error) { + UserSegmentExclusion.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.UserSegment(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.UserSegmentExclusion(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { case 1: { - message.userInclusionCriteria = $root.google.analytics.data.v1alpha.UserSegmentCriteria.decode(reader, reader.uint32()); + message.userExclusionDuration = reader.int32(); break; } case 2: { - message.exclusion = $root.google.analytics.data.v1alpha.UserSegmentExclusion.decode(reader, reader.uint32()); + message.userExclusionCriteria = $root.google.analytics.data.v1alpha.UserSegmentCriteria.decode(reader, reader.uint32()); break; } default: @@ -33474,144 +36584,177 @@ }; /** - * Decodes a UserSegment message from the specified reader or buffer, length delimited. + * Decodes a UserSegmentExclusion message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.UserSegment + * @memberof google.analytics.data.v1alpha.UserSegmentExclusion * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.UserSegment} UserSegment + * @returns {google.analytics.data.v1alpha.UserSegmentExclusion} UserSegmentExclusion * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - UserSegment.decodeDelimited = function decodeDelimited(reader) { + UserSegmentExclusion.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a UserSegment message. + * Verifies a UserSegmentExclusion message. * @function verify - * @memberof google.analytics.data.v1alpha.UserSegment + * @memberof google.analytics.data.v1alpha.UserSegmentExclusion * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - UserSegment.verify = function verify(message) { + UserSegmentExclusion.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.userInclusionCriteria != null && message.hasOwnProperty("userInclusionCriteria")) { - var error = $root.google.analytics.data.v1alpha.UserSegmentCriteria.verify(message.userInclusionCriteria); - if (error) - return "userInclusionCriteria." + error; - } - if (message.exclusion != null && message.hasOwnProperty("exclusion")) { - var error = $root.google.analytics.data.v1alpha.UserSegmentExclusion.verify(message.exclusion); + if (message.userExclusionDuration != null && message.hasOwnProperty("userExclusionDuration")) + switch (message.userExclusionDuration) { + default: + return "userExclusionDuration: enum value expected"; + case 0: + case 1: + case 2: + break; + } + if (message.userExclusionCriteria != null && message.hasOwnProperty("userExclusionCriteria")) { + var error = $root.google.analytics.data.v1alpha.UserSegmentCriteria.verify(message.userExclusionCriteria); if (error) - return "exclusion." + error; + return "userExclusionCriteria." + error; } return null; }; /** - * Creates a UserSegment message from a plain object. Also converts values to their respective internal types. + * Creates a UserSegmentExclusion message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.UserSegment + * @memberof google.analytics.data.v1alpha.UserSegmentExclusion * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.UserSegment} UserSegment + * @returns {google.analytics.data.v1alpha.UserSegmentExclusion} UserSegmentExclusion */ - UserSegment.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.UserSegment) + UserSegmentExclusion.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.UserSegmentExclusion) return object; - var message = new $root.google.analytics.data.v1alpha.UserSegment(); - if (object.userInclusionCriteria != null) { - if (typeof object.userInclusionCriteria !== "object") - throw TypeError(".google.analytics.data.v1alpha.UserSegment.userInclusionCriteria: object expected"); - message.userInclusionCriteria = $root.google.analytics.data.v1alpha.UserSegmentCriteria.fromObject(object.userInclusionCriteria); + var message = new $root.google.analytics.data.v1alpha.UserSegmentExclusion(); + switch (object.userExclusionDuration) { + default: + if (typeof object.userExclusionDuration === "number") { + message.userExclusionDuration = object.userExclusionDuration; + break; + } + break; + case "USER_EXCLUSION_DURATION_UNSPECIFIED": + case 0: + message.userExclusionDuration = 0; + break; + case "USER_EXCLUSION_TEMPORARY": + case 1: + message.userExclusionDuration = 1; + break; + case "USER_EXCLUSION_PERMANENT": + case 2: + message.userExclusionDuration = 2; + break; } - if (object.exclusion != null) { - if (typeof object.exclusion !== "object") - throw TypeError(".google.analytics.data.v1alpha.UserSegment.exclusion: object expected"); - message.exclusion = $root.google.analytics.data.v1alpha.UserSegmentExclusion.fromObject(object.exclusion); + if (object.userExclusionCriteria != null) { + if (typeof object.userExclusionCriteria !== "object") + throw TypeError(".google.analytics.data.v1alpha.UserSegmentExclusion.userExclusionCriteria: object expected"); + message.userExclusionCriteria = $root.google.analytics.data.v1alpha.UserSegmentCriteria.fromObject(object.userExclusionCriteria); } return message; }; /** - * Creates a plain object from a UserSegment message. Also converts values to other types if specified. + * Creates a plain object from a UserSegmentExclusion message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.UserSegment + * @memberof google.analytics.data.v1alpha.UserSegmentExclusion * @static - * @param {google.analytics.data.v1alpha.UserSegment} message UserSegment + * @param {google.analytics.data.v1alpha.UserSegmentExclusion} message UserSegmentExclusion * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - UserSegment.toObject = function toObject(message, options) { + UserSegmentExclusion.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; if (options.defaults) { - object.userInclusionCriteria = null; - object.exclusion = null; + object.userExclusionDuration = options.enums === String ? "USER_EXCLUSION_DURATION_UNSPECIFIED" : 0; + object.userExclusionCriteria = null; } - if (message.userInclusionCriteria != null && message.hasOwnProperty("userInclusionCriteria")) - object.userInclusionCriteria = $root.google.analytics.data.v1alpha.UserSegmentCriteria.toObject(message.userInclusionCriteria, options); - if (message.exclusion != null && message.hasOwnProperty("exclusion")) - object.exclusion = $root.google.analytics.data.v1alpha.UserSegmentExclusion.toObject(message.exclusion, options); + if (message.userExclusionDuration != null && message.hasOwnProperty("userExclusionDuration")) + object.userExclusionDuration = options.enums === String ? $root.google.analytics.data.v1alpha.UserExclusionDuration[message.userExclusionDuration] === undefined ? message.userExclusionDuration : $root.google.analytics.data.v1alpha.UserExclusionDuration[message.userExclusionDuration] : message.userExclusionDuration; + if (message.userExclusionCriteria != null && message.hasOwnProperty("userExclusionCriteria")) + object.userExclusionCriteria = $root.google.analytics.data.v1alpha.UserSegmentCriteria.toObject(message.userExclusionCriteria, options); return object; }; /** - * Converts this UserSegment to JSON. + * Converts this UserSegmentExclusion to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.UserSegment + * @memberof google.analytics.data.v1alpha.UserSegmentExclusion * @instance * @returns {Object.} JSON object */ - UserSegment.prototype.toJSON = function toJSON() { + UserSegmentExclusion.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for UserSegment + * Gets the default type url for UserSegmentExclusion * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.UserSegment + * @memberof google.analytics.data.v1alpha.UserSegmentExclusion * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - UserSegment.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + UserSegmentExclusion.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.analytics.data.v1alpha.UserSegment"; + return typeUrlPrefix + "/google.analytics.data.v1alpha.UserSegmentExclusion"; }; - return UserSegment; + return UserSegmentExclusion; })(); - v1alpha.UserSegmentCriteria = (function() { + /** + * UserExclusionDuration enum. + * @name google.analytics.data.v1alpha.UserExclusionDuration + * @enum {number} + * @property {number} USER_EXCLUSION_DURATION_UNSPECIFIED=0 USER_EXCLUSION_DURATION_UNSPECIFIED value + * @property {number} USER_EXCLUSION_TEMPORARY=1 USER_EXCLUSION_TEMPORARY value + * @property {number} USER_EXCLUSION_PERMANENT=2 USER_EXCLUSION_PERMANENT value + */ + v1alpha.UserExclusionDuration = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "USER_EXCLUSION_DURATION_UNSPECIFIED"] = 0; + values[valuesById[1] = "USER_EXCLUSION_TEMPORARY"] = 1; + values[valuesById[2] = "USER_EXCLUSION_PERMANENT"] = 2; + return values; + })(); + + v1alpha.SessionSegment = (function() { /** - * Properties of a UserSegmentCriteria. + * Properties of a SessionSegment. * @memberof google.analytics.data.v1alpha - * @interface IUserSegmentCriteria - * @property {Array.|null} [andConditionGroups] UserSegmentCriteria andConditionGroups - * @property {Array.|null} [andSequenceGroups] UserSegmentCriteria andSequenceGroups + * @interface ISessionSegment + * @property {google.analytics.data.v1alpha.ISessionSegmentCriteria|null} [sessionInclusionCriteria] SessionSegment sessionInclusionCriteria + * @property {google.analytics.data.v1alpha.ISessionSegmentExclusion|null} [exclusion] SessionSegment exclusion */ /** - * Constructs a new UserSegmentCriteria. + * Constructs a new SessionSegment. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a UserSegmentCriteria. - * @implements IUserSegmentCriteria + * @classdesc Represents a SessionSegment. + * @implements ISessionSegment * @constructor - * @param {google.analytics.data.v1alpha.IUserSegmentCriteria=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.ISessionSegment=} [properties] Properties to set */ - function UserSegmentCriteria(properties) { - this.andConditionGroups = []; - this.andSequenceGroups = []; + function SessionSegment(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -33619,97 +36762,91 @@ } /** - * UserSegmentCriteria andConditionGroups. - * @member {Array.} andConditionGroups - * @memberof google.analytics.data.v1alpha.UserSegmentCriteria + * SessionSegment sessionInclusionCriteria. + * @member {google.analytics.data.v1alpha.ISessionSegmentCriteria|null|undefined} sessionInclusionCriteria + * @memberof google.analytics.data.v1alpha.SessionSegment * @instance */ - UserSegmentCriteria.prototype.andConditionGroups = $util.emptyArray; + SessionSegment.prototype.sessionInclusionCriteria = null; /** - * UserSegmentCriteria andSequenceGroups. - * @member {Array.} andSequenceGroups - * @memberof google.analytics.data.v1alpha.UserSegmentCriteria + * SessionSegment exclusion. + * @member {google.analytics.data.v1alpha.ISessionSegmentExclusion|null|undefined} exclusion + * @memberof google.analytics.data.v1alpha.SessionSegment * @instance */ - UserSegmentCriteria.prototype.andSequenceGroups = $util.emptyArray; + SessionSegment.prototype.exclusion = null; /** - * Creates a new UserSegmentCriteria instance using the specified properties. + * Creates a new SessionSegment instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.UserSegmentCriteria + * @memberof google.analytics.data.v1alpha.SessionSegment * @static - * @param {google.analytics.data.v1alpha.IUserSegmentCriteria=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.UserSegmentCriteria} UserSegmentCriteria instance + * @param {google.analytics.data.v1alpha.ISessionSegment=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.SessionSegment} SessionSegment instance */ - UserSegmentCriteria.create = function create(properties) { - return new UserSegmentCriteria(properties); + SessionSegment.create = function create(properties) { + return new SessionSegment(properties); }; /** - * Encodes the specified UserSegmentCriteria message. Does not implicitly {@link google.analytics.data.v1alpha.UserSegmentCriteria.verify|verify} messages. + * Encodes the specified SessionSegment message. Does not implicitly {@link google.analytics.data.v1alpha.SessionSegment.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.UserSegmentCriteria + * @memberof google.analytics.data.v1alpha.SessionSegment * @static - * @param {google.analytics.data.v1alpha.IUserSegmentCriteria} message UserSegmentCriteria message or plain object to encode + * @param {google.analytics.data.v1alpha.ISessionSegment} message SessionSegment message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - UserSegmentCriteria.encode = function encode(message, writer) { + SessionSegment.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.andConditionGroups != null && message.andConditionGroups.length) - for (var i = 0; i < message.andConditionGroups.length; ++i) - $root.google.analytics.data.v1alpha.UserSegmentConditionGroup.encode(message.andConditionGroups[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.andSequenceGroups != null && message.andSequenceGroups.length) - for (var i = 0; i < message.andSequenceGroups.length; ++i) - $root.google.analytics.data.v1alpha.UserSegmentSequenceGroup.encode(message.andSequenceGroups[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.sessionInclusionCriteria != null && Object.hasOwnProperty.call(message, "sessionInclusionCriteria")) + $root.google.analytics.data.v1alpha.SessionSegmentCriteria.encode(message.sessionInclusionCriteria, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.exclusion != null && Object.hasOwnProperty.call(message, "exclusion")) + $root.google.analytics.data.v1alpha.SessionSegmentExclusion.encode(message.exclusion, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); return writer; }; /** - * Encodes the specified UserSegmentCriteria message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.UserSegmentCriteria.verify|verify} messages. + * Encodes the specified SessionSegment message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SessionSegment.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.UserSegmentCriteria + * @memberof google.analytics.data.v1alpha.SessionSegment * @static - * @param {google.analytics.data.v1alpha.IUserSegmentCriteria} message UserSegmentCriteria message or plain object to encode + * @param {google.analytics.data.v1alpha.ISessionSegment} message SessionSegment message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - UserSegmentCriteria.encodeDelimited = function encodeDelimited(message, writer) { + SessionSegment.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a UserSegmentCriteria message from the specified reader or buffer. + * Decodes a SessionSegment message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.UserSegmentCriteria + * @memberof google.analytics.data.v1alpha.SessionSegment * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.UserSegmentCriteria} UserSegmentCriteria + * @returns {google.analytics.data.v1alpha.SessionSegment} SessionSegment * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - UserSegmentCriteria.decode = function decode(reader, length, error) { + SessionSegment.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.UserSegmentCriteria(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.SessionSegment(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { case 1: { - if (!(message.andConditionGroups && message.andConditionGroups.length)) - message.andConditionGroups = []; - message.andConditionGroups.push($root.google.analytics.data.v1alpha.UserSegmentConditionGroup.decode(reader, reader.uint32())); + message.sessionInclusionCriteria = $root.google.analytics.data.v1alpha.SessionSegmentCriteria.decode(reader, reader.uint32()); break; } case 2: { - if (!(message.andSequenceGroups && message.andSequenceGroups.length)) - message.andSequenceGroups = []; - message.andSequenceGroups.push($root.google.analytics.data.v1alpha.UserSegmentSequenceGroup.decode(reader, reader.uint32())); + message.exclusion = $root.google.analytics.data.v1alpha.SessionSegmentExclusion.decode(reader, reader.uint32()); break; } default: @@ -33721,184 +36858,142 @@ }; /** - * Decodes a UserSegmentCriteria message from the specified reader or buffer, length delimited. + * Decodes a SessionSegment message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.UserSegmentCriteria + * @memberof google.analytics.data.v1alpha.SessionSegment * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.UserSegmentCriteria} UserSegmentCriteria + * @returns {google.analytics.data.v1alpha.SessionSegment} SessionSegment * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - UserSegmentCriteria.decodeDelimited = function decodeDelimited(reader) { + SessionSegment.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a UserSegmentCriteria message. + * Verifies a SessionSegment message. * @function verify - * @memberof google.analytics.data.v1alpha.UserSegmentCriteria + * @memberof google.analytics.data.v1alpha.SessionSegment * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - UserSegmentCriteria.verify = function verify(message) { + SessionSegment.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.andConditionGroups != null && message.hasOwnProperty("andConditionGroups")) { - if (!Array.isArray(message.andConditionGroups)) - return "andConditionGroups: array expected"; - for (var i = 0; i < message.andConditionGroups.length; ++i) { - var error = $root.google.analytics.data.v1alpha.UserSegmentConditionGroup.verify(message.andConditionGroups[i]); - if (error) - return "andConditionGroups." + error; - } + if (message.sessionInclusionCriteria != null && message.hasOwnProperty("sessionInclusionCriteria")) { + var error = $root.google.analytics.data.v1alpha.SessionSegmentCriteria.verify(message.sessionInclusionCriteria); + if (error) + return "sessionInclusionCriteria." + error; } - if (message.andSequenceGroups != null && message.hasOwnProperty("andSequenceGroups")) { - if (!Array.isArray(message.andSequenceGroups)) - return "andSequenceGroups: array expected"; - for (var i = 0; i < message.andSequenceGroups.length; ++i) { - var error = $root.google.analytics.data.v1alpha.UserSegmentSequenceGroup.verify(message.andSequenceGroups[i]); - if (error) - return "andSequenceGroups." + error; - } + if (message.exclusion != null && message.hasOwnProperty("exclusion")) { + var error = $root.google.analytics.data.v1alpha.SessionSegmentExclusion.verify(message.exclusion); + if (error) + return "exclusion." + error; } return null; }; /** - * Creates a UserSegmentCriteria message from a plain object. Also converts values to their respective internal types. + * Creates a SessionSegment message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.UserSegmentCriteria + * @memberof google.analytics.data.v1alpha.SessionSegment * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.UserSegmentCriteria} UserSegmentCriteria + * @returns {google.analytics.data.v1alpha.SessionSegment} SessionSegment */ - UserSegmentCriteria.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.UserSegmentCriteria) + SessionSegment.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.SessionSegment) return object; - var message = new $root.google.analytics.data.v1alpha.UserSegmentCriteria(); - if (object.andConditionGroups) { - if (!Array.isArray(object.andConditionGroups)) - throw TypeError(".google.analytics.data.v1alpha.UserSegmentCriteria.andConditionGroups: array expected"); - message.andConditionGroups = []; - for (var i = 0; i < object.andConditionGroups.length; ++i) { - if (typeof object.andConditionGroups[i] !== "object") - throw TypeError(".google.analytics.data.v1alpha.UserSegmentCriteria.andConditionGroups: object expected"); - message.andConditionGroups[i] = $root.google.analytics.data.v1alpha.UserSegmentConditionGroup.fromObject(object.andConditionGroups[i]); - } + var message = new $root.google.analytics.data.v1alpha.SessionSegment(); + if (object.sessionInclusionCriteria != null) { + if (typeof object.sessionInclusionCriteria !== "object") + throw TypeError(".google.analytics.data.v1alpha.SessionSegment.sessionInclusionCriteria: object expected"); + message.sessionInclusionCriteria = $root.google.analytics.data.v1alpha.SessionSegmentCriteria.fromObject(object.sessionInclusionCriteria); } - if (object.andSequenceGroups) { - if (!Array.isArray(object.andSequenceGroups)) - throw TypeError(".google.analytics.data.v1alpha.UserSegmentCriteria.andSequenceGroups: array expected"); - message.andSequenceGroups = []; - for (var i = 0; i < object.andSequenceGroups.length; ++i) { - if (typeof object.andSequenceGroups[i] !== "object") - throw TypeError(".google.analytics.data.v1alpha.UserSegmentCriteria.andSequenceGroups: object expected"); - message.andSequenceGroups[i] = $root.google.analytics.data.v1alpha.UserSegmentSequenceGroup.fromObject(object.andSequenceGroups[i]); - } + if (object.exclusion != null) { + if (typeof object.exclusion !== "object") + throw TypeError(".google.analytics.data.v1alpha.SessionSegment.exclusion: object expected"); + message.exclusion = $root.google.analytics.data.v1alpha.SessionSegmentExclusion.fromObject(object.exclusion); } return message; }; /** - * Creates a plain object from a UserSegmentCriteria message. Also converts values to other types if specified. + * Creates a plain object from a SessionSegment message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.UserSegmentCriteria + * @memberof google.analytics.data.v1alpha.SessionSegment * @static - * @param {google.analytics.data.v1alpha.UserSegmentCriteria} message UserSegmentCriteria + * @param {google.analytics.data.v1alpha.SessionSegment} message SessionSegment * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - UserSegmentCriteria.toObject = function toObject(message, options) { + SessionSegment.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.arrays || options.defaults) { - object.andConditionGroups = []; - object.andSequenceGroups = []; - } - if (message.andConditionGroups && message.andConditionGroups.length) { - object.andConditionGroups = []; - for (var j = 0; j < message.andConditionGroups.length; ++j) - object.andConditionGroups[j] = $root.google.analytics.data.v1alpha.UserSegmentConditionGroup.toObject(message.andConditionGroups[j], options); - } - if (message.andSequenceGroups && message.andSequenceGroups.length) { - object.andSequenceGroups = []; - for (var j = 0; j < message.andSequenceGroups.length; ++j) - object.andSequenceGroups[j] = $root.google.analytics.data.v1alpha.UserSegmentSequenceGroup.toObject(message.andSequenceGroups[j], options); + if (options.defaults) { + object.sessionInclusionCriteria = null; + object.exclusion = null; } + if (message.sessionInclusionCriteria != null && message.hasOwnProperty("sessionInclusionCriteria")) + object.sessionInclusionCriteria = $root.google.analytics.data.v1alpha.SessionSegmentCriteria.toObject(message.sessionInclusionCriteria, options); + if (message.exclusion != null && message.hasOwnProperty("exclusion")) + object.exclusion = $root.google.analytics.data.v1alpha.SessionSegmentExclusion.toObject(message.exclusion, options); return object; }; /** - * Converts this UserSegmentCriteria to JSON. + * Converts this SessionSegment to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.UserSegmentCriteria + * @memberof google.analytics.data.v1alpha.SessionSegment * @instance * @returns {Object.} JSON object */ - UserSegmentCriteria.prototype.toJSON = function toJSON() { + SessionSegment.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for UserSegmentCriteria + * Gets the default type url for SessionSegment * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.UserSegmentCriteria + * @memberof google.analytics.data.v1alpha.SessionSegment * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - UserSegmentCriteria.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + SessionSegment.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.analytics.data.v1alpha.UserSegmentCriteria"; + return typeUrlPrefix + "/google.analytics.data.v1alpha.SessionSegment"; }; - return UserSegmentCriteria; - })(); - - /** - * UserCriteriaScoping enum. - * @name google.analytics.data.v1alpha.UserCriteriaScoping - * @enum {number} - * @property {number} USER_CRITERIA_SCOPING_UNSPECIFIED=0 USER_CRITERIA_SCOPING_UNSPECIFIED value - * @property {number} USER_CRITERIA_WITHIN_SAME_EVENT=1 USER_CRITERIA_WITHIN_SAME_EVENT value - * @property {number} USER_CRITERIA_WITHIN_SAME_SESSION=2 USER_CRITERIA_WITHIN_SAME_SESSION value - * @property {number} USER_CRITERIA_ACROSS_ALL_SESSIONS=3 USER_CRITERIA_ACROSS_ALL_SESSIONS value - */ - v1alpha.UserCriteriaScoping = (function() { - var valuesById = {}, values = Object.create(valuesById); - values[valuesById[0] = "USER_CRITERIA_SCOPING_UNSPECIFIED"] = 0; - values[valuesById[1] = "USER_CRITERIA_WITHIN_SAME_EVENT"] = 1; - values[valuesById[2] = "USER_CRITERIA_WITHIN_SAME_SESSION"] = 2; - values[valuesById[3] = "USER_CRITERIA_ACROSS_ALL_SESSIONS"] = 3; - return values; + return SessionSegment; })(); - v1alpha.UserSegmentConditionGroup = (function() { + v1alpha.SessionSegmentCriteria = (function() { /** - * Properties of a UserSegmentConditionGroup. + * Properties of a SessionSegmentCriteria. * @memberof google.analytics.data.v1alpha - * @interface IUserSegmentConditionGroup - * @property {google.analytics.data.v1alpha.UserCriteriaScoping|null} [conditionScoping] UserSegmentConditionGroup conditionScoping - * @property {google.analytics.data.v1alpha.ISegmentFilterExpression|null} [segmentFilterExpression] UserSegmentConditionGroup segmentFilterExpression + * @interface ISessionSegmentCriteria + * @property {Array.|null} [andConditionGroups] SessionSegmentCriteria andConditionGroups */ /** - * Constructs a new UserSegmentConditionGroup. + * Constructs a new SessionSegmentCriteria. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a UserSegmentConditionGroup. - * @implements IUserSegmentConditionGroup + * @classdesc Represents a SessionSegmentCriteria. + * @implements ISessionSegmentCriteria * @constructor - * @param {google.analytics.data.v1alpha.IUserSegmentConditionGroup=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.ISessionSegmentCriteria=} [properties] Properties to set */ - function UserSegmentConditionGroup(properties) { + function SessionSegmentCriteria(properties) { + this.andConditionGroups = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -33906,91 +37001,80 @@ } /** - * UserSegmentConditionGroup conditionScoping. - * @member {google.analytics.data.v1alpha.UserCriteriaScoping} conditionScoping - * @memberof google.analytics.data.v1alpha.UserSegmentConditionGroup - * @instance - */ - UserSegmentConditionGroup.prototype.conditionScoping = 0; - - /** - * UserSegmentConditionGroup segmentFilterExpression. - * @member {google.analytics.data.v1alpha.ISegmentFilterExpression|null|undefined} segmentFilterExpression - * @memberof google.analytics.data.v1alpha.UserSegmentConditionGroup + * SessionSegmentCriteria andConditionGroups. + * @member {Array.} andConditionGroups + * @memberof google.analytics.data.v1alpha.SessionSegmentCriteria * @instance */ - UserSegmentConditionGroup.prototype.segmentFilterExpression = null; + SessionSegmentCriteria.prototype.andConditionGroups = $util.emptyArray; /** - * Creates a new UserSegmentConditionGroup instance using the specified properties. + * Creates a new SessionSegmentCriteria instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.UserSegmentConditionGroup + * @memberof google.analytics.data.v1alpha.SessionSegmentCriteria * @static - * @param {google.analytics.data.v1alpha.IUserSegmentConditionGroup=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.UserSegmentConditionGroup} UserSegmentConditionGroup instance + * @param {google.analytics.data.v1alpha.ISessionSegmentCriteria=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.SessionSegmentCriteria} SessionSegmentCriteria instance */ - UserSegmentConditionGroup.create = function create(properties) { - return new UserSegmentConditionGroup(properties); + SessionSegmentCriteria.create = function create(properties) { + return new SessionSegmentCriteria(properties); }; /** - * Encodes the specified UserSegmentConditionGroup message. Does not implicitly {@link google.analytics.data.v1alpha.UserSegmentConditionGroup.verify|verify} messages. + * Encodes the specified SessionSegmentCriteria message. Does not implicitly {@link google.analytics.data.v1alpha.SessionSegmentCriteria.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.UserSegmentConditionGroup + * @memberof google.analytics.data.v1alpha.SessionSegmentCriteria * @static - * @param {google.analytics.data.v1alpha.IUserSegmentConditionGroup} message UserSegmentConditionGroup message or plain object to encode + * @param {google.analytics.data.v1alpha.ISessionSegmentCriteria} message SessionSegmentCriteria message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - UserSegmentConditionGroup.encode = function encode(message, writer) { + SessionSegmentCriteria.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.conditionScoping != null && Object.hasOwnProperty.call(message, "conditionScoping")) - writer.uint32(/* id 1, wireType 0 =*/8).int32(message.conditionScoping); - if (message.segmentFilterExpression != null && Object.hasOwnProperty.call(message, "segmentFilterExpression")) - $root.google.analytics.data.v1alpha.SegmentFilterExpression.encode(message.segmentFilterExpression, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.andConditionGroups != null && message.andConditionGroups.length) + for (var i = 0; i < message.andConditionGroups.length; ++i) + $root.google.analytics.data.v1alpha.SessionSegmentConditionGroup.encode(message.andConditionGroups[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); return writer; }; /** - * Encodes the specified UserSegmentConditionGroup message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.UserSegmentConditionGroup.verify|verify} messages. + * Encodes the specified SessionSegmentCriteria message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SessionSegmentCriteria.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.UserSegmentConditionGroup + * @memberof google.analytics.data.v1alpha.SessionSegmentCriteria * @static - * @param {google.analytics.data.v1alpha.IUserSegmentConditionGroup} message UserSegmentConditionGroup message or plain object to encode + * @param {google.analytics.data.v1alpha.ISessionSegmentCriteria} message SessionSegmentCriteria message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - UserSegmentConditionGroup.encodeDelimited = function encodeDelimited(message, writer) { + SessionSegmentCriteria.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a UserSegmentConditionGroup message from the specified reader or buffer. + * Decodes a SessionSegmentCriteria message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.UserSegmentConditionGroup + * @memberof google.analytics.data.v1alpha.SessionSegmentCriteria * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.UserSegmentConditionGroup} UserSegmentConditionGroup + * @returns {google.analytics.data.v1alpha.SessionSegmentCriteria} SessionSegmentCriteria * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - UserSegmentConditionGroup.decode = function decode(reader, length, error) { + SessionSegmentCriteria.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.UserSegmentConditionGroup(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.SessionSegmentCriteria(); while (reader.pos < end) { var tag = reader.uint32(); - if (tag === error) - break; - switch (tag >>> 3) { - case 1: { - message.conditionScoping = reader.int32(); - break; - } - case 2: { - message.segmentFilterExpression = $root.google.analytics.data.v1alpha.SegmentFilterExpression.decode(reader, reader.uint32()); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + if (!(message.andConditionGroups && message.andConditionGroups.length)) + message.andConditionGroups = []; + message.andConditionGroups.push($root.google.analytics.data.v1alpha.SessionSegmentConditionGroup.decode(reader, reader.uint32())); break; } default: @@ -34002,168 +37086,156 @@ }; /** - * Decodes a UserSegmentConditionGroup message from the specified reader or buffer, length delimited. + * Decodes a SessionSegmentCriteria message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.UserSegmentConditionGroup + * @memberof google.analytics.data.v1alpha.SessionSegmentCriteria * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.UserSegmentConditionGroup} UserSegmentConditionGroup + * @returns {google.analytics.data.v1alpha.SessionSegmentCriteria} SessionSegmentCriteria * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - UserSegmentConditionGroup.decodeDelimited = function decodeDelimited(reader) { + SessionSegmentCriteria.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a UserSegmentConditionGroup message. + * Verifies a SessionSegmentCriteria message. * @function verify - * @memberof google.analytics.data.v1alpha.UserSegmentConditionGroup + * @memberof google.analytics.data.v1alpha.SessionSegmentCriteria * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - UserSegmentConditionGroup.verify = function verify(message) { + SessionSegmentCriteria.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.conditionScoping != null && message.hasOwnProperty("conditionScoping")) - switch (message.conditionScoping) { - default: - return "conditionScoping: enum value expected"; - case 0: - case 1: - case 2: - case 3: - break; + if (message.andConditionGroups != null && message.hasOwnProperty("andConditionGroups")) { + if (!Array.isArray(message.andConditionGroups)) + return "andConditionGroups: array expected"; + for (var i = 0; i < message.andConditionGroups.length; ++i) { + var error = $root.google.analytics.data.v1alpha.SessionSegmentConditionGroup.verify(message.andConditionGroups[i]); + if (error) + return "andConditionGroups." + error; } - if (message.segmentFilterExpression != null && message.hasOwnProperty("segmentFilterExpression")) { - var error = $root.google.analytics.data.v1alpha.SegmentFilterExpression.verify(message.segmentFilterExpression); - if (error) - return "segmentFilterExpression." + error; } return null; }; /** - * Creates a UserSegmentConditionGroup message from a plain object. Also converts values to their respective internal types. + * Creates a SessionSegmentCriteria message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.UserSegmentConditionGroup + * @memberof google.analytics.data.v1alpha.SessionSegmentCriteria * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.UserSegmentConditionGroup} UserSegmentConditionGroup + * @returns {google.analytics.data.v1alpha.SessionSegmentCriteria} SessionSegmentCriteria */ - UserSegmentConditionGroup.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.UserSegmentConditionGroup) + SessionSegmentCriteria.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.SessionSegmentCriteria) return object; - var message = new $root.google.analytics.data.v1alpha.UserSegmentConditionGroup(); - switch (object.conditionScoping) { - default: - if (typeof object.conditionScoping === "number") { - message.conditionScoping = object.conditionScoping; - break; + var message = new $root.google.analytics.data.v1alpha.SessionSegmentCriteria(); + if (object.andConditionGroups) { + if (!Array.isArray(object.andConditionGroups)) + throw TypeError(".google.analytics.data.v1alpha.SessionSegmentCriteria.andConditionGroups: array expected"); + message.andConditionGroups = []; + for (var i = 0; i < object.andConditionGroups.length; ++i) { + if (typeof object.andConditionGroups[i] !== "object") + throw TypeError(".google.analytics.data.v1alpha.SessionSegmentCriteria.andConditionGroups: object expected"); + message.andConditionGroups[i] = $root.google.analytics.data.v1alpha.SessionSegmentConditionGroup.fromObject(object.andConditionGroups[i]); } - break; - case "USER_CRITERIA_SCOPING_UNSPECIFIED": - case 0: - message.conditionScoping = 0; - break; - case "USER_CRITERIA_WITHIN_SAME_EVENT": - case 1: - message.conditionScoping = 1; - break; - case "USER_CRITERIA_WITHIN_SAME_SESSION": - case 2: - message.conditionScoping = 2; - break; - case "USER_CRITERIA_ACROSS_ALL_SESSIONS": - case 3: - message.conditionScoping = 3; - break; - } - if (object.segmentFilterExpression != null) { - if (typeof object.segmentFilterExpression !== "object") - throw TypeError(".google.analytics.data.v1alpha.UserSegmentConditionGroup.segmentFilterExpression: object expected"); - message.segmentFilterExpression = $root.google.analytics.data.v1alpha.SegmentFilterExpression.fromObject(object.segmentFilterExpression); } return message; }; /** - * Creates a plain object from a UserSegmentConditionGroup message. Also converts values to other types if specified. + * Creates a plain object from a SessionSegmentCriteria message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.UserSegmentConditionGroup + * @memberof google.analytics.data.v1alpha.SessionSegmentCriteria * @static - * @param {google.analytics.data.v1alpha.UserSegmentConditionGroup} message UserSegmentConditionGroup + * @param {google.analytics.data.v1alpha.SessionSegmentCriteria} message SessionSegmentCriteria * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - UserSegmentConditionGroup.toObject = function toObject(message, options) { + SessionSegmentCriteria.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.defaults) { - object.conditionScoping = options.enums === String ? "USER_CRITERIA_SCOPING_UNSPECIFIED" : 0; - object.segmentFilterExpression = null; + if (options.arrays || options.defaults) + object.andConditionGroups = []; + if (message.andConditionGroups && message.andConditionGroups.length) { + object.andConditionGroups = []; + for (var j = 0; j < message.andConditionGroups.length; ++j) + object.andConditionGroups[j] = $root.google.analytics.data.v1alpha.SessionSegmentConditionGroup.toObject(message.andConditionGroups[j], options); } - if (message.conditionScoping != null && message.hasOwnProperty("conditionScoping")) - object.conditionScoping = options.enums === String ? $root.google.analytics.data.v1alpha.UserCriteriaScoping[message.conditionScoping] === undefined ? message.conditionScoping : $root.google.analytics.data.v1alpha.UserCriteriaScoping[message.conditionScoping] : message.conditionScoping; - if (message.segmentFilterExpression != null && message.hasOwnProperty("segmentFilterExpression")) - object.segmentFilterExpression = $root.google.analytics.data.v1alpha.SegmentFilterExpression.toObject(message.segmentFilterExpression, options); return object; }; /** - * Converts this UserSegmentConditionGroup to JSON. + * Converts this SessionSegmentCriteria to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.UserSegmentConditionGroup + * @memberof google.analytics.data.v1alpha.SessionSegmentCriteria * @instance * @returns {Object.} JSON object */ - UserSegmentConditionGroup.prototype.toJSON = function toJSON() { + SessionSegmentCriteria.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for UserSegmentConditionGroup + * Gets the default type url for SessionSegmentCriteria * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.UserSegmentConditionGroup + * @memberof google.analytics.data.v1alpha.SessionSegmentCriteria * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - UserSegmentConditionGroup.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + SessionSegmentCriteria.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.analytics.data.v1alpha.UserSegmentConditionGroup"; + return typeUrlPrefix + "/google.analytics.data.v1alpha.SessionSegmentCriteria"; }; - return UserSegmentConditionGroup; + return SessionSegmentCriteria; })(); - v1alpha.UserSegmentSequenceGroup = (function() { + /** + * SessionCriteriaScoping enum. + * @name google.analytics.data.v1alpha.SessionCriteriaScoping + * @enum {number} + * @property {number} SESSION_CRITERIA_SCOPING_UNSPECIFIED=0 SESSION_CRITERIA_SCOPING_UNSPECIFIED value + * @property {number} SESSION_CRITERIA_WITHIN_SAME_EVENT=1 SESSION_CRITERIA_WITHIN_SAME_EVENT value + * @property {number} SESSION_CRITERIA_WITHIN_SAME_SESSION=2 SESSION_CRITERIA_WITHIN_SAME_SESSION value + */ + v1alpha.SessionCriteriaScoping = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "SESSION_CRITERIA_SCOPING_UNSPECIFIED"] = 0; + values[valuesById[1] = "SESSION_CRITERIA_WITHIN_SAME_EVENT"] = 1; + values[valuesById[2] = "SESSION_CRITERIA_WITHIN_SAME_SESSION"] = 2; + return values; + })(); + + v1alpha.SessionSegmentConditionGroup = (function() { /** - * Properties of a UserSegmentSequenceGroup. + * Properties of a SessionSegmentConditionGroup. * @memberof google.analytics.data.v1alpha - * @interface IUserSegmentSequenceGroup - * @property {google.analytics.data.v1alpha.UserCriteriaScoping|null} [sequenceScoping] UserSegmentSequenceGroup sequenceScoping - * @property {google.protobuf.IDuration|null} [sequenceMaximumDuration] UserSegmentSequenceGroup sequenceMaximumDuration - * @property {Array.|null} [userSequenceSteps] UserSegmentSequenceGroup userSequenceSteps + * @interface ISessionSegmentConditionGroup + * @property {google.analytics.data.v1alpha.SessionCriteriaScoping|null} [conditionScoping] SessionSegmentConditionGroup conditionScoping + * @property {google.analytics.data.v1alpha.ISegmentFilterExpression|null} [segmentFilterExpression] SessionSegmentConditionGroup segmentFilterExpression */ /** - * Constructs a new UserSegmentSequenceGroup. + * Constructs a new SessionSegmentConditionGroup. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a UserSegmentSequenceGroup. - * @implements IUserSegmentSequenceGroup + * @classdesc Represents a SessionSegmentConditionGroup. + * @implements ISessionSegmentConditionGroup * @constructor - * @param {google.analytics.data.v1alpha.IUserSegmentSequenceGroup=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.ISessionSegmentConditionGroup=} [properties] Properties to set */ - function UserSegmentSequenceGroup(properties) { - this.userSequenceSteps = []; + function SessionSegmentConditionGroup(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -34171,108 +37243,91 @@ } /** - * UserSegmentSequenceGroup sequenceScoping. - * @member {google.analytics.data.v1alpha.UserCriteriaScoping} sequenceScoping - * @memberof google.analytics.data.v1alpha.UserSegmentSequenceGroup - * @instance - */ - UserSegmentSequenceGroup.prototype.sequenceScoping = 0; - - /** - * UserSegmentSequenceGroup sequenceMaximumDuration. - * @member {google.protobuf.IDuration|null|undefined} sequenceMaximumDuration - * @memberof google.analytics.data.v1alpha.UserSegmentSequenceGroup + * SessionSegmentConditionGroup conditionScoping. + * @member {google.analytics.data.v1alpha.SessionCriteriaScoping} conditionScoping + * @memberof google.analytics.data.v1alpha.SessionSegmentConditionGroup * @instance */ - UserSegmentSequenceGroup.prototype.sequenceMaximumDuration = null; + SessionSegmentConditionGroup.prototype.conditionScoping = 0; /** - * UserSegmentSequenceGroup userSequenceSteps. - * @member {Array.} userSequenceSteps - * @memberof google.analytics.data.v1alpha.UserSegmentSequenceGroup + * SessionSegmentConditionGroup segmentFilterExpression. + * @member {google.analytics.data.v1alpha.ISegmentFilterExpression|null|undefined} segmentFilterExpression + * @memberof google.analytics.data.v1alpha.SessionSegmentConditionGroup * @instance */ - UserSegmentSequenceGroup.prototype.userSequenceSteps = $util.emptyArray; + SessionSegmentConditionGroup.prototype.segmentFilterExpression = null; /** - * Creates a new UserSegmentSequenceGroup instance using the specified properties. + * Creates a new SessionSegmentConditionGroup instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.UserSegmentSequenceGroup + * @memberof google.analytics.data.v1alpha.SessionSegmentConditionGroup * @static - * @param {google.analytics.data.v1alpha.IUserSegmentSequenceGroup=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.UserSegmentSequenceGroup} UserSegmentSequenceGroup instance + * @param {google.analytics.data.v1alpha.ISessionSegmentConditionGroup=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.SessionSegmentConditionGroup} SessionSegmentConditionGroup instance */ - UserSegmentSequenceGroup.create = function create(properties) { - return new UserSegmentSequenceGroup(properties); + SessionSegmentConditionGroup.create = function create(properties) { + return new SessionSegmentConditionGroup(properties); }; /** - * Encodes the specified UserSegmentSequenceGroup message. Does not implicitly {@link google.analytics.data.v1alpha.UserSegmentSequenceGroup.verify|verify} messages. + * Encodes the specified SessionSegmentConditionGroup message. Does not implicitly {@link google.analytics.data.v1alpha.SessionSegmentConditionGroup.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.UserSegmentSequenceGroup + * @memberof google.analytics.data.v1alpha.SessionSegmentConditionGroup * @static - * @param {google.analytics.data.v1alpha.IUserSegmentSequenceGroup} message UserSegmentSequenceGroup message or plain object to encode + * @param {google.analytics.data.v1alpha.ISessionSegmentConditionGroup} message SessionSegmentConditionGroup message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - UserSegmentSequenceGroup.encode = function encode(message, writer) { + SessionSegmentConditionGroup.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.sequenceScoping != null && Object.hasOwnProperty.call(message, "sequenceScoping")) - writer.uint32(/* id 1, wireType 0 =*/8).int32(message.sequenceScoping); - if (message.sequenceMaximumDuration != null && Object.hasOwnProperty.call(message, "sequenceMaximumDuration")) - $root.google.protobuf.Duration.encode(message.sequenceMaximumDuration, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.userSequenceSteps != null && message.userSequenceSteps.length) - for (var i = 0; i < message.userSequenceSteps.length; ++i) - $root.google.analytics.data.v1alpha.UserSequenceStep.encode(message.userSequenceSteps[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.conditionScoping != null && Object.hasOwnProperty.call(message, "conditionScoping")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.conditionScoping); + if (message.segmentFilterExpression != null && Object.hasOwnProperty.call(message, "segmentFilterExpression")) + $root.google.analytics.data.v1alpha.SegmentFilterExpression.encode(message.segmentFilterExpression, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); return writer; }; /** - * Encodes the specified UserSegmentSequenceGroup message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.UserSegmentSequenceGroup.verify|verify} messages. + * Encodes the specified SessionSegmentConditionGroup message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SessionSegmentConditionGroup.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.UserSegmentSequenceGroup + * @memberof google.analytics.data.v1alpha.SessionSegmentConditionGroup * @static - * @param {google.analytics.data.v1alpha.IUserSegmentSequenceGroup} message UserSegmentSequenceGroup message or plain object to encode + * @param {google.analytics.data.v1alpha.ISessionSegmentConditionGroup} message SessionSegmentConditionGroup message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - UserSegmentSequenceGroup.encodeDelimited = function encodeDelimited(message, writer) { + SessionSegmentConditionGroup.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a UserSegmentSequenceGroup message from the specified reader or buffer. + * Decodes a SessionSegmentConditionGroup message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.UserSegmentSequenceGroup + * @memberof google.analytics.data.v1alpha.SessionSegmentConditionGroup * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.UserSegmentSequenceGroup} UserSegmentSequenceGroup + * @returns {google.analytics.data.v1alpha.SessionSegmentConditionGroup} SessionSegmentConditionGroup * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - UserSegmentSequenceGroup.decode = function decode(reader, length, error) { + SessionSegmentConditionGroup.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.UserSegmentSequenceGroup(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.SessionSegmentConditionGroup(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { case 1: { - message.sequenceScoping = reader.int32(); + message.conditionScoping = reader.int32(); break; } case 2: { - message.sequenceMaximumDuration = $root.google.protobuf.Duration.decode(reader, reader.uint32()); - break; - } - case 3: { - if (!(message.userSequenceSteps && message.userSequenceSteps.length)) - message.userSequenceSteps = []; - message.userSequenceSteps.push($root.google.analytics.data.v1alpha.UserSequenceStep.decode(reader, reader.uint32())); + message.segmentFilterExpression = $root.google.analytics.data.v1alpha.SegmentFilterExpression.decode(reader, reader.uint32()); break; } default: @@ -34284,193 +37339,161 @@ }; /** - * Decodes a UserSegmentSequenceGroup message from the specified reader or buffer, length delimited. + * Decodes a SessionSegmentConditionGroup message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.UserSegmentSequenceGroup + * @memberof google.analytics.data.v1alpha.SessionSegmentConditionGroup * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.UserSegmentSequenceGroup} UserSegmentSequenceGroup + * @returns {google.analytics.data.v1alpha.SessionSegmentConditionGroup} SessionSegmentConditionGroup * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - UserSegmentSequenceGroup.decodeDelimited = function decodeDelimited(reader) { + SessionSegmentConditionGroup.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a UserSegmentSequenceGroup message. + * Verifies a SessionSegmentConditionGroup message. * @function verify - * @memberof google.analytics.data.v1alpha.UserSegmentSequenceGroup + * @memberof google.analytics.data.v1alpha.SessionSegmentConditionGroup * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - UserSegmentSequenceGroup.verify = function verify(message) { + SessionSegmentConditionGroup.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.sequenceScoping != null && message.hasOwnProperty("sequenceScoping")) - switch (message.sequenceScoping) { + if (message.conditionScoping != null && message.hasOwnProperty("conditionScoping")) + switch (message.conditionScoping) { default: - return "sequenceScoping: enum value expected"; + return "conditionScoping: enum value expected"; case 0: case 1: case 2: - case 3: break; } - if (message.sequenceMaximumDuration != null && message.hasOwnProperty("sequenceMaximumDuration")) { - var error = $root.google.protobuf.Duration.verify(message.sequenceMaximumDuration); + if (message.segmentFilterExpression != null && message.hasOwnProperty("segmentFilterExpression")) { + var error = $root.google.analytics.data.v1alpha.SegmentFilterExpression.verify(message.segmentFilterExpression); if (error) - return "sequenceMaximumDuration." + error; - } - if (message.userSequenceSteps != null && message.hasOwnProperty("userSequenceSteps")) { - if (!Array.isArray(message.userSequenceSteps)) - return "userSequenceSteps: array expected"; - for (var i = 0; i < message.userSequenceSteps.length; ++i) { - var error = $root.google.analytics.data.v1alpha.UserSequenceStep.verify(message.userSequenceSteps[i]); - if (error) - return "userSequenceSteps." + error; - } + return "segmentFilterExpression." + error; } return null; }; /** - * Creates a UserSegmentSequenceGroup message from a plain object. Also converts values to their respective internal types. + * Creates a SessionSegmentConditionGroup message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.UserSegmentSequenceGroup + * @memberof google.analytics.data.v1alpha.SessionSegmentConditionGroup * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.UserSegmentSequenceGroup} UserSegmentSequenceGroup + * @returns {google.analytics.data.v1alpha.SessionSegmentConditionGroup} SessionSegmentConditionGroup */ - UserSegmentSequenceGroup.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.UserSegmentSequenceGroup) + SessionSegmentConditionGroup.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.SessionSegmentConditionGroup) return object; - var message = new $root.google.analytics.data.v1alpha.UserSegmentSequenceGroup(); - switch (object.sequenceScoping) { + var message = new $root.google.analytics.data.v1alpha.SessionSegmentConditionGroup(); + switch (object.conditionScoping) { default: - if (typeof object.sequenceScoping === "number") { - message.sequenceScoping = object.sequenceScoping; + if (typeof object.conditionScoping === "number") { + message.conditionScoping = object.conditionScoping; break; } break; - case "USER_CRITERIA_SCOPING_UNSPECIFIED": + case "SESSION_CRITERIA_SCOPING_UNSPECIFIED": case 0: - message.sequenceScoping = 0; + message.conditionScoping = 0; break; - case "USER_CRITERIA_WITHIN_SAME_EVENT": + case "SESSION_CRITERIA_WITHIN_SAME_EVENT": case 1: - message.sequenceScoping = 1; + message.conditionScoping = 1; break; - case "USER_CRITERIA_WITHIN_SAME_SESSION": + case "SESSION_CRITERIA_WITHIN_SAME_SESSION": case 2: - message.sequenceScoping = 2; - break; - case "USER_CRITERIA_ACROSS_ALL_SESSIONS": - case 3: - message.sequenceScoping = 3; + message.conditionScoping = 2; break; } - if (object.sequenceMaximumDuration != null) { - if (typeof object.sequenceMaximumDuration !== "object") - throw TypeError(".google.analytics.data.v1alpha.UserSegmentSequenceGroup.sequenceMaximumDuration: object expected"); - message.sequenceMaximumDuration = $root.google.protobuf.Duration.fromObject(object.sequenceMaximumDuration); - } - if (object.userSequenceSteps) { - if (!Array.isArray(object.userSequenceSteps)) - throw TypeError(".google.analytics.data.v1alpha.UserSegmentSequenceGroup.userSequenceSteps: array expected"); - message.userSequenceSteps = []; - for (var i = 0; i < object.userSequenceSteps.length; ++i) { - if (typeof object.userSequenceSteps[i] !== "object") - throw TypeError(".google.analytics.data.v1alpha.UserSegmentSequenceGroup.userSequenceSteps: object expected"); - message.userSequenceSteps[i] = $root.google.analytics.data.v1alpha.UserSequenceStep.fromObject(object.userSequenceSteps[i]); - } + if (object.segmentFilterExpression != null) { + if (typeof object.segmentFilterExpression !== "object") + throw TypeError(".google.analytics.data.v1alpha.SessionSegmentConditionGroup.segmentFilterExpression: object expected"); + message.segmentFilterExpression = $root.google.analytics.data.v1alpha.SegmentFilterExpression.fromObject(object.segmentFilterExpression); } return message; }; /** - * Creates a plain object from a UserSegmentSequenceGroup message. Also converts values to other types if specified. + * Creates a plain object from a SessionSegmentConditionGroup message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.UserSegmentSequenceGroup + * @memberof google.analytics.data.v1alpha.SessionSegmentConditionGroup * @static - * @param {google.analytics.data.v1alpha.UserSegmentSequenceGroup} message UserSegmentSequenceGroup + * @param {google.analytics.data.v1alpha.SessionSegmentConditionGroup} message SessionSegmentConditionGroup * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - UserSegmentSequenceGroup.toObject = function toObject(message, options) { + SessionSegmentConditionGroup.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.arrays || options.defaults) - object.userSequenceSteps = []; if (options.defaults) { - object.sequenceScoping = options.enums === String ? "USER_CRITERIA_SCOPING_UNSPECIFIED" : 0; - object.sequenceMaximumDuration = null; - } - if (message.sequenceScoping != null && message.hasOwnProperty("sequenceScoping")) - object.sequenceScoping = options.enums === String ? $root.google.analytics.data.v1alpha.UserCriteriaScoping[message.sequenceScoping] === undefined ? message.sequenceScoping : $root.google.analytics.data.v1alpha.UserCriteriaScoping[message.sequenceScoping] : message.sequenceScoping; - if (message.sequenceMaximumDuration != null && message.hasOwnProperty("sequenceMaximumDuration")) - object.sequenceMaximumDuration = $root.google.protobuf.Duration.toObject(message.sequenceMaximumDuration, options); - if (message.userSequenceSteps && message.userSequenceSteps.length) { - object.userSequenceSteps = []; - for (var j = 0; j < message.userSequenceSteps.length; ++j) - object.userSequenceSteps[j] = $root.google.analytics.data.v1alpha.UserSequenceStep.toObject(message.userSequenceSteps[j], options); + object.conditionScoping = options.enums === String ? "SESSION_CRITERIA_SCOPING_UNSPECIFIED" : 0; + object.segmentFilterExpression = null; } + if (message.conditionScoping != null && message.hasOwnProperty("conditionScoping")) + object.conditionScoping = options.enums === String ? $root.google.analytics.data.v1alpha.SessionCriteriaScoping[message.conditionScoping] === undefined ? message.conditionScoping : $root.google.analytics.data.v1alpha.SessionCriteriaScoping[message.conditionScoping] : message.conditionScoping; + if (message.segmentFilterExpression != null && message.hasOwnProperty("segmentFilterExpression")) + object.segmentFilterExpression = $root.google.analytics.data.v1alpha.SegmentFilterExpression.toObject(message.segmentFilterExpression, options); return object; }; /** - * Converts this UserSegmentSequenceGroup to JSON. + * Converts this SessionSegmentConditionGroup to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.UserSegmentSequenceGroup + * @memberof google.analytics.data.v1alpha.SessionSegmentConditionGroup * @instance * @returns {Object.} JSON object */ - UserSegmentSequenceGroup.prototype.toJSON = function toJSON() { + SessionSegmentConditionGroup.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for UserSegmentSequenceGroup + * Gets the default type url for SessionSegmentConditionGroup * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.UserSegmentSequenceGroup + * @memberof google.analytics.data.v1alpha.SessionSegmentConditionGroup * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - UserSegmentSequenceGroup.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + SessionSegmentConditionGroup.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.analytics.data.v1alpha.UserSegmentSequenceGroup"; + return typeUrlPrefix + "/google.analytics.data.v1alpha.SessionSegmentConditionGroup"; }; - return UserSegmentSequenceGroup; + return SessionSegmentConditionGroup; })(); - v1alpha.UserSequenceStep = (function() { + v1alpha.SessionSegmentExclusion = (function() { /** - * Properties of a UserSequenceStep. + * Properties of a SessionSegmentExclusion. * @memberof google.analytics.data.v1alpha - * @interface IUserSequenceStep - * @property {boolean|null} [isDirectlyFollowedBy] UserSequenceStep isDirectlyFollowedBy - * @property {google.analytics.data.v1alpha.UserCriteriaScoping|null} [stepScoping] UserSequenceStep stepScoping - * @property {google.analytics.data.v1alpha.ISegmentFilterExpression|null} [segmentFilterExpression] UserSequenceStep segmentFilterExpression + * @interface ISessionSegmentExclusion + * @property {google.analytics.data.v1alpha.SessionExclusionDuration|null} [sessionExclusionDuration] SessionSegmentExclusion sessionExclusionDuration + * @property {google.analytics.data.v1alpha.ISessionSegmentCriteria|null} [sessionExclusionCriteria] SessionSegmentExclusion sessionExclusionCriteria */ /** - * Constructs a new UserSequenceStep. + * Constructs a new SessionSegmentExclusion. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a UserSequenceStep. - * @implements IUserSequenceStep + * @classdesc Represents a SessionSegmentExclusion. + * @implements ISessionSegmentExclusion * @constructor - * @param {google.analytics.data.v1alpha.IUserSequenceStep=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.ISessionSegmentExclusion=} [properties] Properties to set */ - function UserSequenceStep(properties) { + function SessionSegmentExclusion(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -34478,105 +37501,91 @@ } /** - * UserSequenceStep isDirectlyFollowedBy. - * @member {boolean} isDirectlyFollowedBy - * @memberof google.analytics.data.v1alpha.UserSequenceStep - * @instance - */ - UserSequenceStep.prototype.isDirectlyFollowedBy = false; - - /** - * UserSequenceStep stepScoping. - * @member {google.analytics.data.v1alpha.UserCriteriaScoping} stepScoping - * @memberof google.analytics.data.v1alpha.UserSequenceStep + * SessionSegmentExclusion sessionExclusionDuration. + * @member {google.analytics.data.v1alpha.SessionExclusionDuration} sessionExclusionDuration + * @memberof google.analytics.data.v1alpha.SessionSegmentExclusion * @instance */ - UserSequenceStep.prototype.stepScoping = 0; + SessionSegmentExclusion.prototype.sessionExclusionDuration = 0; /** - * UserSequenceStep segmentFilterExpression. - * @member {google.analytics.data.v1alpha.ISegmentFilterExpression|null|undefined} segmentFilterExpression - * @memberof google.analytics.data.v1alpha.UserSequenceStep + * SessionSegmentExclusion sessionExclusionCriteria. + * @member {google.analytics.data.v1alpha.ISessionSegmentCriteria|null|undefined} sessionExclusionCriteria + * @memberof google.analytics.data.v1alpha.SessionSegmentExclusion * @instance */ - UserSequenceStep.prototype.segmentFilterExpression = null; + SessionSegmentExclusion.prototype.sessionExclusionCriteria = null; /** - * Creates a new UserSequenceStep instance using the specified properties. + * Creates a new SessionSegmentExclusion instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.UserSequenceStep + * @memberof google.analytics.data.v1alpha.SessionSegmentExclusion * @static - * @param {google.analytics.data.v1alpha.IUserSequenceStep=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.UserSequenceStep} UserSequenceStep instance + * @param {google.analytics.data.v1alpha.ISessionSegmentExclusion=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.SessionSegmentExclusion} SessionSegmentExclusion instance */ - UserSequenceStep.create = function create(properties) { - return new UserSequenceStep(properties); + SessionSegmentExclusion.create = function create(properties) { + return new SessionSegmentExclusion(properties); }; /** - * Encodes the specified UserSequenceStep message. Does not implicitly {@link google.analytics.data.v1alpha.UserSequenceStep.verify|verify} messages. + * Encodes the specified SessionSegmentExclusion message. Does not implicitly {@link google.analytics.data.v1alpha.SessionSegmentExclusion.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.UserSequenceStep + * @memberof google.analytics.data.v1alpha.SessionSegmentExclusion * @static - * @param {google.analytics.data.v1alpha.IUserSequenceStep} message UserSequenceStep message or plain object to encode + * @param {google.analytics.data.v1alpha.ISessionSegmentExclusion} message SessionSegmentExclusion message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - UserSequenceStep.encode = function encode(message, writer) { + SessionSegmentExclusion.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.isDirectlyFollowedBy != null && Object.hasOwnProperty.call(message, "isDirectlyFollowedBy")) - writer.uint32(/* id 1, wireType 0 =*/8).bool(message.isDirectlyFollowedBy); - if (message.stepScoping != null && Object.hasOwnProperty.call(message, "stepScoping")) - writer.uint32(/* id 2, wireType 0 =*/16).int32(message.stepScoping); - if (message.segmentFilterExpression != null && Object.hasOwnProperty.call(message, "segmentFilterExpression")) - $root.google.analytics.data.v1alpha.SegmentFilterExpression.encode(message.segmentFilterExpression, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.sessionExclusionDuration != null && Object.hasOwnProperty.call(message, "sessionExclusionDuration")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.sessionExclusionDuration); + if (message.sessionExclusionCriteria != null && Object.hasOwnProperty.call(message, "sessionExclusionCriteria")) + $root.google.analytics.data.v1alpha.SessionSegmentCriteria.encode(message.sessionExclusionCriteria, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); return writer; }; /** - * Encodes the specified UserSequenceStep message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.UserSequenceStep.verify|verify} messages. + * Encodes the specified SessionSegmentExclusion message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SessionSegmentExclusion.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.UserSequenceStep + * @memberof google.analytics.data.v1alpha.SessionSegmentExclusion * @static - * @param {google.analytics.data.v1alpha.IUserSequenceStep} message UserSequenceStep message or plain object to encode + * @param {google.analytics.data.v1alpha.ISessionSegmentExclusion} message SessionSegmentExclusion message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - UserSequenceStep.encodeDelimited = function encodeDelimited(message, writer) { + SessionSegmentExclusion.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a UserSequenceStep message from the specified reader or buffer. + * Decodes a SessionSegmentExclusion message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.UserSequenceStep + * @memberof google.analytics.data.v1alpha.SessionSegmentExclusion * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.UserSequenceStep} UserSequenceStep + * @returns {google.analytics.data.v1alpha.SessionSegmentExclusion} SessionSegmentExclusion * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - UserSequenceStep.decode = function decode(reader, length, error) { + SessionSegmentExclusion.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.UserSequenceStep(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.SessionSegmentExclusion(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { case 1: { - message.isDirectlyFollowedBy = reader.bool(); + message.sessionExclusionDuration = reader.int32(); break; } case 2: { - message.stepScoping = reader.int32(); - break; - } - case 3: { - message.segmentFilterExpression = $root.google.analytics.data.v1alpha.SegmentFilterExpression.decode(reader, reader.uint32()); + message.sessionExclusionCriteria = $root.google.analytics.data.v1alpha.SessionSegmentCriteria.decode(reader, reader.uint32()); break; } default: @@ -34588,174 +37597,177 @@ }; /** - * Decodes a UserSequenceStep message from the specified reader or buffer, length delimited. + * Decodes a SessionSegmentExclusion message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.UserSequenceStep + * @memberof google.analytics.data.v1alpha.SessionSegmentExclusion * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.UserSequenceStep} UserSequenceStep + * @returns {google.analytics.data.v1alpha.SessionSegmentExclusion} SessionSegmentExclusion * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - UserSequenceStep.decodeDelimited = function decodeDelimited(reader) { + SessionSegmentExclusion.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a UserSequenceStep message. + * Verifies a SessionSegmentExclusion message. * @function verify - * @memberof google.analytics.data.v1alpha.UserSequenceStep + * @memberof google.analytics.data.v1alpha.SessionSegmentExclusion * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - UserSequenceStep.verify = function verify(message) { + SessionSegmentExclusion.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.isDirectlyFollowedBy != null && message.hasOwnProperty("isDirectlyFollowedBy")) - if (typeof message.isDirectlyFollowedBy !== "boolean") - return "isDirectlyFollowedBy: boolean expected"; - if (message.stepScoping != null && message.hasOwnProperty("stepScoping")) - switch (message.stepScoping) { + if (message.sessionExclusionDuration != null && message.hasOwnProperty("sessionExclusionDuration")) + switch (message.sessionExclusionDuration) { default: - return "stepScoping: enum value expected"; + return "sessionExclusionDuration: enum value expected"; case 0: case 1: case 2: - case 3: break; } - if (message.segmentFilterExpression != null && message.hasOwnProperty("segmentFilterExpression")) { - var error = $root.google.analytics.data.v1alpha.SegmentFilterExpression.verify(message.segmentFilterExpression); + if (message.sessionExclusionCriteria != null && message.hasOwnProperty("sessionExclusionCriteria")) { + var error = $root.google.analytics.data.v1alpha.SessionSegmentCriteria.verify(message.sessionExclusionCriteria); if (error) - return "segmentFilterExpression." + error; + return "sessionExclusionCriteria." + error; } return null; }; /** - * Creates a UserSequenceStep message from a plain object. Also converts values to their respective internal types. + * Creates a SessionSegmentExclusion message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.UserSequenceStep + * @memberof google.analytics.data.v1alpha.SessionSegmentExclusion * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.UserSequenceStep} UserSequenceStep + * @returns {google.analytics.data.v1alpha.SessionSegmentExclusion} SessionSegmentExclusion */ - UserSequenceStep.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.UserSequenceStep) + SessionSegmentExclusion.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.SessionSegmentExclusion) return object; - var message = new $root.google.analytics.data.v1alpha.UserSequenceStep(); - if (object.isDirectlyFollowedBy != null) - message.isDirectlyFollowedBy = Boolean(object.isDirectlyFollowedBy); - switch (object.stepScoping) { + var message = new $root.google.analytics.data.v1alpha.SessionSegmentExclusion(); + switch (object.sessionExclusionDuration) { default: - if (typeof object.stepScoping === "number") { - message.stepScoping = object.stepScoping; + if (typeof object.sessionExclusionDuration === "number") { + message.sessionExclusionDuration = object.sessionExclusionDuration; break; } break; - case "USER_CRITERIA_SCOPING_UNSPECIFIED": + case "SESSION_EXCLUSION_DURATION_UNSPECIFIED": case 0: - message.stepScoping = 0; + message.sessionExclusionDuration = 0; break; - case "USER_CRITERIA_WITHIN_SAME_EVENT": + case "SESSION_EXCLUSION_TEMPORARY": case 1: - message.stepScoping = 1; + message.sessionExclusionDuration = 1; break; - case "USER_CRITERIA_WITHIN_SAME_SESSION": + case "SESSION_EXCLUSION_PERMANENT": case 2: - message.stepScoping = 2; - break; - case "USER_CRITERIA_ACROSS_ALL_SESSIONS": - case 3: - message.stepScoping = 3; + message.sessionExclusionDuration = 2; break; } - if (object.segmentFilterExpression != null) { - if (typeof object.segmentFilterExpression !== "object") - throw TypeError(".google.analytics.data.v1alpha.UserSequenceStep.segmentFilterExpression: object expected"); - message.segmentFilterExpression = $root.google.analytics.data.v1alpha.SegmentFilterExpression.fromObject(object.segmentFilterExpression); + if (object.sessionExclusionCriteria != null) { + if (typeof object.sessionExclusionCriteria !== "object") + throw TypeError(".google.analytics.data.v1alpha.SessionSegmentExclusion.sessionExclusionCriteria: object expected"); + message.sessionExclusionCriteria = $root.google.analytics.data.v1alpha.SessionSegmentCriteria.fromObject(object.sessionExclusionCriteria); } return message; }; /** - * Creates a plain object from a UserSequenceStep message. Also converts values to other types if specified. + * Creates a plain object from a SessionSegmentExclusion message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.UserSequenceStep + * @memberof google.analytics.data.v1alpha.SessionSegmentExclusion * @static - * @param {google.analytics.data.v1alpha.UserSequenceStep} message UserSequenceStep + * @param {google.analytics.data.v1alpha.SessionSegmentExclusion} message SessionSegmentExclusion * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - UserSequenceStep.toObject = function toObject(message, options) { + SessionSegmentExclusion.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; if (options.defaults) { - object.isDirectlyFollowedBy = false; - object.stepScoping = options.enums === String ? "USER_CRITERIA_SCOPING_UNSPECIFIED" : 0; - object.segmentFilterExpression = null; + object.sessionExclusionDuration = options.enums === String ? "SESSION_EXCLUSION_DURATION_UNSPECIFIED" : 0; + object.sessionExclusionCriteria = null; } - if (message.isDirectlyFollowedBy != null && message.hasOwnProperty("isDirectlyFollowedBy")) - object.isDirectlyFollowedBy = message.isDirectlyFollowedBy; - if (message.stepScoping != null && message.hasOwnProperty("stepScoping")) - object.stepScoping = options.enums === String ? $root.google.analytics.data.v1alpha.UserCriteriaScoping[message.stepScoping] === undefined ? message.stepScoping : $root.google.analytics.data.v1alpha.UserCriteriaScoping[message.stepScoping] : message.stepScoping; - if (message.segmentFilterExpression != null && message.hasOwnProperty("segmentFilterExpression")) - object.segmentFilterExpression = $root.google.analytics.data.v1alpha.SegmentFilterExpression.toObject(message.segmentFilterExpression, options); + if (message.sessionExclusionDuration != null && message.hasOwnProperty("sessionExclusionDuration")) + object.sessionExclusionDuration = options.enums === String ? $root.google.analytics.data.v1alpha.SessionExclusionDuration[message.sessionExclusionDuration] === undefined ? message.sessionExclusionDuration : $root.google.analytics.data.v1alpha.SessionExclusionDuration[message.sessionExclusionDuration] : message.sessionExclusionDuration; + if (message.sessionExclusionCriteria != null && message.hasOwnProperty("sessionExclusionCriteria")) + object.sessionExclusionCriteria = $root.google.analytics.data.v1alpha.SessionSegmentCriteria.toObject(message.sessionExclusionCriteria, options); return object; }; /** - * Converts this UserSequenceStep to JSON. + * Converts this SessionSegmentExclusion to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.UserSequenceStep + * @memberof google.analytics.data.v1alpha.SessionSegmentExclusion * @instance * @returns {Object.} JSON object */ - UserSequenceStep.prototype.toJSON = function toJSON() { + SessionSegmentExclusion.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for UserSequenceStep + * Gets the default type url for SessionSegmentExclusion * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.UserSequenceStep + * @memberof google.analytics.data.v1alpha.SessionSegmentExclusion * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - UserSequenceStep.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + SessionSegmentExclusion.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.analytics.data.v1alpha.UserSequenceStep"; + return typeUrlPrefix + "/google.analytics.data.v1alpha.SessionSegmentExclusion"; }; - return UserSequenceStep; + return SessionSegmentExclusion; })(); - v1alpha.UserSegmentExclusion = (function() { + /** + * SessionExclusionDuration enum. + * @name google.analytics.data.v1alpha.SessionExclusionDuration + * @enum {number} + * @property {number} SESSION_EXCLUSION_DURATION_UNSPECIFIED=0 SESSION_EXCLUSION_DURATION_UNSPECIFIED value + * @property {number} SESSION_EXCLUSION_TEMPORARY=1 SESSION_EXCLUSION_TEMPORARY value + * @property {number} SESSION_EXCLUSION_PERMANENT=2 SESSION_EXCLUSION_PERMANENT value + */ + v1alpha.SessionExclusionDuration = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "SESSION_EXCLUSION_DURATION_UNSPECIFIED"] = 0; + values[valuesById[1] = "SESSION_EXCLUSION_TEMPORARY"] = 1; + values[valuesById[2] = "SESSION_EXCLUSION_PERMANENT"] = 2; + return values; + })(); + + v1alpha.EventSegment = (function() { /** - * Properties of a UserSegmentExclusion. + * Properties of an EventSegment. * @memberof google.analytics.data.v1alpha - * @interface IUserSegmentExclusion - * @property {google.analytics.data.v1alpha.UserExclusionDuration|null} [userExclusionDuration] UserSegmentExclusion userExclusionDuration - * @property {google.analytics.data.v1alpha.IUserSegmentCriteria|null} [userExclusionCriteria] UserSegmentExclusion userExclusionCriteria + * @interface IEventSegment + * @property {google.analytics.data.v1alpha.IEventSegmentCriteria|null} [eventInclusionCriteria] EventSegment eventInclusionCriteria + * @property {google.analytics.data.v1alpha.IEventSegmentExclusion|null} [exclusion] EventSegment exclusion */ /** - * Constructs a new UserSegmentExclusion. + * Constructs a new EventSegment. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a UserSegmentExclusion. - * @implements IUserSegmentExclusion + * @classdesc Represents an EventSegment. + * @implements IEventSegment * @constructor - * @param {google.analytics.data.v1alpha.IUserSegmentExclusion=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IEventSegment=} [properties] Properties to set */ - function UserSegmentExclusion(properties) { + function EventSegment(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -34763,91 +37775,91 @@ } /** - * UserSegmentExclusion userExclusionDuration. - * @member {google.analytics.data.v1alpha.UserExclusionDuration} userExclusionDuration - * @memberof google.analytics.data.v1alpha.UserSegmentExclusion + * EventSegment eventInclusionCriteria. + * @member {google.analytics.data.v1alpha.IEventSegmentCriteria|null|undefined} eventInclusionCriteria + * @memberof google.analytics.data.v1alpha.EventSegment * @instance */ - UserSegmentExclusion.prototype.userExclusionDuration = 0; + EventSegment.prototype.eventInclusionCriteria = null; /** - * UserSegmentExclusion userExclusionCriteria. - * @member {google.analytics.data.v1alpha.IUserSegmentCriteria|null|undefined} userExclusionCriteria - * @memberof google.analytics.data.v1alpha.UserSegmentExclusion + * EventSegment exclusion. + * @member {google.analytics.data.v1alpha.IEventSegmentExclusion|null|undefined} exclusion + * @memberof google.analytics.data.v1alpha.EventSegment * @instance */ - UserSegmentExclusion.prototype.userExclusionCriteria = null; + EventSegment.prototype.exclusion = null; /** - * Creates a new UserSegmentExclusion instance using the specified properties. + * Creates a new EventSegment instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.UserSegmentExclusion + * @memberof google.analytics.data.v1alpha.EventSegment * @static - * @param {google.analytics.data.v1alpha.IUserSegmentExclusion=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.UserSegmentExclusion} UserSegmentExclusion instance + * @param {google.analytics.data.v1alpha.IEventSegment=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.EventSegment} EventSegment instance */ - UserSegmentExclusion.create = function create(properties) { - return new UserSegmentExclusion(properties); + EventSegment.create = function create(properties) { + return new EventSegment(properties); }; /** - * Encodes the specified UserSegmentExclusion message. Does not implicitly {@link google.analytics.data.v1alpha.UserSegmentExclusion.verify|verify} messages. + * Encodes the specified EventSegment message. Does not implicitly {@link google.analytics.data.v1alpha.EventSegment.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.UserSegmentExclusion + * @memberof google.analytics.data.v1alpha.EventSegment * @static - * @param {google.analytics.data.v1alpha.IUserSegmentExclusion} message UserSegmentExclusion message or plain object to encode + * @param {google.analytics.data.v1alpha.IEventSegment} message EventSegment message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - UserSegmentExclusion.encode = function encode(message, writer) { + EventSegment.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.userExclusionDuration != null && Object.hasOwnProperty.call(message, "userExclusionDuration")) - writer.uint32(/* id 1, wireType 0 =*/8).int32(message.userExclusionDuration); - if (message.userExclusionCriteria != null && Object.hasOwnProperty.call(message, "userExclusionCriteria")) - $root.google.analytics.data.v1alpha.UserSegmentCriteria.encode(message.userExclusionCriteria, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.eventInclusionCriteria != null && Object.hasOwnProperty.call(message, "eventInclusionCriteria")) + $root.google.analytics.data.v1alpha.EventSegmentCriteria.encode(message.eventInclusionCriteria, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.exclusion != null && Object.hasOwnProperty.call(message, "exclusion")) + $root.google.analytics.data.v1alpha.EventSegmentExclusion.encode(message.exclusion, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); return writer; }; /** - * Encodes the specified UserSegmentExclusion message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.UserSegmentExclusion.verify|verify} messages. + * Encodes the specified EventSegment message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.EventSegment.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.UserSegmentExclusion + * @memberof google.analytics.data.v1alpha.EventSegment * @static - * @param {google.analytics.data.v1alpha.IUserSegmentExclusion} message UserSegmentExclusion message or plain object to encode + * @param {google.analytics.data.v1alpha.IEventSegment} message EventSegment message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - UserSegmentExclusion.encodeDelimited = function encodeDelimited(message, writer) { + EventSegment.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a UserSegmentExclusion message from the specified reader or buffer. + * Decodes an EventSegment message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.UserSegmentExclusion + * @memberof google.analytics.data.v1alpha.EventSegment * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.UserSegmentExclusion} UserSegmentExclusion + * @returns {google.analytics.data.v1alpha.EventSegment} EventSegment * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - UserSegmentExclusion.decode = function decode(reader, length, error) { + EventSegment.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.UserSegmentExclusion(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.EventSegment(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { case 1: { - message.userExclusionDuration = reader.int32(); + message.eventInclusionCriteria = $root.google.analytics.data.v1alpha.EventSegmentCriteria.decode(reader, reader.uint32()); break; } case 2: { - message.userExclusionCriteria = $root.google.analytics.data.v1alpha.UserSegmentCriteria.decode(reader, reader.uint32()); + message.exclusion = $root.google.analytics.data.v1alpha.EventSegmentExclusion.decode(reader, reader.uint32()); break; } default: @@ -34859,177 +37871,142 @@ }; /** - * Decodes a UserSegmentExclusion message from the specified reader or buffer, length delimited. + * Decodes an EventSegment message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.UserSegmentExclusion + * @memberof google.analytics.data.v1alpha.EventSegment * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.UserSegmentExclusion} UserSegmentExclusion + * @returns {google.analytics.data.v1alpha.EventSegment} EventSegment * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - UserSegmentExclusion.decodeDelimited = function decodeDelimited(reader) { + EventSegment.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a UserSegmentExclusion message. + * Verifies an EventSegment message. * @function verify - * @memberof google.analytics.data.v1alpha.UserSegmentExclusion + * @memberof google.analytics.data.v1alpha.EventSegment * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - UserSegmentExclusion.verify = function verify(message) { + EventSegment.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.userExclusionDuration != null && message.hasOwnProperty("userExclusionDuration")) - switch (message.userExclusionDuration) { - default: - return "userExclusionDuration: enum value expected"; - case 0: - case 1: - case 2: - break; - } - if (message.userExclusionCriteria != null && message.hasOwnProperty("userExclusionCriteria")) { - var error = $root.google.analytics.data.v1alpha.UserSegmentCriteria.verify(message.userExclusionCriteria); + if (message.eventInclusionCriteria != null && message.hasOwnProperty("eventInclusionCriteria")) { + var error = $root.google.analytics.data.v1alpha.EventSegmentCriteria.verify(message.eventInclusionCriteria); if (error) - return "userExclusionCriteria." + error; + return "eventInclusionCriteria." + error; + } + if (message.exclusion != null && message.hasOwnProperty("exclusion")) { + var error = $root.google.analytics.data.v1alpha.EventSegmentExclusion.verify(message.exclusion); + if (error) + return "exclusion." + error; } return null; }; /** - * Creates a UserSegmentExclusion message from a plain object. Also converts values to their respective internal types. + * Creates an EventSegment message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.UserSegmentExclusion + * @memberof google.analytics.data.v1alpha.EventSegment * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.UserSegmentExclusion} UserSegmentExclusion + * @returns {google.analytics.data.v1alpha.EventSegment} EventSegment */ - UserSegmentExclusion.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.UserSegmentExclusion) + EventSegment.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.EventSegment) return object; - var message = new $root.google.analytics.data.v1alpha.UserSegmentExclusion(); - switch (object.userExclusionDuration) { - default: - if (typeof object.userExclusionDuration === "number") { - message.userExclusionDuration = object.userExclusionDuration; - break; - } - break; - case "USER_EXCLUSION_DURATION_UNSPECIFIED": - case 0: - message.userExclusionDuration = 0; - break; - case "USER_EXCLUSION_TEMPORARY": - case 1: - message.userExclusionDuration = 1; - break; - case "USER_EXCLUSION_PERMANENT": - case 2: - message.userExclusionDuration = 2; - break; + var message = new $root.google.analytics.data.v1alpha.EventSegment(); + if (object.eventInclusionCriteria != null) { + if (typeof object.eventInclusionCriteria !== "object") + throw TypeError(".google.analytics.data.v1alpha.EventSegment.eventInclusionCriteria: object expected"); + message.eventInclusionCriteria = $root.google.analytics.data.v1alpha.EventSegmentCriteria.fromObject(object.eventInclusionCriteria); } - if (object.userExclusionCriteria != null) { - if (typeof object.userExclusionCriteria !== "object") - throw TypeError(".google.analytics.data.v1alpha.UserSegmentExclusion.userExclusionCriteria: object expected"); - message.userExclusionCriteria = $root.google.analytics.data.v1alpha.UserSegmentCriteria.fromObject(object.userExclusionCriteria); + if (object.exclusion != null) { + if (typeof object.exclusion !== "object") + throw TypeError(".google.analytics.data.v1alpha.EventSegment.exclusion: object expected"); + message.exclusion = $root.google.analytics.data.v1alpha.EventSegmentExclusion.fromObject(object.exclusion); } return message; }; /** - * Creates a plain object from a UserSegmentExclusion message. Also converts values to other types if specified. + * Creates a plain object from an EventSegment message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.UserSegmentExclusion + * @memberof google.analytics.data.v1alpha.EventSegment * @static - * @param {google.analytics.data.v1alpha.UserSegmentExclusion} message UserSegmentExclusion + * @param {google.analytics.data.v1alpha.EventSegment} message EventSegment * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - UserSegmentExclusion.toObject = function toObject(message, options) { + EventSegment.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; if (options.defaults) { - object.userExclusionDuration = options.enums === String ? "USER_EXCLUSION_DURATION_UNSPECIFIED" : 0; - object.userExclusionCriteria = null; + object.eventInclusionCriteria = null; + object.exclusion = null; } - if (message.userExclusionDuration != null && message.hasOwnProperty("userExclusionDuration")) - object.userExclusionDuration = options.enums === String ? $root.google.analytics.data.v1alpha.UserExclusionDuration[message.userExclusionDuration] === undefined ? message.userExclusionDuration : $root.google.analytics.data.v1alpha.UserExclusionDuration[message.userExclusionDuration] : message.userExclusionDuration; - if (message.userExclusionCriteria != null && message.hasOwnProperty("userExclusionCriteria")) - object.userExclusionCriteria = $root.google.analytics.data.v1alpha.UserSegmentCriteria.toObject(message.userExclusionCriteria, options); + if (message.eventInclusionCriteria != null && message.hasOwnProperty("eventInclusionCriteria")) + object.eventInclusionCriteria = $root.google.analytics.data.v1alpha.EventSegmentCriteria.toObject(message.eventInclusionCriteria, options); + if (message.exclusion != null && message.hasOwnProperty("exclusion")) + object.exclusion = $root.google.analytics.data.v1alpha.EventSegmentExclusion.toObject(message.exclusion, options); return object; }; /** - * Converts this UserSegmentExclusion to JSON. + * Converts this EventSegment to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.UserSegmentExclusion + * @memberof google.analytics.data.v1alpha.EventSegment * @instance * @returns {Object.} JSON object */ - UserSegmentExclusion.prototype.toJSON = function toJSON() { + EventSegment.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for UserSegmentExclusion + * Gets the default type url for EventSegment * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.UserSegmentExclusion + * @memberof google.analytics.data.v1alpha.EventSegment * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - UserSegmentExclusion.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + EventSegment.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.analytics.data.v1alpha.UserSegmentExclusion"; + return typeUrlPrefix + "/google.analytics.data.v1alpha.EventSegment"; }; - return UserSegmentExclusion; - })(); - - /** - * UserExclusionDuration enum. - * @name google.analytics.data.v1alpha.UserExclusionDuration - * @enum {number} - * @property {number} USER_EXCLUSION_DURATION_UNSPECIFIED=0 USER_EXCLUSION_DURATION_UNSPECIFIED value - * @property {number} USER_EXCLUSION_TEMPORARY=1 USER_EXCLUSION_TEMPORARY value - * @property {number} USER_EXCLUSION_PERMANENT=2 USER_EXCLUSION_PERMANENT value - */ - v1alpha.UserExclusionDuration = (function() { - var valuesById = {}, values = Object.create(valuesById); - values[valuesById[0] = "USER_EXCLUSION_DURATION_UNSPECIFIED"] = 0; - values[valuesById[1] = "USER_EXCLUSION_TEMPORARY"] = 1; - values[valuesById[2] = "USER_EXCLUSION_PERMANENT"] = 2; - return values; + return EventSegment; })(); - v1alpha.SessionSegment = (function() { + v1alpha.EventSegmentCriteria = (function() { /** - * Properties of a SessionSegment. + * Properties of an EventSegmentCriteria. * @memberof google.analytics.data.v1alpha - * @interface ISessionSegment - * @property {google.analytics.data.v1alpha.ISessionSegmentCriteria|null} [sessionInclusionCriteria] SessionSegment sessionInclusionCriteria - * @property {google.analytics.data.v1alpha.ISessionSegmentExclusion|null} [exclusion] SessionSegment exclusion + * @interface IEventSegmentCriteria + * @property {Array.|null} [andConditionGroups] EventSegmentCriteria andConditionGroups */ /** - * Constructs a new SessionSegment. + * Constructs a new EventSegmentCriteria. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a SessionSegment. - * @implements ISessionSegment + * @classdesc Represents an EventSegmentCriteria. + * @implements IEventSegmentCriteria * @constructor - * @param {google.analytics.data.v1alpha.ISessionSegment=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IEventSegmentCriteria=} [properties] Properties to set */ - function SessionSegment(properties) { + function EventSegmentCriteria(properties) { + this.andConditionGroups = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -35037,91 +38014,80 @@ } /** - * SessionSegment sessionInclusionCriteria. - * @member {google.analytics.data.v1alpha.ISessionSegmentCriteria|null|undefined} sessionInclusionCriteria - * @memberof google.analytics.data.v1alpha.SessionSegment - * @instance - */ - SessionSegment.prototype.sessionInclusionCriteria = null; - - /** - * SessionSegment exclusion. - * @member {google.analytics.data.v1alpha.ISessionSegmentExclusion|null|undefined} exclusion - * @memberof google.analytics.data.v1alpha.SessionSegment + * EventSegmentCriteria andConditionGroups. + * @member {Array.} andConditionGroups + * @memberof google.analytics.data.v1alpha.EventSegmentCriteria * @instance */ - SessionSegment.prototype.exclusion = null; + EventSegmentCriteria.prototype.andConditionGroups = $util.emptyArray; /** - * Creates a new SessionSegment instance using the specified properties. + * Creates a new EventSegmentCriteria instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.SessionSegment + * @memberof google.analytics.data.v1alpha.EventSegmentCriteria * @static - * @param {google.analytics.data.v1alpha.ISessionSegment=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.SessionSegment} SessionSegment instance + * @param {google.analytics.data.v1alpha.IEventSegmentCriteria=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.EventSegmentCriteria} EventSegmentCriteria instance */ - SessionSegment.create = function create(properties) { - return new SessionSegment(properties); + EventSegmentCriteria.create = function create(properties) { + return new EventSegmentCriteria(properties); }; /** - * Encodes the specified SessionSegment message. Does not implicitly {@link google.analytics.data.v1alpha.SessionSegment.verify|verify} messages. + * Encodes the specified EventSegmentCriteria message. Does not implicitly {@link google.analytics.data.v1alpha.EventSegmentCriteria.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.SessionSegment + * @memberof google.analytics.data.v1alpha.EventSegmentCriteria * @static - * @param {google.analytics.data.v1alpha.ISessionSegment} message SessionSegment message or plain object to encode + * @param {google.analytics.data.v1alpha.IEventSegmentCriteria} message EventSegmentCriteria message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SessionSegment.encode = function encode(message, writer) { + EventSegmentCriteria.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.sessionInclusionCriteria != null && Object.hasOwnProperty.call(message, "sessionInclusionCriteria")) - $root.google.analytics.data.v1alpha.SessionSegmentCriteria.encode(message.sessionInclusionCriteria, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.exclusion != null && Object.hasOwnProperty.call(message, "exclusion")) - $root.google.analytics.data.v1alpha.SessionSegmentExclusion.encode(message.exclusion, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.andConditionGroups != null && message.andConditionGroups.length) + for (var i = 0; i < message.andConditionGroups.length; ++i) + $root.google.analytics.data.v1alpha.EventSegmentConditionGroup.encode(message.andConditionGroups[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); return writer; }; /** - * Encodes the specified SessionSegment message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SessionSegment.verify|verify} messages. + * Encodes the specified EventSegmentCriteria message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.EventSegmentCriteria.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.SessionSegment + * @memberof google.analytics.data.v1alpha.EventSegmentCriteria * @static - * @param {google.analytics.data.v1alpha.ISessionSegment} message SessionSegment message or plain object to encode + * @param {google.analytics.data.v1alpha.IEventSegmentCriteria} message EventSegmentCriteria message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SessionSegment.encodeDelimited = function encodeDelimited(message, writer) { + EventSegmentCriteria.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a SessionSegment message from the specified reader or buffer. + * Decodes an EventSegmentCriteria message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.SessionSegment + * @memberof google.analytics.data.v1alpha.EventSegmentCriteria * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.SessionSegment} SessionSegment + * @returns {google.analytics.data.v1alpha.EventSegmentCriteria} EventSegmentCriteria * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SessionSegment.decode = function decode(reader, length, error) { + EventSegmentCriteria.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.SessionSegment(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.EventSegmentCriteria(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { case 1: { - message.sessionInclusionCriteria = $root.google.analytics.data.v1alpha.SessionSegmentCriteria.decode(reader, reader.uint32()); - break; - } - case 2: { - message.exclusion = $root.google.analytics.data.v1alpha.SessionSegmentExclusion.decode(reader, reader.uint32()); + if (!(message.andConditionGroups && message.andConditionGroups.length)) + message.andConditionGroups = []; + message.andConditionGroups.push($root.google.analytics.data.v1alpha.EventSegmentConditionGroup.decode(reader, reader.uint32())); break; } default: @@ -35133,142 +38099,154 @@ }; /** - * Decodes a SessionSegment message from the specified reader or buffer, length delimited. + * Decodes an EventSegmentCriteria message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.SessionSegment + * @memberof google.analytics.data.v1alpha.EventSegmentCriteria * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.SessionSegment} SessionSegment + * @returns {google.analytics.data.v1alpha.EventSegmentCriteria} EventSegmentCriteria * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SessionSegment.decodeDelimited = function decodeDelimited(reader) { + EventSegmentCriteria.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a SessionSegment message. + * Verifies an EventSegmentCriteria message. * @function verify - * @memberof google.analytics.data.v1alpha.SessionSegment + * @memberof google.analytics.data.v1alpha.EventSegmentCriteria * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SessionSegment.verify = function verify(message) { + EventSegmentCriteria.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.sessionInclusionCriteria != null && message.hasOwnProperty("sessionInclusionCriteria")) { - var error = $root.google.analytics.data.v1alpha.SessionSegmentCriteria.verify(message.sessionInclusionCriteria); - if (error) - return "sessionInclusionCriteria." + error; - } - if (message.exclusion != null && message.hasOwnProperty("exclusion")) { - var error = $root.google.analytics.data.v1alpha.SessionSegmentExclusion.verify(message.exclusion); - if (error) - return "exclusion." + error; + if (message.andConditionGroups != null && message.hasOwnProperty("andConditionGroups")) { + if (!Array.isArray(message.andConditionGroups)) + return "andConditionGroups: array expected"; + for (var i = 0; i < message.andConditionGroups.length; ++i) { + var error = $root.google.analytics.data.v1alpha.EventSegmentConditionGroup.verify(message.andConditionGroups[i]); + if (error) + return "andConditionGroups." + error; + } } return null; }; /** - * Creates a SessionSegment message from a plain object. Also converts values to their respective internal types. + * Creates an EventSegmentCriteria message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.SessionSegment + * @memberof google.analytics.data.v1alpha.EventSegmentCriteria * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.SessionSegment} SessionSegment + * @returns {google.analytics.data.v1alpha.EventSegmentCriteria} EventSegmentCriteria */ - SessionSegment.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.SessionSegment) + EventSegmentCriteria.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.EventSegmentCriteria) return object; - var message = new $root.google.analytics.data.v1alpha.SessionSegment(); - if (object.sessionInclusionCriteria != null) { - if (typeof object.sessionInclusionCriteria !== "object") - throw TypeError(".google.analytics.data.v1alpha.SessionSegment.sessionInclusionCriteria: object expected"); - message.sessionInclusionCriteria = $root.google.analytics.data.v1alpha.SessionSegmentCriteria.fromObject(object.sessionInclusionCriteria); - } - if (object.exclusion != null) { - if (typeof object.exclusion !== "object") - throw TypeError(".google.analytics.data.v1alpha.SessionSegment.exclusion: object expected"); - message.exclusion = $root.google.analytics.data.v1alpha.SessionSegmentExclusion.fromObject(object.exclusion); + var message = new $root.google.analytics.data.v1alpha.EventSegmentCriteria(); + if (object.andConditionGroups) { + if (!Array.isArray(object.andConditionGroups)) + throw TypeError(".google.analytics.data.v1alpha.EventSegmentCriteria.andConditionGroups: array expected"); + message.andConditionGroups = []; + for (var i = 0; i < object.andConditionGroups.length; ++i) { + if (typeof object.andConditionGroups[i] !== "object") + throw TypeError(".google.analytics.data.v1alpha.EventSegmentCriteria.andConditionGroups: object expected"); + message.andConditionGroups[i] = $root.google.analytics.data.v1alpha.EventSegmentConditionGroup.fromObject(object.andConditionGroups[i]); + } } return message; }; /** - * Creates a plain object from a SessionSegment message. Also converts values to other types if specified. + * Creates a plain object from an EventSegmentCriteria message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.SessionSegment + * @memberof google.analytics.data.v1alpha.EventSegmentCriteria * @static - * @param {google.analytics.data.v1alpha.SessionSegment} message SessionSegment + * @param {google.analytics.data.v1alpha.EventSegmentCriteria} message EventSegmentCriteria * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SessionSegment.toObject = function toObject(message, options) { + EventSegmentCriteria.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.defaults) { - object.sessionInclusionCriteria = null; - object.exclusion = null; + if (options.arrays || options.defaults) + object.andConditionGroups = []; + if (message.andConditionGroups && message.andConditionGroups.length) { + object.andConditionGroups = []; + for (var j = 0; j < message.andConditionGroups.length; ++j) + object.andConditionGroups[j] = $root.google.analytics.data.v1alpha.EventSegmentConditionGroup.toObject(message.andConditionGroups[j], options); } - if (message.sessionInclusionCriteria != null && message.hasOwnProperty("sessionInclusionCriteria")) - object.sessionInclusionCriteria = $root.google.analytics.data.v1alpha.SessionSegmentCriteria.toObject(message.sessionInclusionCriteria, options); - if (message.exclusion != null && message.hasOwnProperty("exclusion")) - object.exclusion = $root.google.analytics.data.v1alpha.SessionSegmentExclusion.toObject(message.exclusion, options); return object; }; /** - * Converts this SessionSegment to JSON. + * Converts this EventSegmentCriteria to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.SessionSegment + * @memberof google.analytics.data.v1alpha.EventSegmentCriteria * @instance * @returns {Object.} JSON object */ - SessionSegment.prototype.toJSON = function toJSON() { + EventSegmentCriteria.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for SessionSegment + * Gets the default type url for EventSegmentCriteria * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.SessionSegment + * @memberof google.analytics.data.v1alpha.EventSegmentCriteria * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - SessionSegment.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + EventSegmentCriteria.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.analytics.data.v1alpha.SessionSegment"; + return typeUrlPrefix + "/google.analytics.data.v1alpha.EventSegmentCriteria"; }; - return SessionSegment; + return EventSegmentCriteria; })(); - v1alpha.SessionSegmentCriteria = (function() { + /** + * EventCriteriaScoping enum. + * @name google.analytics.data.v1alpha.EventCriteriaScoping + * @enum {number} + * @property {number} EVENT_CRITERIA_SCOPING_UNSPECIFIED=0 EVENT_CRITERIA_SCOPING_UNSPECIFIED value + * @property {number} EVENT_CRITERIA_WITHIN_SAME_EVENT=1 EVENT_CRITERIA_WITHIN_SAME_EVENT value + */ + v1alpha.EventCriteriaScoping = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "EVENT_CRITERIA_SCOPING_UNSPECIFIED"] = 0; + values[valuesById[1] = "EVENT_CRITERIA_WITHIN_SAME_EVENT"] = 1; + return values; + })(); + + v1alpha.EventSegmentConditionGroup = (function() { /** - * Properties of a SessionSegmentCriteria. + * Properties of an EventSegmentConditionGroup. * @memberof google.analytics.data.v1alpha - * @interface ISessionSegmentCriteria - * @property {Array.|null} [andConditionGroups] SessionSegmentCriteria andConditionGroups + * @interface IEventSegmentConditionGroup + * @property {google.analytics.data.v1alpha.EventCriteriaScoping|null} [conditionScoping] EventSegmentConditionGroup conditionScoping + * @property {google.analytics.data.v1alpha.ISegmentFilterExpression|null} [segmentFilterExpression] EventSegmentConditionGroup segmentFilterExpression */ /** - * Constructs a new SessionSegmentCriteria. + * Constructs a new EventSegmentConditionGroup. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a SessionSegmentCriteria. - * @implements ISessionSegmentCriteria + * @classdesc Represents an EventSegmentConditionGroup. + * @implements IEventSegmentConditionGroup * @constructor - * @param {google.analytics.data.v1alpha.ISessionSegmentCriteria=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IEventSegmentConditionGroup=} [properties] Properties to set */ - function SessionSegmentCriteria(properties) { - this.andConditionGroups = []; + function EventSegmentConditionGroup(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -35276,80 +38254,91 @@ } /** - * SessionSegmentCriteria andConditionGroups. - * @member {Array.} andConditionGroups - * @memberof google.analytics.data.v1alpha.SessionSegmentCriteria + * EventSegmentConditionGroup conditionScoping. + * @member {google.analytics.data.v1alpha.EventCriteriaScoping} conditionScoping + * @memberof google.analytics.data.v1alpha.EventSegmentConditionGroup * @instance */ - SessionSegmentCriteria.prototype.andConditionGroups = $util.emptyArray; + EventSegmentConditionGroup.prototype.conditionScoping = 0; /** - * Creates a new SessionSegmentCriteria instance using the specified properties. + * EventSegmentConditionGroup segmentFilterExpression. + * @member {google.analytics.data.v1alpha.ISegmentFilterExpression|null|undefined} segmentFilterExpression + * @memberof google.analytics.data.v1alpha.EventSegmentConditionGroup + * @instance + */ + EventSegmentConditionGroup.prototype.segmentFilterExpression = null; + + /** + * Creates a new EventSegmentConditionGroup instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.SessionSegmentCriteria + * @memberof google.analytics.data.v1alpha.EventSegmentConditionGroup * @static - * @param {google.analytics.data.v1alpha.ISessionSegmentCriteria=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.SessionSegmentCriteria} SessionSegmentCriteria instance + * @param {google.analytics.data.v1alpha.IEventSegmentConditionGroup=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.EventSegmentConditionGroup} EventSegmentConditionGroup instance */ - SessionSegmentCriteria.create = function create(properties) { - return new SessionSegmentCriteria(properties); + EventSegmentConditionGroup.create = function create(properties) { + return new EventSegmentConditionGroup(properties); }; /** - * Encodes the specified SessionSegmentCriteria message. Does not implicitly {@link google.analytics.data.v1alpha.SessionSegmentCriteria.verify|verify} messages. + * Encodes the specified EventSegmentConditionGroup message. Does not implicitly {@link google.analytics.data.v1alpha.EventSegmentConditionGroup.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.SessionSegmentCriteria + * @memberof google.analytics.data.v1alpha.EventSegmentConditionGroup * @static - * @param {google.analytics.data.v1alpha.ISessionSegmentCriteria} message SessionSegmentCriteria message or plain object to encode + * @param {google.analytics.data.v1alpha.IEventSegmentConditionGroup} message EventSegmentConditionGroup message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SessionSegmentCriteria.encode = function encode(message, writer) { + EventSegmentConditionGroup.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.andConditionGroups != null && message.andConditionGroups.length) - for (var i = 0; i < message.andConditionGroups.length; ++i) - $root.google.analytics.data.v1alpha.SessionSegmentConditionGroup.encode(message.andConditionGroups[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.conditionScoping != null && Object.hasOwnProperty.call(message, "conditionScoping")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.conditionScoping); + if (message.segmentFilterExpression != null && Object.hasOwnProperty.call(message, "segmentFilterExpression")) + $root.google.analytics.data.v1alpha.SegmentFilterExpression.encode(message.segmentFilterExpression, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); return writer; }; /** - * Encodes the specified SessionSegmentCriteria message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SessionSegmentCriteria.verify|verify} messages. + * Encodes the specified EventSegmentConditionGroup message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.EventSegmentConditionGroup.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.SessionSegmentCriteria + * @memberof google.analytics.data.v1alpha.EventSegmentConditionGroup * @static - * @param {google.analytics.data.v1alpha.ISessionSegmentCriteria} message SessionSegmentCriteria message or plain object to encode + * @param {google.analytics.data.v1alpha.IEventSegmentConditionGroup} message EventSegmentConditionGroup message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SessionSegmentCriteria.encodeDelimited = function encodeDelimited(message, writer) { + EventSegmentConditionGroup.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a SessionSegmentCriteria message from the specified reader or buffer. + * Decodes an EventSegmentConditionGroup message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.SessionSegmentCriteria + * @memberof google.analytics.data.v1alpha.EventSegmentConditionGroup * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.SessionSegmentCriteria} SessionSegmentCriteria + * @returns {google.analytics.data.v1alpha.EventSegmentConditionGroup} EventSegmentConditionGroup * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SessionSegmentCriteria.decode = function decode(reader, length, error) { + EventSegmentConditionGroup.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.SessionSegmentCriteria(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.EventSegmentConditionGroup(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { case 1: { - if (!(message.andConditionGroups && message.andConditionGroups.length)) - message.andConditionGroups = []; - message.andConditionGroups.push($root.google.analytics.data.v1alpha.SessionSegmentConditionGroup.decode(reader, reader.uint32())); + message.conditionScoping = reader.int32(); + break; + } + case 2: { + message.segmentFilterExpression = $root.google.analytics.data.v1alpha.SegmentFilterExpression.decode(reader, reader.uint32()); break; } default: @@ -35361,156 +38350,156 @@ }; /** - * Decodes a SessionSegmentCriteria message from the specified reader or buffer, length delimited. + * Decodes an EventSegmentConditionGroup message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.SessionSegmentCriteria + * @memberof google.analytics.data.v1alpha.EventSegmentConditionGroup * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.SessionSegmentCriteria} SessionSegmentCriteria + * @returns {google.analytics.data.v1alpha.EventSegmentConditionGroup} EventSegmentConditionGroup * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SessionSegmentCriteria.decodeDelimited = function decodeDelimited(reader) { + EventSegmentConditionGroup.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a SessionSegmentCriteria message. + * Verifies an EventSegmentConditionGroup message. * @function verify - * @memberof google.analytics.data.v1alpha.SessionSegmentCriteria + * @memberof google.analytics.data.v1alpha.EventSegmentConditionGroup * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SessionSegmentCriteria.verify = function verify(message) { + EventSegmentConditionGroup.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.andConditionGroups != null && message.hasOwnProperty("andConditionGroups")) { - if (!Array.isArray(message.andConditionGroups)) - return "andConditionGroups: array expected"; - for (var i = 0; i < message.andConditionGroups.length; ++i) { - var error = $root.google.analytics.data.v1alpha.SessionSegmentConditionGroup.verify(message.andConditionGroups[i]); - if (error) - return "andConditionGroups." + error; + if (message.conditionScoping != null && message.hasOwnProperty("conditionScoping")) + switch (message.conditionScoping) { + default: + return "conditionScoping: enum value expected"; + case 0: + case 1: + break; } + if (message.segmentFilterExpression != null && message.hasOwnProperty("segmentFilterExpression")) { + var error = $root.google.analytics.data.v1alpha.SegmentFilterExpression.verify(message.segmentFilterExpression); + if (error) + return "segmentFilterExpression." + error; } return null; }; /** - * Creates a SessionSegmentCriteria message from a plain object. Also converts values to their respective internal types. + * Creates an EventSegmentConditionGroup message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.SessionSegmentCriteria + * @memberof google.analytics.data.v1alpha.EventSegmentConditionGroup * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.SessionSegmentCriteria} SessionSegmentCriteria + * @returns {google.analytics.data.v1alpha.EventSegmentConditionGroup} EventSegmentConditionGroup */ - SessionSegmentCriteria.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.SessionSegmentCriteria) + EventSegmentConditionGroup.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.EventSegmentConditionGroup) return object; - var message = new $root.google.analytics.data.v1alpha.SessionSegmentCriteria(); - if (object.andConditionGroups) { - if (!Array.isArray(object.andConditionGroups)) - throw TypeError(".google.analytics.data.v1alpha.SessionSegmentCriteria.andConditionGroups: array expected"); - message.andConditionGroups = []; - for (var i = 0; i < object.andConditionGroups.length; ++i) { - if (typeof object.andConditionGroups[i] !== "object") - throw TypeError(".google.analytics.data.v1alpha.SessionSegmentCriteria.andConditionGroups: object expected"); - message.andConditionGroups[i] = $root.google.analytics.data.v1alpha.SessionSegmentConditionGroup.fromObject(object.andConditionGroups[i]); + var message = new $root.google.analytics.data.v1alpha.EventSegmentConditionGroup(); + switch (object.conditionScoping) { + default: + if (typeof object.conditionScoping === "number") { + message.conditionScoping = object.conditionScoping; + break; } + break; + case "EVENT_CRITERIA_SCOPING_UNSPECIFIED": + case 0: + message.conditionScoping = 0; + break; + case "EVENT_CRITERIA_WITHIN_SAME_EVENT": + case 1: + message.conditionScoping = 1; + break; + } + if (object.segmentFilterExpression != null) { + if (typeof object.segmentFilterExpression !== "object") + throw TypeError(".google.analytics.data.v1alpha.EventSegmentConditionGroup.segmentFilterExpression: object expected"); + message.segmentFilterExpression = $root.google.analytics.data.v1alpha.SegmentFilterExpression.fromObject(object.segmentFilterExpression); } return message; }; /** - * Creates a plain object from a SessionSegmentCriteria message. Also converts values to other types if specified. + * Creates a plain object from an EventSegmentConditionGroup message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.SessionSegmentCriteria + * @memberof google.analytics.data.v1alpha.EventSegmentConditionGroup * @static - * @param {google.analytics.data.v1alpha.SessionSegmentCriteria} message SessionSegmentCriteria + * @param {google.analytics.data.v1alpha.EventSegmentConditionGroup} message EventSegmentConditionGroup * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SessionSegmentCriteria.toObject = function toObject(message, options) { + EventSegmentConditionGroup.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.arrays || options.defaults) - object.andConditionGroups = []; - if (message.andConditionGroups && message.andConditionGroups.length) { - object.andConditionGroups = []; - for (var j = 0; j < message.andConditionGroups.length; ++j) - object.andConditionGroups[j] = $root.google.analytics.data.v1alpha.SessionSegmentConditionGroup.toObject(message.andConditionGroups[j], options); + if (options.defaults) { + object.conditionScoping = options.enums === String ? "EVENT_CRITERIA_SCOPING_UNSPECIFIED" : 0; + object.segmentFilterExpression = null; } + if (message.conditionScoping != null && message.hasOwnProperty("conditionScoping")) + object.conditionScoping = options.enums === String ? $root.google.analytics.data.v1alpha.EventCriteriaScoping[message.conditionScoping] === undefined ? message.conditionScoping : $root.google.analytics.data.v1alpha.EventCriteriaScoping[message.conditionScoping] : message.conditionScoping; + if (message.segmentFilterExpression != null && message.hasOwnProperty("segmentFilterExpression")) + object.segmentFilterExpression = $root.google.analytics.data.v1alpha.SegmentFilterExpression.toObject(message.segmentFilterExpression, options); return object; }; /** - * Converts this SessionSegmentCriteria to JSON. + * Converts this EventSegmentConditionGroup to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.SessionSegmentCriteria + * @memberof google.analytics.data.v1alpha.EventSegmentConditionGroup * @instance * @returns {Object.} JSON object */ - SessionSegmentCriteria.prototype.toJSON = function toJSON() { + EventSegmentConditionGroup.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for SessionSegmentCriteria + * Gets the default type url for EventSegmentConditionGroup * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.SessionSegmentCriteria + * @memberof google.analytics.data.v1alpha.EventSegmentConditionGroup * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - SessionSegmentCriteria.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + EventSegmentConditionGroup.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.analytics.data.v1alpha.SessionSegmentCriteria"; + return typeUrlPrefix + "/google.analytics.data.v1alpha.EventSegmentConditionGroup"; }; - return SessionSegmentCriteria; - })(); - - /** - * SessionCriteriaScoping enum. - * @name google.analytics.data.v1alpha.SessionCriteriaScoping - * @enum {number} - * @property {number} SESSION_CRITERIA_SCOPING_UNSPECIFIED=0 SESSION_CRITERIA_SCOPING_UNSPECIFIED value - * @property {number} SESSION_CRITERIA_WITHIN_SAME_EVENT=1 SESSION_CRITERIA_WITHIN_SAME_EVENT value - * @property {number} SESSION_CRITERIA_WITHIN_SAME_SESSION=2 SESSION_CRITERIA_WITHIN_SAME_SESSION value - */ - v1alpha.SessionCriteriaScoping = (function() { - var valuesById = {}, values = Object.create(valuesById); - values[valuesById[0] = "SESSION_CRITERIA_SCOPING_UNSPECIFIED"] = 0; - values[valuesById[1] = "SESSION_CRITERIA_WITHIN_SAME_EVENT"] = 1; - values[valuesById[2] = "SESSION_CRITERIA_WITHIN_SAME_SESSION"] = 2; - return values; + return EventSegmentConditionGroup; })(); - v1alpha.SessionSegmentConditionGroup = (function() { + v1alpha.EventSegmentExclusion = (function() { /** - * Properties of a SessionSegmentConditionGroup. + * Properties of an EventSegmentExclusion. * @memberof google.analytics.data.v1alpha - * @interface ISessionSegmentConditionGroup - * @property {google.analytics.data.v1alpha.SessionCriteriaScoping|null} [conditionScoping] SessionSegmentConditionGroup conditionScoping - * @property {google.analytics.data.v1alpha.ISegmentFilterExpression|null} [segmentFilterExpression] SessionSegmentConditionGroup segmentFilterExpression + * @interface IEventSegmentExclusion + * @property {google.analytics.data.v1alpha.EventExclusionDuration|null} [eventExclusionDuration] EventSegmentExclusion eventExclusionDuration + * @property {google.analytics.data.v1alpha.IEventSegmentCriteria|null} [eventExclusionCriteria] EventSegmentExclusion eventExclusionCriteria */ /** - * Constructs a new SessionSegmentConditionGroup. + * Constructs a new EventSegmentExclusion. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a SessionSegmentConditionGroup. - * @implements ISessionSegmentConditionGroup + * @classdesc Represents an EventSegmentExclusion. + * @implements IEventSegmentExclusion * @constructor - * @param {google.analytics.data.v1alpha.ISessionSegmentConditionGroup=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IEventSegmentExclusion=} [properties] Properties to set */ - function SessionSegmentConditionGroup(properties) { + function EventSegmentExclusion(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -35518,91 +38507,91 @@ } /** - * SessionSegmentConditionGroup conditionScoping. - * @member {google.analytics.data.v1alpha.SessionCriteriaScoping} conditionScoping - * @memberof google.analytics.data.v1alpha.SessionSegmentConditionGroup + * EventSegmentExclusion eventExclusionDuration. + * @member {google.analytics.data.v1alpha.EventExclusionDuration} eventExclusionDuration + * @memberof google.analytics.data.v1alpha.EventSegmentExclusion * @instance */ - SessionSegmentConditionGroup.prototype.conditionScoping = 0; + EventSegmentExclusion.prototype.eventExclusionDuration = 0; /** - * SessionSegmentConditionGroup segmentFilterExpression. - * @member {google.analytics.data.v1alpha.ISegmentFilterExpression|null|undefined} segmentFilterExpression - * @memberof google.analytics.data.v1alpha.SessionSegmentConditionGroup + * EventSegmentExclusion eventExclusionCriteria. + * @member {google.analytics.data.v1alpha.IEventSegmentCriteria|null|undefined} eventExclusionCriteria + * @memberof google.analytics.data.v1alpha.EventSegmentExclusion * @instance */ - SessionSegmentConditionGroup.prototype.segmentFilterExpression = null; + EventSegmentExclusion.prototype.eventExclusionCriteria = null; /** - * Creates a new SessionSegmentConditionGroup instance using the specified properties. + * Creates a new EventSegmentExclusion instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.SessionSegmentConditionGroup + * @memberof google.analytics.data.v1alpha.EventSegmentExclusion * @static - * @param {google.analytics.data.v1alpha.ISessionSegmentConditionGroup=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.SessionSegmentConditionGroup} SessionSegmentConditionGroup instance + * @param {google.analytics.data.v1alpha.IEventSegmentExclusion=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.EventSegmentExclusion} EventSegmentExclusion instance */ - SessionSegmentConditionGroup.create = function create(properties) { - return new SessionSegmentConditionGroup(properties); + EventSegmentExclusion.create = function create(properties) { + return new EventSegmentExclusion(properties); }; /** - * Encodes the specified SessionSegmentConditionGroup message. Does not implicitly {@link google.analytics.data.v1alpha.SessionSegmentConditionGroup.verify|verify} messages. + * Encodes the specified EventSegmentExclusion message. Does not implicitly {@link google.analytics.data.v1alpha.EventSegmentExclusion.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.SessionSegmentConditionGroup + * @memberof google.analytics.data.v1alpha.EventSegmentExclusion * @static - * @param {google.analytics.data.v1alpha.ISessionSegmentConditionGroup} message SessionSegmentConditionGroup message or plain object to encode + * @param {google.analytics.data.v1alpha.IEventSegmentExclusion} message EventSegmentExclusion message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SessionSegmentConditionGroup.encode = function encode(message, writer) { + EventSegmentExclusion.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.conditionScoping != null && Object.hasOwnProperty.call(message, "conditionScoping")) - writer.uint32(/* id 1, wireType 0 =*/8).int32(message.conditionScoping); - if (message.segmentFilterExpression != null && Object.hasOwnProperty.call(message, "segmentFilterExpression")) - $root.google.analytics.data.v1alpha.SegmentFilterExpression.encode(message.segmentFilterExpression, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.eventExclusionDuration != null && Object.hasOwnProperty.call(message, "eventExclusionDuration")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.eventExclusionDuration); + if (message.eventExclusionCriteria != null && Object.hasOwnProperty.call(message, "eventExclusionCriteria")) + $root.google.analytics.data.v1alpha.EventSegmentCriteria.encode(message.eventExclusionCriteria, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); return writer; }; /** - * Encodes the specified SessionSegmentConditionGroup message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SessionSegmentConditionGroup.verify|verify} messages. + * Encodes the specified EventSegmentExclusion message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.EventSegmentExclusion.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.SessionSegmentConditionGroup + * @memberof google.analytics.data.v1alpha.EventSegmentExclusion * @static - * @param {google.analytics.data.v1alpha.ISessionSegmentConditionGroup} message SessionSegmentConditionGroup message or plain object to encode + * @param {google.analytics.data.v1alpha.IEventSegmentExclusion} message EventSegmentExclusion message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SessionSegmentConditionGroup.encodeDelimited = function encodeDelimited(message, writer) { + EventSegmentExclusion.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a SessionSegmentConditionGroup message from the specified reader or buffer. + * Decodes an EventSegmentExclusion message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.SessionSegmentConditionGroup + * @memberof google.analytics.data.v1alpha.EventSegmentExclusion * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.SessionSegmentConditionGroup} SessionSegmentConditionGroup + * @returns {google.analytics.data.v1alpha.EventSegmentExclusion} EventSegmentExclusion * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SessionSegmentConditionGroup.decode = function decode(reader, length, error) { + EventSegmentExclusion.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.SessionSegmentConditionGroup(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.EventSegmentExclusion(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { case 1: { - message.conditionScoping = reader.int32(); + message.eventExclusionDuration = reader.int32(); break; } case 2: { - message.segmentFilterExpression = $root.google.analytics.data.v1alpha.SegmentFilterExpression.decode(reader, reader.uint32()); + message.eventExclusionCriteria = $root.google.analytics.data.v1alpha.EventSegmentCriteria.decode(reader, reader.uint32()); break; } default: @@ -35614,161 +38603,172 @@ }; /** - * Decodes a SessionSegmentConditionGroup message from the specified reader or buffer, length delimited. + * Decodes an EventSegmentExclusion message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.SessionSegmentConditionGroup + * @memberof google.analytics.data.v1alpha.EventSegmentExclusion * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.SessionSegmentConditionGroup} SessionSegmentConditionGroup + * @returns {google.analytics.data.v1alpha.EventSegmentExclusion} EventSegmentExclusion * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SessionSegmentConditionGroup.decodeDelimited = function decodeDelimited(reader) { + EventSegmentExclusion.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a SessionSegmentConditionGroup message. + * Verifies an EventSegmentExclusion message. * @function verify - * @memberof google.analytics.data.v1alpha.SessionSegmentConditionGroup + * @memberof google.analytics.data.v1alpha.EventSegmentExclusion * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SessionSegmentConditionGroup.verify = function verify(message) { + EventSegmentExclusion.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.conditionScoping != null && message.hasOwnProperty("conditionScoping")) - switch (message.conditionScoping) { + if (message.eventExclusionDuration != null && message.hasOwnProperty("eventExclusionDuration")) + switch (message.eventExclusionDuration) { default: - return "conditionScoping: enum value expected"; + return "eventExclusionDuration: enum value expected"; case 0: case 1: - case 2: break; } - if (message.segmentFilterExpression != null && message.hasOwnProperty("segmentFilterExpression")) { - var error = $root.google.analytics.data.v1alpha.SegmentFilterExpression.verify(message.segmentFilterExpression); + if (message.eventExclusionCriteria != null && message.hasOwnProperty("eventExclusionCriteria")) { + var error = $root.google.analytics.data.v1alpha.EventSegmentCriteria.verify(message.eventExclusionCriteria); if (error) - return "segmentFilterExpression." + error; + return "eventExclusionCriteria." + error; } return null; }; /** - * Creates a SessionSegmentConditionGroup message from a plain object. Also converts values to their respective internal types. + * Creates an EventSegmentExclusion message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.SessionSegmentConditionGroup + * @memberof google.analytics.data.v1alpha.EventSegmentExclusion * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.SessionSegmentConditionGroup} SessionSegmentConditionGroup + * @returns {google.analytics.data.v1alpha.EventSegmentExclusion} EventSegmentExclusion */ - SessionSegmentConditionGroup.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.SessionSegmentConditionGroup) + EventSegmentExclusion.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.EventSegmentExclusion) return object; - var message = new $root.google.analytics.data.v1alpha.SessionSegmentConditionGroup(); - switch (object.conditionScoping) { + var message = new $root.google.analytics.data.v1alpha.EventSegmentExclusion(); + switch (object.eventExclusionDuration) { default: - if (typeof object.conditionScoping === "number") { - message.conditionScoping = object.conditionScoping; + if (typeof object.eventExclusionDuration === "number") { + message.eventExclusionDuration = object.eventExclusionDuration; break; } break; - case "SESSION_CRITERIA_SCOPING_UNSPECIFIED": + case "EVENT_EXCLUSION_DURATION_UNSPECIFIED": case 0: - message.conditionScoping = 0; + message.eventExclusionDuration = 0; break; - case "SESSION_CRITERIA_WITHIN_SAME_EVENT": + case "EVENT_EXCLUSION_PERMANENT": case 1: - message.conditionScoping = 1; - break; - case "SESSION_CRITERIA_WITHIN_SAME_SESSION": - case 2: - message.conditionScoping = 2; + message.eventExclusionDuration = 1; break; } - if (object.segmentFilterExpression != null) { - if (typeof object.segmentFilterExpression !== "object") - throw TypeError(".google.analytics.data.v1alpha.SessionSegmentConditionGroup.segmentFilterExpression: object expected"); - message.segmentFilterExpression = $root.google.analytics.data.v1alpha.SegmentFilterExpression.fromObject(object.segmentFilterExpression); + if (object.eventExclusionCriteria != null) { + if (typeof object.eventExclusionCriteria !== "object") + throw TypeError(".google.analytics.data.v1alpha.EventSegmentExclusion.eventExclusionCriteria: object expected"); + message.eventExclusionCriteria = $root.google.analytics.data.v1alpha.EventSegmentCriteria.fromObject(object.eventExclusionCriteria); } return message; }; /** - * Creates a plain object from a SessionSegmentConditionGroup message. Also converts values to other types if specified. + * Creates a plain object from an EventSegmentExclusion message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.SessionSegmentConditionGroup + * @memberof google.analytics.data.v1alpha.EventSegmentExclusion * @static - * @param {google.analytics.data.v1alpha.SessionSegmentConditionGroup} message SessionSegmentConditionGroup + * @param {google.analytics.data.v1alpha.EventSegmentExclusion} message EventSegmentExclusion * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SessionSegmentConditionGroup.toObject = function toObject(message, options) { + EventSegmentExclusion.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; if (options.defaults) { - object.conditionScoping = options.enums === String ? "SESSION_CRITERIA_SCOPING_UNSPECIFIED" : 0; - object.segmentFilterExpression = null; + object.eventExclusionDuration = options.enums === String ? "EVENT_EXCLUSION_DURATION_UNSPECIFIED" : 0; + object.eventExclusionCriteria = null; } - if (message.conditionScoping != null && message.hasOwnProperty("conditionScoping")) - object.conditionScoping = options.enums === String ? $root.google.analytics.data.v1alpha.SessionCriteriaScoping[message.conditionScoping] === undefined ? message.conditionScoping : $root.google.analytics.data.v1alpha.SessionCriteriaScoping[message.conditionScoping] : message.conditionScoping; - if (message.segmentFilterExpression != null && message.hasOwnProperty("segmentFilterExpression")) - object.segmentFilterExpression = $root.google.analytics.data.v1alpha.SegmentFilterExpression.toObject(message.segmentFilterExpression, options); + if (message.eventExclusionDuration != null && message.hasOwnProperty("eventExclusionDuration")) + object.eventExclusionDuration = options.enums === String ? $root.google.analytics.data.v1alpha.EventExclusionDuration[message.eventExclusionDuration] === undefined ? message.eventExclusionDuration : $root.google.analytics.data.v1alpha.EventExclusionDuration[message.eventExclusionDuration] : message.eventExclusionDuration; + if (message.eventExclusionCriteria != null && message.hasOwnProperty("eventExclusionCriteria")) + object.eventExclusionCriteria = $root.google.analytics.data.v1alpha.EventSegmentCriteria.toObject(message.eventExclusionCriteria, options); return object; }; /** - * Converts this SessionSegmentConditionGroup to JSON. + * Converts this EventSegmentExclusion to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.SessionSegmentConditionGroup + * @memberof google.analytics.data.v1alpha.EventSegmentExclusion * @instance * @returns {Object.} JSON object */ - SessionSegmentConditionGroup.prototype.toJSON = function toJSON() { + EventSegmentExclusion.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for SessionSegmentConditionGroup + * Gets the default type url for EventSegmentExclusion * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.SessionSegmentConditionGroup + * @memberof google.analytics.data.v1alpha.EventSegmentExclusion * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - SessionSegmentConditionGroup.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + EventSegmentExclusion.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.analytics.data.v1alpha.SessionSegmentConditionGroup"; + return typeUrlPrefix + "/google.analytics.data.v1alpha.EventSegmentExclusion"; }; - return SessionSegmentConditionGroup; + return EventSegmentExclusion; })(); - v1alpha.SessionSegmentExclusion = (function() { + /** + * EventExclusionDuration enum. + * @name google.analytics.data.v1alpha.EventExclusionDuration + * @enum {number} + * @property {number} EVENT_EXCLUSION_DURATION_UNSPECIFIED=0 EVENT_EXCLUSION_DURATION_UNSPECIFIED value + * @property {number} EVENT_EXCLUSION_PERMANENT=1 EVENT_EXCLUSION_PERMANENT value + */ + v1alpha.EventExclusionDuration = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "EVENT_EXCLUSION_DURATION_UNSPECIFIED"] = 0; + values[valuesById[1] = "EVENT_EXCLUSION_PERMANENT"] = 1; + return values; + })(); + + v1alpha.Segment = (function() { /** - * Properties of a SessionSegmentExclusion. + * Properties of a Segment. * @memberof google.analytics.data.v1alpha - * @interface ISessionSegmentExclusion - * @property {google.analytics.data.v1alpha.SessionExclusionDuration|null} [sessionExclusionDuration] SessionSegmentExclusion sessionExclusionDuration - * @property {google.analytics.data.v1alpha.ISessionSegmentCriteria|null} [sessionExclusionCriteria] SessionSegmentExclusion sessionExclusionCriteria + * @interface ISegment + * @property {string|null} [name] Segment name + * @property {google.analytics.data.v1alpha.IUserSegment|null} [userSegment] Segment userSegment + * @property {google.analytics.data.v1alpha.ISessionSegment|null} [sessionSegment] Segment sessionSegment + * @property {google.analytics.data.v1alpha.IEventSegment|null} [eventSegment] Segment eventSegment */ /** - * Constructs a new SessionSegmentExclusion. + * Constructs a new Segment. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a SessionSegmentExclusion. - * @implements ISessionSegmentExclusion + * @classdesc Represents a Segment. + * @implements ISegment * @constructor - * @param {google.analytics.data.v1alpha.ISessionSegmentExclusion=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.ISegment=} [properties] Properties to set */ - function SessionSegmentExclusion(properties) { + function Segment(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -35776,91 +38776,133 @@ } /** - * SessionSegmentExclusion sessionExclusionDuration. - * @member {google.analytics.data.v1alpha.SessionExclusionDuration} sessionExclusionDuration - * @memberof google.analytics.data.v1alpha.SessionSegmentExclusion + * Segment name. + * @member {string} name + * @memberof google.analytics.data.v1alpha.Segment * @instance */ - SessionSegmentExclusion.prototype.sessionExclusionDuration = 0; + Segment.prototype.name = ""; /** - * SessionSegmentExclusion sessionExclusionCriteria. - * @member {google.analytics.data.v1alpha.ISessionSegmentCriteria|null|undefined} sessionExclusionCriteria - * @memberof google.analytics.data.v1alpha.SessionSegmentExclusion + * Segment userSegment. + * @member {google.analytics.data.v1alpha.IUserSegment|null|undefined} userSegment + * @memberof google.analytics.data.v1alpha.Segment * @instance */ - SessionSegmentExclusion.prototype.sessionExclusionCriteria = null; + Segment.prototype.userSegment = null; /** - * Creates a new SessionSegmentExclusion instance using the specified properties. + * Segment sessionSegment. + * @member {google.analytics.data.v1alpha.ISessionSegment|null|undefined} sessionSegment + * @memberof google.analytics.data.v1alpha.Segment + * @instance + */ + Segment.prototype.sessionSegment = null; + + /** + * Segment eventSegment. + * @member {google.analytics.data.v1alpha.IEventSegment|null|undefined} eventSegment + * @memberof google.analytics.data.v1alpha.Segment + * @instance + */ + Segment.prototype.eventSegment = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * Segment oneSegmentScope. + * @member {"userSegment"|"sessionSegment"|"eventSegment"|undefined} oneSegmentScope + * @memberof google.analytics.data.v1alpha.Segment + * @instance + */ + Object.defineProperty(Segment.prototype, "oneSegmentScope", { + get: $util.oneOfGetter($oneOfFields = ["userSegment", "sessionSegment", "eventSegment"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new Segment instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.SessionSegmentExclusion + * @memberof google.analytics.data.v1alpha.Segment * @static - * @param {google.analytics.data.v1alpha.ISessionSegmentExclusion=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.SessionSegmentExclusion} SessionSegmentExclusion instance + * @param {google.analytics.data.v1alpha.ISegment=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.Segment} Segment instance */ - SessionSegmentExclusion.create = function create(properties) { - return new SessionSegmentExclusion(properties); + Segment.create = function create(properties) { + return new Segment(properties); }; /** - * Encodes the specified SessionSegmentExclusion message. Does not implicitly {@link google.analytics.data.v1alpha.SessionSegmentExclusion.verify|verify} messages. + * Encodes the specified Segment message. Does not implicitly {@link google.analytics.data.v1alpha.Segment.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.SessionSegmentExclusion + * @memberof google.analytics.data.v1alpha.Segment * @static - * @param {google.analytics.data.v1alpha.ISessionSegmentExclusion} message SessionSegmentExclusion message or plain object to encode + * @param {google.analytics.data.v1alpha.ISegment} message Segment message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SessionSegmentExclusion.encode = function encode(message, writer) { + Segment.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.sessionExclusionDuration != null && Object.hasOwnProperty.call(message, "sessionExclusionDuration")) - writer.uint32(/* id 1, wireType 0 =*/8).int32(message.sessionExclusionDuration); - if (message.sessionExclusionCriteria != null && Object.hasOwnProperty.call(message, "sessionExclusionCriteria")) - $root.google.analytics.data.v1alpha.SessionSegmentCriteria.encode(message.sessionExclusionCriteria, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.name != null && Object.hasOwnProperty.call(message, "name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + if (message.userSegment != null && Object.hasOwnProperty.call(message, "userSegment")) + $root.google.analytics.data.v1alpha.UserSegment.encode(message.userSegment, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.sessionSegment != null && Object.hasOwnProperty.call(message, "sessionSegment")) + $root.google.analytics.data.v1alpha.SessionSegment.encode(message.sessionSegment, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.eventSegment != null && Object.hasOwnProperty.call(message, "eventSegment")) + $root.google.analytics.data.v1alpha.EventSegment.encode(message.eventSegment, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); return writer; }; /** - * Encodes the specified SessionSegmentExclusion message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SessionSegmentExclusion.verify|verify} messages. + * Encodes the specified Segment message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.Segment.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.SessionSegmentExclusion + * @memberof google.analytics.data.v1alpha.Segment * @static - * @param {google.analytics.data.v1alpha.ISessionSegmentExclusion} message SessionSegmentExclusion message or plain object to encode + * @param {google.analytics.data.v1alpha.ISegment} message Segment message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SessionSegmentExclusion.encodeDelimited = function encodeDelimited(message, writer) { + Segment.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a SessionSegmentExclusion message from the specified reader or buffer. + * Decodes a Segment message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.SessionSegmentExclusion + * @memberof google.analytics.data.v1alpha.Segment * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.SessionSegmentExclusion} SessionSegmentExclusion + * @returns {google.analytics.data.v1alpha.Segment} Segment * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SessionSegmentExclusion.decode = function decode(reader, length, error) { + Segment.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.SessionSegmentExclusion(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.Segment(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { case 1: { - message.sessionExclusionDuration = reader.int32(); + message.name = reader.string(); break; } case 2: { - message.sessionExclusionCriteria = $root.google.analytics.data.v1alpha.SessionSegmentCriteria.decode(reader, reader.uint32()); + message.userSegment = $root.google.analytics.data.v1alpha.UserSegment.decode(reader, reader.uint32()); + break; + } + case 3: { + message.sessionSegment = $root.google.analytics.data.v1alpha.SessionSegment.decode(reader, reader.uint32()); + break; + } + case 4: { + message.eventSegment = $root.google.analytics.data.v1alpha.EventSegment.decode(reader, reader.uint32()); break; } default: @@ -35872,269 +38914,333 @@ }; /** - * Decodes a SessionSegmentExclusion message from the specified reader or buffer, length delimited. + * Decodes a Segment message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.SessionSegmentExclusion + * @memberof google.analytics.data.v1alpha.Segment * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.SessionSegmentExclusion} SessionSegmentExclusion + * @returns {google.analytics.data.v1alpha.Segment} Segment * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SessionSegmentExclusion.decodeDelimited = function decodeDelimited(reader) { + Segment.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a SessionSegmentExclusion message. + * Verifies a Segment message. * @function verify - * @memberof google.analytics.data.v1alpha.SessionSegmentExclusion + * @memberof google.analytics.data.v1alpha.Segment * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SessionSegmentExclusion.verify = function verify(message) { + Segment.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.sessionExclusionDuration != null && message.hasOwnProperty("sessionExclusionDuration")) - switch (message.sessionExclusionDuration) { - default: - return "sessionExclusionDuration: enum value expected"; - case 0: - case 1: - case 2: - break; + var properties = {}; + if (message.name != null && message.hasOwnProperty("name")) + if (!$util.isString(message.name)) + return "name: string expected"; + if (message.userSegment != null && message.hasOwnProperty("userSegment")) { + properties.oneSegmentScope = 1; + { + var error = $root.google.analytics.data.v1alpha.UserSegment.verify(message.userSegment); + if (error) + return "userSegment." + error; + } + } + if (message.sessionSegment != null && message.hasOwnProperty("sessionSegment")) { + if (properties.oneSegmentScope === 1) + return "oneSegmentScope: multiple values"; + properties.oneSegmentScope = 1; + { + var error = $root.google.analytics.data.v1alpha.SessionSegment.verify(message.sessionSegment); + if (error) + return "sessionSegment." + error; + } + } + if (message.eventSegment != null && message.hasOwnProperty("eventSegment")) { + if (properties.oneSegmentScope === 1) + return "oneSegmentScope: multiple values"; + properties.oneSegmentScope = 1; + { + var error = $root.google.analytics.data.v1alpha.EventSegment.verify(message.eventSegment); + if (error) + return "eventSegment." + error; } - if (message.sessionExclusionCriteria != null && message.hasOwnProperty("sessionExclusionCriteria")) { - var error = $root.google.analytics.data.v1alpha.SessionSegmentCriteria.verify(message.sessionExclusionCriteria); - if (error) - return "sessionExclusionCriteria." + error; } return null; }; /** - * Creates a SessionSegmentExclusion message from a plain object. Also converts values to their respective internal types. + * Creates a Segment message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.SessionSegmentExclusion + * @memberof google.analytics.data.v1alpha.Segment * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.SessionSegmentExclusion} SessionSegmentExclusion + * @returns {google.analytics.data.v1alpha.Segment} Segment */ - SessionSegmentExclusion.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.SessionSegmentExclusion) + Segment.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.Segment) return object; - var message = new $root.google.analytics.data.v1alpha.SessionSegmentExclusion(); - switch (object.sessionExclusionDuration) { - default: - if (typeof object.sessionExclusionDuration === "number") { - message.sessionExclusionDuration = object.sessionExclusionDuration; - break; - } - break; - case "SESSION_EXCLUSION_DURATION_UNSPECIFIED": - case 0: - message.sessionExclusionDuration = 0; - break; - case "SESSION_EXCLUSION_TEMPORARY": - case 1: - message.sessionExclusionDuration = 1; - break; - case "SESSION_EXCLUSION_PERMANENT": - case 2: - message.sessionExclusionDuration = 2; - break; + var message = new $root.google.analytics.data.v1alpha.Segment(); + if (object.name != null) + message.name = String(object.name); + if (object.userSegment != null) { + if (typeof object.userSegment !== "object") + throw TypeError(".google.analytics.data.v1alpha.Segment.userSegment: object expected"); + message.userSegment = $root.google.analytics.data.v1alpha.UserSegment.fromObject(object.userSegment); } - if (object.sessionExclusionCriteria != null) { - if (typeof object.sessionExclusionCriteria !== "object") - throw TypeError(".google.analytics.data.v1alpha.SessionSegmentExclusion.sessionExclusionCriteria: object expected"); - message.sessionExclusionCriteria = $root.google.analytics.data.v1alpha.SessionSegmentCriteria.fromObject(object.sessionExclusionCriteria); + if (object.sessionSegment != null) { + if (typeof object.sessionSegment !== "object") + throw TypeError(".google.analytics.data.v1alpha.Segment.sessionSegment: object expected"); + message.sessionSegment = $root.google.analytics.data.v1alpha.SessionSegment.fromObject(object.sessionSegment); + } + if (object.eventSegment != null) { + if (typeof object.eventSegment !== "object") + throw TypeError(".google.analytics.data.v1alpha.Segment.eventSegment: object expected"); + message.eventSegment = $root.google.analytics.data.v1alpha.EventSegment.fromObject(object.eventSegment); } return message; }; /** - * Creates a plain object from a SessionSegmentExclusion message. Also converts values to other types if specified. + * Creates a plain object from a Segment message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.SessionSegmentExclusion + * @memberof google.analytics.data.v1alpha.Segment * @static - * @param {google.analytics.data.v1alpha.SessionSegmentExclusion} message SessionSegmentExclusion + * @param {google.analytics.data.v1alpha.Segment} message Segment * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SessionSegmentExclusion.toObject = function toObject(message, options) { + Segment.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.defaults) { - object.sessionExclusionDuration = options.enums === String ? "SESSION_EXCLUSION_DURATION_UNSPECIFIED" : 0; - object.sessionExclusionCriteria = null; + if (options.defaults) + object.name = ""; + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + if (message.userSegment != null && message.hasOwnProperty("userSegment")) { + object.userSegment = $root.google.analytics.data.v1alpha.UserSegment.toObject(message.userSegment, options); + if (options.oneofs) + object.oneSegmentScope = "userSegment"; + } + if (message.sessionSegment != null && message.hasOwnProperty("sessionSegment")) { + object.sessionSegment = $root.google.analytics.data.v1alpha.SessionSegment.toObject(message.sessionSegment, options); + if (options.oneofs) + object.oneSegmentScope = "sessionSegment"; + } + if (message.eventSegment != null && message.hasOwnProperty("eventSegment")) { + object.eventSegment = $root.google.analytics.data.v1alpha.EventSegment.toObject(message.eventSegment, options); + if (options.oneofs) + object.oneSegmentScope = "eventSegment"; } - if (message.sessionExclusionDuration != null && message.hasOwnProperty("sessionExclusionDuration")) - object.sessionExclusionDuration = options.enums === String ? $root.google.analytics.data.v1alpha.SessionExclusionDuration[message.sessionExclusionDuration] === undefined ? message.sessionExclusionDuration : $root.google.analytics.data.v1alpha.SessionExclusionDuration[message.sessionExclusionDuration] : message.sessionExclusionDuration; - if (message.sessionExclusionCriteria != null && message.hasOwnProperty("sessionExclusionCriteria")) - object.sessionExclusionCriteria = $root.google.analytics.data.v1alpha.SessionSegmentCriteria.toObject(message.sessionExclusionCriteria, options); return object; }; /** - * Converts this SessionSegmentExclusion to JSON. + * Converts this Segment to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.SessionSegmentExclusion + * @memberof google.analytics.data.v1alpha.Segment * @instance * @returns {Object.} JSON object */ - SessionSegmentExclusion.prototype.toJSON = function toJSON() { + Segment.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for SessionSegmentExclusion + * Gets the default type url for Segment * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.SessionSegmentExclusion + * @memberof google.analytics.data.v1alpha.Segment * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - SessionSegmentExclusion.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + Segment.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.analytics.data.v1alpha.SessionSegmentExclusion"; + return typeUrlPrefix + "/google.analytics.data.v1alpha.Segment"; }; - return SessionSegmentExclusion; - })(); - - /** - * SessionExclusionDuration enum. - * @name google.analytics.data.v1alpha.SessionExclusionDuration - * @enum {number} - * @property {number} SESSION_EXCLUSION_DURATION_UNSPECIFIED=0 SESSION_EXCLUSION_DURATION_UNSPECIFIED value - * @property {number} SESSION_EXCLUSION_TEMPORARY=1 SESSION_EXCLUSION_TEMPORARY value - * @property {number} SESSION_EXCLUSION_PERMANENT=2 SESSION_EXCLUSION_PERMANENT value - */ - v1alpha.SessionExclusionDuration = (function() { - var valuesById = {}, values = Object.create(valuesById); - values[valuesById[0] = "SESSION_EXCLUSION_DURATION_UNSPECIFIED"] = 0; - values[valuesById[1] = "SESSION_EXCLUSION_TEMPORARY"] = 1; - values[valuesById[2] = "SESSION_EXCLUSION_PERMANENT"] = 2; - return values; + return Segment; })(); - v1alpha.EventSegment = (function() { + v1alpha.SegmentFilterExpression = (function() { /** - * Properties of an EventSegment. + * Properties of a SegmentFilterExpression. * @memberof google.analytics.data.v1alpha - * @interface IEventSegment - * @property {google.analytics.data.v1alpha.IEventSegmentCriteria|null} [eventInclusionCriteria] EventSegment eventInclusionCriteria - * @property {google.analytics.data.v1alpha.IEventSegmentExclusion|null} [exclusion] EventSegment exclusion + * @interface ISegmentFilterExpression + * @property {google.analytics.data.v1alpha.ISegmentFilterExpressionList|null} [andGroup] SegmentFilterExpression andGroup + * @property {google.analytics.data.v1alpha.ISegmentFilterExpressionList|null} [orGroup] SegmentFilterExpression orGroup + * @property {google.analytics.data.v1alpha.ISegmentFilterExpression|null} [notExpression] SegmentFilterExpression notExpression + * @property {google.analytics.data.v1alpha.ISegmentFilter|null} [segmentFilter] SegmentFilterExpression segmentFilter + * @property {google.analytics.data.v1alpha.ISegmentEventFilter|null} [segmentEventFilter] SegmentFilterExpression segmentEventFilter */ /** - * Constructs a new EventSegment. + * Constructs a new SegmentFilterExpression. * @memberof google.analytics.data.v1alpha - * @classdesc Represents an EventSegment. - * @implements IEventSegment + * @classdesc Represents a SegmentFilterExpression. + * @implements ISegmentFilterExpression * @constructor - * @param {google.analytics.data.v1alpha.IEventSegment=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.ISegmentFilterExpression=} [properties] Properties to set + */ + function SegmentFilterExpression(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]]; + } + + /** + * SegmentFilterExpression andGroup. + * @member {google.analytics.data.v1alpha.ISegmentFilterExpressionList|null|undefined} andGroup + * @memberof google.analytics.data.v1alpha.SegmentFilterExpression + * @instance + */ + SegmentFilterExpression.prototype.andGroup = null; + + /** + * SegmentFilterExpression orGroup. + * @member {google.analytics.data.v1alpha.ISegmentFilterExpressionList|null|undefined} orGroup + * @memberof google.analytics.data.v1alpha.SegmentFilterExpression + * @instance + */ + SegmentFilterExpression.prototype.orGroup = null; + + /** + * SegmentFilterExpression notExpression. + * @member {google.analytics.data.v1alpha.ISegmentFilterExpression|null|undefined} notExpression + * @memberof google.analytics.data.v1alpha.SegmentFilterExpression + * @instance + */ + SegmentFilterExpression.prototype.notExpression = null; + + /** + * SegmentFilterExpression segmentFilter. + * @member {google.analytics.data.v1alpha.ISegmentFilter|null|undefined} segmentFilter + * @memberof google.analytics.data.v1alpha.SegmentFilterExpression + * @instance */ - function EventSegment(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]]; - } + SegmentFilterExpression.prototype.segmentFilter = null; /** - * EventSegment eventInclusionCriteria. - * @member {google.analytics.data.v1alpha.IEventSegmentCriteria|null|undefined} eventInclusionCriteria - * @memberof google.analytics.data.v1alpha.EventSegment + * SegmentFilterExpression segmentEventFilter. + * @member {google.analytics.data.v1alpha.ISegmentEventFilter|null|undefined} segmentEventFilter + * @memberof google.analytics.data.v1alpha.SegmentFilterExpression * @instance */ - EventSegment.prototype.eventInclusionCriteria = null; + SegmentFilterExpression.prototype.segmentEventFilter = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; /** - * EventSegment exclusion. - * @member {google.analytics.data.v1alpha.IEventSegmentExclusion|null|undefined} exclusion - * @memberof google.analytics.data.v1alpha.EventSegment + * SegmentFilterExpression expr. + * @member {"andGroup"|"orGroup"|"notExpression"|"segmentFilter"|"segmentEventFilter"|undefined} expr + * @memberof google.analytics.data.v1alpha.SegmentFilterExpression * @instance */ - EventSegment.prototype.exclusion = null; + Object.defineProperty(SegmentFilterExpression.prototype, "expr", { + get: $util.oneOfGetter($oneOfFields = ["andGroup", "orGroup", "notExpression", "segmentFilter", "segmentEventFilter"]), + set: $util.oneOfSetter($oneOfFields) + }); /** - * Creates a new EventSegment instance using the specified properties. + * Creates a new SegmentFilterExpression instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.EventSegment + * @memberof google.analytics.data.v1alpha.SegmentFilterExpression * @static - * @param {google.analytics.data.v1alpha.IEventSegment=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.EventSegment} EventSegment instance + * @param {google.analytics.data.v1alpha.ISegmentFilterExpression=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.SegmentFilterExpression} SegmentFilterExpression instance */ - EventSegment.create = function create(properties) { - return new EventSegment(properties); + SegmentFilterExpression.create = function create(properties) { + return new SegmentFilterExpression(properties); }; /** - * Encodes the specified EventSegment message. Does not implicitly {@link google.analytics.data.v1alpha.EventSegment.verify|verify} messages. + * Encodes the specified SegmentFilterExpression message. Does not implicitly {@link google.analytics.data.v1alpha.SegmentFilterExpression.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.EventSegment + * @memberof google.analytics.data.v1alpha.SegmentFilterExpression * @static - * @param {google.analytics.data.v1alpha.IEventSegment} message EventSegment message or plain object to encode + * @param {google.analytics.data.v1alpha.ISegmentFilterExpression} message SegmentFilterExpression message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - EventSegment.encode = function encode(message, writer) { + SegmentFilterExpression.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.eventInclusionCriteria != null && Object.hasOwnProperty.call(message, "eventInclusionCriteria")) - $root.google.analytics.data.v1alpha.EventSegmentCriteria.encode(message.eventInclusionCriteria, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.exclusion != null && Object.hasOwnProperty.call(message, "exclusion")) - $root.google.analytics.data.v1alpha.EventSegmentExclusion.encode(message.exclusion, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.andGroup != null && Object.hasOwnProperty.call(message, "andGroup")) + $root.google.analytics.data.v1alpha.SegmentFilterExpressionList.encode(message.andGroup, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.orGroup != null && Object.hasOwnProperty.call(message, "orGroup")) + $root.google.analytics.data.v1alpha.SegmentFilterExpressionList.encode(message.orGroup, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.notExpression != null && Object.hasOwnProperty.call(message, "notExpression")) + $root.google.analytics.data.v1alpha.SegmentFilterExpression.encode(message.notExpression, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.segmentFilter != null && Object.hasOwnProperty.call(message, "segmentFilter")) + $root.google.analytics.data.v1alpha.SegmentFilter.encode(message.segmentFilter, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.segmentEventFilter != null && Object.hasOwnProperty.call(message, "segmentEventFilter")) + $root.google.analytics.data.v1alpha.SegmentEventFilter.encode(message.segmentEventFilter, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); return writer; }; /** - * Encodes the specified EventSegment message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.EventSegment.verify|verify} messages. + * Encodes the specified SegmentFilterExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SegmentFilterExpression.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.EventSegment + * @memberof google.analytics.data.v1alpha.SegmentFilterExpression * @static - * @param {google.analytics.data.v1alpha.IEventSegment} message EventSegment message or plain object to encode + * @param {google.analytics.data.v1alpha.ISegmentFilterExpression} message SegmentFilterExpression message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - EventSegment.encodeDelimited = function encodeDelimited(message, writer) { + SegmentFilterExpression.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes an EventSegment message from the specified reader or buffer. + * Decodes a SegmentFilterExpression message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.EventSegment + * @memberof google.analytics.data.v1alpha.SegmentFilterExpression * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.EventSegment} EventSegment + * @returns {google.analytics.data.v1alpha.SegmentFilterExpression} SegmentFilterExpression * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - EventSegment.decode = function decode(reader, length, error) { + SegmentFilterExpression.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.EventSegment(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.SegmentFilterExpression(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { case 1: { - message.eventInclusionCriteria = $root.google.analytics.data.v1alpha.EventSegmentCriteria.decode(reader, reader.uint32()); + message.andGroup = $root.google.analytics.data.v1alpha.SegmentFilterExpressionList.decode(reader, reader.uint32()); break; } case 2: { - message.exclusion = $root.google.analytics.data.v1alpha.EventSegmentExclusion.decode(reader, reader.uint32()); + message.orGroup = $root.google.analytics.data.v1alpha.SegmentFilterExpressionList.decode(reader, reader.uint32()); + break; + } + case 3: { + message.notExpression = $root.google.analytics.data.v1alpha.SegmentFilterExpression.decode(reader, reader.uint32()); + break; + } + case 4: { + message.segmentFilter = $root.google.analytics.data.v1alpha.SegmentFilter.decode(reader, reader.uint32()); + break; + } + case 5: { + message.segmentEventFilter = $root.google.analytics.data.v1alpha.SegmentEventFilter.decode(reader, reader.uint32()); break; } default: @@ -36146,142 +39252,213 @@ }; /** - * Decodes an EventSegment message from the specified reader or buffer, length delimited. + * Decodes a SegmentFilterExpression message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.EventSegment + * @memberof google.analytics.data.v1alpha.SegmentFilterExpression * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.EventSegment} EventSegment + * @returns {google.analytics.data.v1alpha.SegmentFilterExpression} SegmentFilterExpression * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - EventSegment.decodeDelimited = function decodeDelimited(reader) { + SegmentFilterExpression.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies an EventSegment message. + * Verifies a SegmentFilterExpression message. * @function verify - * @memberof google.analytics.data.v1alpha.EventSegment + * @memberof google.analytics.data.v1alpha.SegmentFilterExpression * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - EventSegment.verify = function verify(message) { + SegmentFilterExpression.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.eventInclusionCriteria != null && message.hasOwnProperty("eventInclusionCriteria")) { - var error = $root.google.analytics.data.v1alpha.EventSegmentCriteria.verify(message.eventInclusionCriteria); - if (error) - return "eventInclusionCriteria." + error; + var properties = {}; + if (message.andGroup != null && message.hasOwnProperty("andGroup")) { + properties.expr = 1; + { + var error = $root.google.analytics.data.v1alpha.SegmentFilterExpressionList.verify(message.andGroup); + if (error) + return "andGroup." + error; + } } - if (message.exclusion != null && message.hasOwnProperty("exclusion")) { - var error = $root.google.analytics.data.v1alpha.EventSegmentExclusion.verify(message.exclusion); - if (error) - return "exclusion." + error; + if (message.orGroup != null && message.hasOwnProperty("orGroup")) { + if (properties.expr === 1) + return "expr: multiple values"; + properties.expr = 1; + { + var error = $root.google.analytics.data.v1alpha.SegmentFilterExpressionList.verify(message.orGroup); + if (error) + return "orGroup." + error; + } + } + if (message.notExpression != null && message.hasOwnProperty("notExpression")) { + if (properties.expr === 1) + return "expr: multiple values"; + properties.expr = 1; + { + var error = $root.google.analytics.data.v1alpha.SegmentFilterExpression.verify(message.notExpression); + if (error) + return "notExpression." + error; + } + } + if (message.segmentFilter != null && message.hasOwnProperty("segmentFilter")) { + if (properties.expr === 1) + return "expr: multiple values"; + properties.expr = 1; + { + var error = $root.google.analytics.data.v1alpha.SegmentFilter.verify(message.segmentFilter); + if (error) + return "segmentFilter." + error; + } + } + if (message.segmentEventFilter != null && message.hasOwnProperty("segmentEventFilter")) { + if (properties.expr === 1) + return "expr: multiple values"; + properties.expr = 1; + { + var error = $root.google.analytics.data.v1alpha.SegmentEventFilter.verify(message.segmentEventFilter); + if (error) + return "segmentEventFilter." + error; + } } return null; }; /** - * Creates an EventSegment message from a plain object. Also converts values to their respective internal types. + * Creates a SegmentFilterExpression message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.EventSegment + * @memberof google.analytics.data.v1alpha.SegmentFilterExpression * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.EventSegment} EventSegment + * @returns {google.analytics.data.v1alpha.SegmentFilterExpression} SegmentFilterExpression */ - EventSegment.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.EventSegment) + SegmentFilterExpression.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.SegmentFilterExpression) return object; - var message = new $root.google.analytics.data.v1alpha.EventSegment(); - if (object.eventInclusionCriteria != null) { - if (typeof object.eventInclusionCriteria !== "object") - throw TypeError(".google.analytics.data.v1alpha.EventSegment.eventInclusionCriteria: object expected"); - message.eventInclusionCriteria = $root.google.analytics.data.v1alpha.EventSegmentCriteria.fromObject(object.eventInclusionCriteria); + var message = new $root.google.analytics.data.v1alpha.SegmentFilterExpression(); + if (object.andGroup != null) { + if (typeof object.andGroup !== "object") + throw TypeError(".google.analytics.data.v1alpha.SegmentFilterExpression.andGroup: object expected"); + message.andGroup = $root.google.analytics.data.v1alpha.SegmentFilterExpressionList.fromObject(object.andGroup); } - if (object.exclusion != null) { - if (typeof object.exclusion !== "object") - throw TypeError(".google.analytics.data.v1alpha.EventSegment.exclusion: object expected"); - message.exclusion = $root.google.analytics.data.v1alpha.EventSegmentExclusion.fromObject(object.exclusion); + if (object.orGroup != null) { + if (typeof object.orGroup !== "object") + throw TypeError(".google.analytics.data.v1alpha.SegmentFilterExpression.orGroup: object expected"); + message.orGroup = $root.google.analytics.data.v1alpha.SegmentFilterExpressionList.fromObject(object.orGroup); + } + if (object.notExpression != null) { + if (typeof object.notExpression !== "object") + throw TypeError(".google.analytics.data.v1alpha.SegmentFilterExpression.notExpression: object expected"); + message.notExpression = $root.google.analytics.data.v1alpha.SegmentFilterExpression.fromObject(object.notExpression); + } + if (object.segmentFilter != null) { + if (typeof object.segmentFilter !== "object") + throw TypeError(".google.analytics.data.v1alpha.SegmentFilterExpression.segmentFilter: object expected"); + message.segmentFilter = $root.google.analytics.data.v1alpha.SegmentFilter.fromObject(object.segmentFilter); + } + if (object.segmentEventFilter != null) { + if (typeof object.segmentEventFilter !== "object") + throw TypeError(".google.analytics.data.v1alpha.SegmentFilterExpression.segmentEventFilter: object expected"); + message.segmentEventFilter = $root.google.analytics.data.v1alpha.SegmentEventFilter.fromObject(object.segmentEventFilter); } return message; }; /** - * Creates a plain object from an EventSegment message. Also converts values to other types if specified. + * Creates a plain object from a SegmentFilterExpression message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.EventSegment + * @memberof google.analytics.data.v1alpha.SegmentFilterExpression * @static - * @param {google.analytics.data.v1alpha.EventSegment} message EventSegment + * @param {google.analytics.data.v1alpha.SegmentFilterExpression} message SegmentFilterExpression * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - EventSegment.toObject = function toObject(message, options) { + SegmentFilterExpression.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.defaults) { - object.eventInclusionCriteria = null; - object.exclusion = null; + if (message.andGroup != null && message.hasOwnProperty("andGroup")) { + object.andGroup = $root.google.analytics.data.v1alpha.SegmentFilterExpressionList.toObject(message.andGroup, options); + if (options.oneofs) + object.expr = "andGroup"; + } + if (message.orGroup != null && message.hasOwnProperty("orGroup")) { + object.orGroup = $root.google.analytics.data.v1alpha.SegmentFilterExpressionList.toObject(message.orGroup, options); + if (options.oneofs) + object.expr = "orGroup"; + } + if (message.notExpression != null && message.hasOwnProperty("notExpression")) { + object.notExpression = $root.google.analytics.data.v1alpha.SegmentFilterExpression.toObject(message.notExpression, options); + if (options.oneofs) + object.expr = "notExpression"; + } + if (message.segmentFilter != null && message.hasOwnProperty("segmentFilter")) { + object.segmentFilter = $root.google.analytics.data.v1alpha.SegmentFilter.toObject(message.segmentFilter, options); + if (options.oneofs) + object.expr = "segmentFilter"; + } + if (message.segmentEventFilter != null && message.hasOwnProperty("segmentEventFilter")) { + object.segmentEventFilter = $root.google.analytics.data.v1alpha.SegmentEventFilter.toObject(message.segmentEventFilter, options); + if (options.oneofs) + object.expr = "segmentEventFilter"; } - if (message.eventInclusionCriteria != null && message.hasOwnProperty("eventInclusionCriteria")) - object.eventInclusionCriteria = $root.google.analytics.data.v1alpha.EventSegmentCriteria.toObject(message.eventInclusionCriteria, options); - if (message.exclusion != null && message.hasOwnProperty("exclusion")) - object.exclusion = $root.google.analytics.data.v1alpha.EventSegmentExclusion.toObject(message.exclusion, options); return object; }; /** - * Converts this EventSegment to JSON. + * Converts this SegmentFilterExpression to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.EventSegment + * @memberof google.analytics.data.v1alpha.SegmentFilterExpression * @instance * @returns {Object.} JSON object */ - EventSegment.prototype.toJSON = function toJSON() { + SegmentFilterExpression.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for EventSegment + * Gets the default type url for SegmentFilterExpression * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.EventSegment + * @memberof google.analytics.data.v1alpha.SegmentFilterExpression * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - EventSegment.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + SegmentFilterExpression.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.analytics.data.v1alpha.EventSegment"; + return typeUrlPrefix + "/google.analytics.data.v1alpha.SegmentFilterExpression"; }; - return EventSegment; + return SegmentFilterExpression; })(); - v1alpha.EventSegmentCriteria = (function() { + v1alpha.SegmentFilterExpressionList = (function() { /** - * Properties of an EventSegmentCriteria. + * Properties of a SegmentFilterExpressionList. * @memberof google.analytics.data.v1alpha - * @interface IEventSegmentCriteria - * @property {Array.|null} [andConditionGroups] EventSegmentCriteria andConditionGroups + * @interface ISegmentFilterExpressionList + * @property {Array.|null} [expressions] SegmentFilterExpressionList expressions */ /** - * Constructs a new EventSegmentCriteria. + * Constructs a new SegmentFilterExpressionList. * @memberof google.analytics.data.v1alpha - * @classdesc Represents an EventSegmentCriteria. - * @implements IEventSegmentCriteria + * @classdesc Represents a SegmentFilterExpressionList. + * @implements ISegmentFilterExpressionList * @constructor - * @param {google.analytics.data.v1alpha.IEventSegmentCriteria=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.ISegmentFilterExpressionList=} [properties] Properties to set */ - function EventSegmentCriteria(properties) { - this.andConditionGroups = []; + function SegmentFilterExpressionList(properties) { + this.expressions = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -36289,80 +39466,80 @@ } /** - * EventSegmentCriteria andConditionGroups. - * @member {Array.} andConditionGroups - * @memberof google.analytics.data.v1alpha.EventSegmentCriteria + * SegmentFilterExpressionList expressions. + * @member {Array.} expressions + * @memberof google.analytics.data.v1alpha.SegmentFilterExpressionList * @instance */ - EventSegmentCriteria.prototype.andConditionGroups = $util.emptyArray; + SegmentFilterExpressionList.prototype.expressions = $util.emptyArray; /** - * Creates a new EventSegmentCriteria instance using the specified properties. + * Creates a new SegmentFilterExpressionList instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.EventSegmentCriteria + * @memberof google.analytics.data.v1alpha.SegmentFilterExpressionList * @static - * @param {google.analytics.data.v1alpha.IEventSegmentCriteria=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.EventSegmentCriteria} EventSegmentCriteria instance + * @param {google.analytics.data.v1alpha.ISegmentFilterExpressionList=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.SegmentFilterExpressionList} SegmentFilterExpressionList instance */ - EventSegmentCriteria.create = function create(properties) { - return new EventSegmentCriteria(properties); + SegmentFilterExpressionList.create = function create(properties) { + return new SegmentFilterExpressionList(properties); }; /** - * Encodes the specified EventSegmentCriteria message. Does not implicitly {@link google.analytics.data.v1alpha.EventSegmentCriteria.verify|verify} messages. + * Encodes the specified SegmentFilterExpressionList message. Does not implicitly {@link google.analytics.data.v1alpha.SegmentFilterExpressionList.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.EventSegmentCriteria + * @memberof google.analytics.data.v1alpha.SegmentFilterExpressionList * @static - * @param {google.analytics.data.v1alpha.IEventSegmentCriteria} message EventSegmentCriteria message or plain object to encode + * @param {google.analytics.data.v1alpha.ISegmentFilterExpressionList} message SegmentFilterExpressionList message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - EventSegmentCriteria.encode = function encode(message, writer) { + SegmentFilterExpressionList.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.andConditionGroups != null && message.andConditionGroups.length) - for (var i = 0; i < message.andConditionGroups.length; ++i) - $root.google.analytics.data.v1alpha.EventSegmentConditionGroup.encode(message.andConditionGroups[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.expressions != null && message.expressions.length) + for (var i = 0; i < message.expressions.length; ++i) + $root.google.analytics.data.v1alpha.SegmentFilterExpression.encode(message.expressions[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); return writer; }; /** - * Encodes the specified EventSegmentCriteria message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.EventSegmentCriteria.verify|verify} messages. + * Encodes the specified SegmentFilterExpressionList message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SegmentFilterExpressionList.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.EventSegmentCriteria + * @memberof google.analytics.data.v1alpha.SegmentFilterExpressionList * @static - * @param {google.analytics.data.v1alpha.IEventSegmentCriteria} message EventSegmentCriteria message or plain object to encode + * @param {google.analytics.data.v1alpha.ISegmentFilterExpressionList} message SegmentFilterExpressionList message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - EventSegmentCriteria.encodeDelimited = function encodeDelimited(message, writer) { + SegmentFilterExpressionList.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes an EventSegmentCriteria message from the specified reader or buffer. + * Decodes a SegmentFilterExpressionList message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.EventSegmentCriteria + * @memberof google.analytics.data.v1alpha.SegmentFilterExpressionList * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.EventSegmentCriteria} EventSegmentCriteria + * @returns {google.analytics.data.v1alpha.SegmentFilterExpressionList} SegmentFilterExpressionList * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - EventSegmentCriteria.decode = function decode(reader, length, error) { + SegmentFilterExpressionList.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.EventSegmentCriteria(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.SegmentFilterExpressionList(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { case 1: { - if (!(message.andConditionGroups && message.andConditionGroups.length)) - message.andConditionGroups = []; - message.andConditionGroups.push($root.google.analytics.data.v1alpha.EventSegmentConditionGroup.decode(reader, reader.uint32())); + if (!(message.expressions && message.expressions.length)) + message.expressions = []; + message.expressions.push($root.google.analytics.data.v1alpha.SegmentFilterExpression.decode(reader, reader.uint32())); break; } default: @@ -36374,246 +39551,306 @@ }; /** - * Decodes an EventSegmentCriteria message from the specified reader or buffer, length delimited. + * Decodes a SegmentFilterExpressionList message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.EventSegmentCriteria + * @memberof google.analytics.data.v1alpha.SegmentFilterExpressionList * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.EventSegmentCriteria} EventSegmentCriteria + * @returns {google.analytics.data.v1alpha.SegmentFilterExpressionList} SegmentFilterExpressionList * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - EventSegmentCriteria.decodeDelimited = function decodeDelimited(reader) { + SegmentFilterExpressionList.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies an EventSegmentCriteria message. + * Verifies a SegmentFilterExpressionList message. * @function verify - * @memberof google.analytics.data.v1alpha.EventSegmentCriteria + * @memberof google.analytics.data.v1alpha.SegmentFilterExpressionList * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - EventSegmentCriteria.verify = function verify(message) { + SegmentFilterExpressionList.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.andConditionGroups != null && message.hasOwnProperty("andConditionGroups")) { - if (!Array.isArray(message.andConditionGroups)) - return "andConditionGroups: array expected"; - for (var i = 0; i < message.andConditionGroups.length; ++i) { - var error = $root.google.analytics.data.v1alpha.EventSegmentConditionGroup.verify(message.andConditionGroups[i]); + if (message.expressions != null && message.hasOwnProperty("expressions")) { + if (!Array.isArray(message.expressions)) + return "expressions: array expected"; + for (var i = 0; i < message.expressions.length; ++i) { + var error = $root.google.analytics.data.v1alpha.SegmentFilterExpression.verify(message.expressions[i]); if (error) - return "andConditionGroups." + error; + return "expressions." + error; } } return null; }; /** - * Creates an EventSegmentCriteria message from a plain object. Also converts values to their respective internal types. + * Creates a SegmentFilterExpressionList message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.EventSegmentCriteria + * @memberof google.analytics.data.v1alpha.SegmentFilterExpressionList * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.EventSegmentCriteria} EventSegmentCriteria + * @returns {google.analytics.data.v1alpha.SegmentFilterExpressionList} SegmentFilterExpressionList */ - EventSegmentCriteria.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.EventSegmentCriteria) + SegmentFilterExpressionList.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.SegmentFilterExpressionList) return object; - var message = new $root.google.analytics.data.v1alpha.EventSegmentCriteria(); - if (object.andConditionGroups) { - if (!Array.isArray(object.andConditionGroups)) - throw TypeError(".google.analytics.data.v1alpha.EventSegmentCriteria.andConditionGroups: array expected"); - message.andConditionGroups = []; - for (var i = 0; i < object.andConditionGroups.length; ++i) { - if (typeof object.andConditionGroups[i] !== "object") - throw TypeError(".google.analytics.data.v1alpha.EventSegmentCriteria.andConditionGroups: object expected"); - message.andConditionGroups[i] = $root.google.analytics.data.v1alpha.EventSegmentConditionGroup.fromObject(object.andConditionGroups[i]); + var message = new $root.google.analytics.data.v1alpha.SegmentFilterExpressionList(); + if (object.expressions) { + if (!Array.isArray(object.expressions)) + throw TypeError(".google.analytics.data.v1alpha.SegmentFilterExpressionList.expressions: array expected"); + message.expressions = []; + for (var i = 0; i < object.expressions.length; ++i) { + if (typeof object.expressions[i] !== "object") + throw TypeError(".google.analytics.data.v1alpha.SegmentFilterExpressionList.expressions: object expected"); + message.expressions[i] = $root.google.analytics.data.v1alpha.SegmentFilterExpression.fromObject(object.expressions[i]); } } return message; }; /** - * Creates a plain object from an EventSegmentCriteria message. Also converts values to other types if specified. + * Creates a plain object from a SegmentFilterExpressionList message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.EventSegmentCriteria + * @memberof google.analytics.data.v1alpha.SegmentFilterExpressionList * @static - * @param {google.analytics.data.v1alpha.EventSegmentCriteria} message EventSegmentCriteria + * @param {google.analytics.data.v1alpha.SegmentFilterExpressionList} message SegmentFilterExpressionList * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - EventSegmentCriteria.toObject = function toObject(message, options) { + SegmentFilterExpressionList.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; if (options.arrays || options.defaults) - object.andConditionGroups = []; - if (message.andConditionGroups && message.andConditionGroups.length) { - object.andConditionGroups = []; - for (var j = 0; j < message.andConditionGroups.length; ++j) - object.andConditionGroups[j] = $root.google.analytics.data.v1alpha.EventSegmentConditionGroup.toObject(message.andConditionGroups[j], options); + object.expressions = []; + if (message.expressions && message.expressions.length) { + object.expressions = []; + for (var j = 0; j < message.expressions.length; ++j) + object.expressions[j] = $root.google.analytics.data.v1alpha.SegmentFilterExpression.toObject(message.expressions[j], options); } return object; }; /** - * Converts this EventSegmentCriteria to JSON. + * Converts this SegmentFilterExpressionList to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.EventSegmentCriteria + * @memberof google.analytics.data.v1alpha.SegmentFilterExpressionList * @instance * @returns {Object.} JSON object */ - EventSegmentCriteria.prototype.toJSON = function toJSON() { + SegmentFilterExpressionList.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for EventSegmentCriteria + * Gets the default type url for SegmentFilterExpressionList * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.EventSegmentCriteria + * @memberof google.analytics.data.v1alpha.SegmentFilterExpressionList * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - EventSegmentCriteria.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + SegmentFilterExpressionList.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.analytics.data.v1alpha.EventSegmentCriteria"; + return typeUrlPrefix + "/google.analytics.data.v1alpha.SegmentFilterExpressionList"; }; - return EventSegmentCriteria; - })(); - - /** - * EventCriteriaScoping enum. - * @name google.analytics.data.v1alpha.EventCriteriaScoping - * @enum {number} - * @property {number} EVENT_CRITERIA_SCOPING_UNSPECIFIED=0 EVENT_CRITERIA_SCOPING_UNSPECIFIED value - * @property {number} EVENT_CRITERIA_WITHIN_SAME_EVENT=1 EVENT_CRITERIA_WITHIN_SAME_EVENT value - */ - v1alpha.EventCriteriaScoping = (function() { - var valuesById = {}, values = Object.create(valuesById); - values[valuesById[0] = "EVENT_CRITERIA_SCOPING_UNSPECIFIED"] = 0; - values[valuesById[1] = "EVENT_CRITERIA_WITHIN_SAME_EVENT"] = 1; - return values; + return SegmentFilterExpressionList; })(); - v1alpha.EventSegmentConditionGroup = (function() { + v1alpha.SegmentFilter = (function() { /** - * Properties of an EventSegmentConditionGroup. + * Properties of a SegmentFilter. * @memberof google.analytics.data.v1alpha - * @interface IEventSegmentConditionGroup - * @property {google.analytics.data.v1alpha.EventCriteriaScoping|null} [conditionScoping] EventSegmentConditionGroup conditionScoping - * @property {google.analytics.data.v1alpha.ISegmentFilterExpression|null} [segmentFilterExpression] EventSegmentConditionGroup segmentFilterExpression + * @interface ISegmentFilter + * @property {string|null} [fieldName] SegmentFilter fieldName + * @property {google.analytics.data.v1alpha.IStringFilter|null} [stringFilter] SegmentFilter stringFilter + * @property {google.analytics.data.v1alpha.IInListFilter|null} [inListFilter] SegmentFilter inListFilter + * @property {google.analytics.data.v1alpha.INumericFilter|null} [numericFilter] SegmentFilter numericFilter + * @property {google.analytics.data.v1alpha.IBetweenFilter|null} [betweenFilter] SegmentFilter betweenFilter + * @property {google.analytics.data.v1alpha.ISegmentFilterScoping|null} [filterScoping] SegmentFilter filterScoping */ /** - * Constructs a new EventSegmentConditionGroup. + * Constructs a new SegmentFilter. * @memberof google.analytics.data.v1alpha - * @classdesc Represents an EventSegmentConditionGroup. - * @implements IEventSegmentConditionGroup + * @classdesc Represents a SegmentFilter. + * @implements ISegmentFilter * @constructor - * @param {google.analytics.data.v1alpha.IEventSegmentConditionGroup=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.ISegmentFilter=} [properties] Properties to set + */ + function SegmentFilter(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]]; + } + + /** + * SegmentFilter fieldName. + * @member {string} fieldName + * @memberof google.analytics.data.v1alpha.SegmentFilter + * @instance + */ + SegmentFilter.prototype.fieldName = ""; + + /** + * SegmentFilter stringFilter. + * @member {google.analytics.data.v1alpha.IStringFilter|null|undefined} stringFilter + * @memberof google.analytics.data.v1alpha.SegmentFilter + * @instance + */ + SegmentFilter.prototype.stringFilter = null; + + /** + * SegmentFilter inListFilter. + * @member {google.analytics.data.v1alpha.IInListFilter|null|undefined} inListFilter + * @memberof google.analytics.data.v1alpha.SegmentFilter + * @instance + */ + SegmentFilter.prototype.inListFilter = null; + + /** + * SegmentFilter numericFilter. + * @member {google.analytics.data.v1alpha.INumericFilter|null|undefined} numericFilter + * @memberof google.analytics.data.v1alpha.SegmentFilter + * @instance + */ + SegmentFilter.prototype.numericFilter = null; + + /** + * SegmentFilter betweenFilter. + * @member {google.analytics.data.v1alpha.IBetweenFilter|null|undefined} betweenFilter + * @memberof google.analytics.data.v1alpha.SegmentFilter + * @instance */ - function EventSegmentConditionGroup(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]]; - } + SegmentFilter.prototype.betweenFilter = null; /** - * EventSegmentConditionGroup conditionScoping. - * @member {google.analytics.data.v1alpha.EventCriteriaScoping} conditionScoping - * @memberof google.analytics.data.v1alpha.EventSegmentConditionGroup + * SegmentFilter filterScoping. + * @member {google.analytics.data.v1alpha.ISegmentFilterScoping|null|undefined} filterScoping + * @memberof google.analytics.data.v1alpha.SegmentFilter * @instance */ - EventSegmentConditionGroup.prototype.conditionScoping = 0; + SegmentFilter.prototype.filterScoping = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; /** - * EventSegmentConditionGroup segmentFilterExpression. - * @member {google.analytics.data.v1alpha.ISegmentFilterExpression|null|undefined} segmentFilterExpression - * @memberof google.analytics.data.v1alpha.EventSegmentConditionGroup + * SegmentFilter oneFilter. + * @member {"stringFilter"|"inListFilter"|"numericFilter"|"betweenFilter"|undefined} oneFilter + * @memberof google.analytics.data.v1alpha.SegmentFilter * @instance */ - EventSegmentConditionGroup.prototype.segmentFilterExpression = null; + Object.defineProperty(SegmentFilter.prototype, "oneFilter", { + get: $util.oneOfGetter($oneOfFields = ["stringFilter", "inListFilter", "numericFilter", "betweenFilter"]), + set: $util.oneOfSetter($oneOfFields) + }); /** - * Creates a new EventSegmentConditionGroup instance using the specified properties. + * Creates a new SegmentFilter instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.EventSegmentConditionGroup + * @memberof google.analytics.data.v1alpha.SegmentFilter * @static - * @param {google.analytics.data.v1alpha.IEventSegmentConditionGroup=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.EventSegmentConditionGroup} EventSegmentConditionGroup instance + * @param {google.analytics.data.v1alpha.ISegmentFilter=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.SegmentFilter} SegmentFilter instance */ - EventSegmentConditionGroup.create = function create(properties) { - return new EventSegmentConditionGroup(properties); + SegmentFilter.create = function create(properties) { + return new SegmentFilter(properties); }; /** - * Encodes the specified EventSegmentConditionGroup message. Does not implicitly {@link google.analytics.data.v1alpha.EventSegmentConditionGroup.verify|verify} messages. + * Encodes the specified SegmentFilter message. Does not implicitly {@link google.analytics.data.v1alpha.SegmentFilter.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.EventSegmentConditionGroup + * @memberof google.analytics.data.v1alpha.SegmentFilter * @static - * @param {google.analytics.data.v1alpha.IEventSegmentConditionGroup} message EventSegmentConditionGroup message or plain object to encode + * @param {google.analytics.data.v1alpha.ISegmentFilter} message SegmentFilter message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - EventSegmentConditionGroup.encode = function encode(message, writer) { + SegmentFilter.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.conditionScoping != null && Object.hasOwnProperty.call(message, "conditionScoping")) - writer.uint32(/* id 1, wireType 0 =*/8).int32(message.conditionScoping); - if (message.segmentFilterExpression != null && Object.hasOwnProperty.call(message, "segmentFilterExpression")) - $root.google.analytics.data.v1alpha.SegmentFilterExpression.encode(message.segmentFilterExpression, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.fieldName != null && Object.hasOwnProperty.call(message, "fieldName")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.fieldName); + if (message.stringFilter != null && Object.hasOwnProperty.call(message, "stringFilter")) + $root.google.analytics.data.v1alpha.StringFilter.encode(message.stringFilter, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.inListFilter != null && Object.hasOwnProperty.call(message, "inListFilter")) + $root.google.analytics.data.v1alpha.InListFilter.encode(message.inListFilter, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + if (message.numericFilter != null && Object.hasOwnProperty.call(message, "numericFilter")) + $root.google.analytics.data.v1alpha.NumericFilter.encode(message.numericFilter, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + if (message.betweenFilter != null && Object.hasOwnProperty.call(message, "betweenFilter")) + $root.google.analytics.data.v1alpha.BetweenFilter.encode(message.betweenFilter, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); + if (message.filterScoping != null && Object.hasOwnProperty.call(message, "filterScoping")) + $root.google.analytics.data.v1alpha.SegmentFilterScoping.encode(message.filterScoping, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); return writer; }; /** - * Encodes the specified EventSegmentConditionGroup message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.EventSegmentConditionGroup.verify|verify} messages. + * Encodes the specified SegmentFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SegmentFilter.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.EventSegmentConditionGroup + * @memberof google.analytics.data.v1alpha.SegmentFilter * @static - * @param {google.analytics.data.v1alpha.IEventSegmentConditionGroup} message EventSegmentConditionGroup message or plain object to encode + * @param {google.analytics.data.v1alpha.ISegmentFilter} message SegmentFilter message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - EventSegmentConditionGroup.encodeDelimited = function encodeDelimited(message, writer) { + SegmentFilter.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes an EventSegmentConditionGroup message from the specified reader or buffer. + * Decodes a SegmentFilter message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.EventSegmentConditionGroup + * @memberof google.analytics.data.v1alpha.SegmentFilter * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.EventSegmentConditionGroup} EventSegmentConditionGroup + * @returns {google.analytics.data.v1alpha.SegmentFilter} SegmentFilter * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - EventSegmentConditionGroup.decode = function decode(reader, length, error) { + SegmentFilter.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.EventSegmentConditionGroup(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.SegmentFilter(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { case 1: { - message.conditionScoping = reader.int32(); + message.fieldName = reader.string(); break; } - case 2: { - message.segmentFilterExpression = $root.google.analytics.data.v1alpha.SegmentFilterExpression.decode(reader, reader.uint32()); + case 4: { + message.stringFilter = $root.google.analytics.data.v1alpha.StringFilter.decode(reader, reader.uint32()); + break; + } + case 5: { + message.inListFilter = $root.google.analytics.data.v1alpha.InListFilter.decode(reader, reader.uint32()); + break; + } + case 6: { + message.numericFilter = $root.google.analytics.data.v1alpha.NumericFilter.decode(reader, reader.uint32()); + break; + } + case 7: { + message.betweenFilter = $root.google.analytics.data.v1alpha.BetweenFilter.decode(reader, reader.uint32()); + break; + } + case 8: { + message.filterScoping = $root.google.analytics.data.v1alpha.SegmentFilterScoping.decode(reader, reader.uint32()); break; } default: @@ -36625,156 +39862,215 @@ }; /** - * Decodes an EventSegmentConditionGroup message from the specified reader or buffer, length delimited. + * Decodes a SegmentFilter message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.EventSegmentConditionGroup + * @memberof google.analytics.data.v1alpha.SegmentFilter * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.EventSegmentConditionGroup} EventSegmentConditionGroup + * @returns {google.analytics.data.v1alpha.SegmentFilter} SegmentFilter * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - EventSegmentConditionGroup.decodeDelimited = function decodeDelimited(reader) { + SegmentFilter.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies an EventSegmentConditionGroup message. + * Verifies a SegmentFilter message. * @function verify - * @memberof google.analytics.data.v1alpha.EventSegmentConditionGroup + * @memberof google.analytics.data.v1alpha.SegmentFilter * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - EventSegmentConditionGroup.verify = function verify(message) { + SegmentFilter.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.conditionScoping != null && message.hasOwnProperty("conditionScoping")) - switch (message.conditionScoping) { - default: - return "conditionScoping: enum value expected"; - case 0: - case 1: - break; + var properties = {}; + if (message.fieldName != null && message.hasOwnProperty("fieldName")) + if (!$util.isString(message.fieldName)) + return "fieldName: string expected"; + if (message.stringFilter != null && message.hasOwnProperty("stringFilter")) { + properties.oneFilter = 1; + { + var error = $root.google.analytics.data.v1alpha.StringFilter.verify(message.stringFilter); + if (error) + return "stringFilter." + error; } - if (message.segmentFilterExpression != null && message.hasOwnProperty("segmentFilterExpression")) { - var error = $root.google.analytics.data.v1alpha.SegmentFilterExpression.verify(message.segmentFilterExpression); + } + if (message.inListFilter != null && message.hasOwnProperty("inListFilter")) { + if (properties.oneFilter === 1) + return "oneFilter: multiple values"; + properties.oneFilter = 1; + { + var error = $root.google.analytics.data.v1alpha.InListFilter.verify(message.inListFilter); + if (error) + return "inListFilter." + error; + } + } + if (message.numericFilter != null && message.hasOwnProperty("numericFilter")) { + if (properties.oneFilter === 1) + return "oneFilter: multiple values"; + properties.oneFilter = 1; + { + var error = $root.google.analytics.data.v1alpha.NumericFilter.verify(message.numericFilter); + if (error) + return "numericFilter." + error; + } + } + if (message.betweenFilter != null && message.hasOwnProperty("betweenFilter")) { + if (properties.oneFilter === 1) + return "oneFilter: multiple values"; + properties.oneFilter = 1; + { + var error = $root.google.analytics.data.v1alpha.BetweenFilter.verify(message.betweenFilter); + if (error) + return "betweenFilter." + error; + } + } + if (message.filterScoping != null && message.hasOwnProperty("filterScoping")) { + var error = $root.google.analytics.data.v1alpha.SegmentFilterScoping.verify(message.filterScoping); if (error) - return "segmentFilterExpression." + error; + return "filterScoping." + error; } return null; }; /** - * Creates an EventSegmentConditionGroup message from a plain object. Also converts values to their respective internal types. + * Creates a SegmentFilter message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.EventSegmentConditionGroup + * @memberof google.analytics.data.v1alpha.SegmentFilter * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.EventSegmentConditionGroup} EventSegmentConditionGroup + * @returns {google.analytics.data.v1alpha.SegmentFilter} SegmentFilter */ - EventSegmentConditionGroup.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.EventSegmentConditionGroup) + SegmentFilter.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.SegmentFilter) return object; - var message = new $root.google.analytics.data.v1alpha.EventSegmentConditionGroup(); - switch (object.conditionScoping) { - default: - if (typeof object.conditionScoping === "number") { - message.conditionScoping = object.conditionScoping; - break; - } - break; - case "EVENT_CRITERIA_SCOPING_UNSPECIFIED": - case 0: - message.conditionScoping = 0; - break; - case "EVENT_CRITERIA_WITHIN_SAME_EVENT": - case 1: - message.conditionScoping = 1; - break; + var message = new $root.google.analytics.data.v1alpha.SegmentFilter(); + if (object.fieldName != null) + message.fieldName = String(object.fieldName); + if (object.stringFilter != null) { + if (typeof object.stringFilter !== "object") + throw TypeError(".google.analytics.data.v1alpha.SegmentFilter.stringFilter: object expected"); + message.stringFilter = $root.google.analytics.data.v1alpha.StringFilter.fromObject(object.stringFilter); } - if (object.segmentFilterExpression != null) { - if (typeof object.segmentFilterExpression !== "object") - throw TypeError(".google.analytics.data.v1alpha.EventSegmentConditionGroup.segmentFilterExpression: object expected"); - message.segmentFilterExpression = $root.google.analytics.data.v1alpha.SegmentFilterExpression.fromObject(object.segmentFilterExpression); + if (object.inListFilter != null) { + if (typeof object.inListFilter !== "object") + throw TypeError(".google.analytics.data.v1alpha.SegmentFilter.inListFilter: object expected"); + message.inListFilter = $root.google.analytics.data.v1alpha.InListFilter.fromObject(object.inListFilter); + } + if (object.numericFilter != null) { + if (typeof object.numericFilter !== "object") + throw TypeError(".google.analytics.data.v1alpha.SegmentFilter.numericFilter: object expected"); + message.numericFilter = $root.google.analytics.data.v1alpha.NumericFilter.fromObject(object.numericFilter); + } + if (object.betweenFilter != null) { + if (typeof object.betweenFilter !== "object") + throw TypeError(".google.analytics.data.v1alpha.SegmentFilter.betweenFilter: object expected"); + message.betweenFilter = $root.google.analytics.data.v1alpha.BetweenFilter.fromObject(object.betweenFilter); + } + if (object.filterScoping != null) { + if (typeof object.filterScoping !== "object") + throw TypeError(".google.analytics.data.v1alpha.SegmentFilter.filterScoping: object expected"); + message.filterScoping = $root.google.analytics.data.v1alpha.SegmentFilterScoping.fromObject(object.filterScoping); } return message; }; /** - * Creates a plain object from an EventSegmentConditionGroup message. Also converts values to other types if specified. + * Creates a plain object from a SegmentFilter message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.EventSegmentConditionGroup + * @memberof google.analytics.data.v1alpha.SegmentFilter * @static - * @param {google.analytics.data.v1alpha.EventSegmentConditionGroup} message EventSegmentConditionGroup + * @param {google.analytics.data.v1alpha.SegmentFilter} message SegmentFilter * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - EventSegmentConditionGroup.toObject = function toObject(message, options) { + SegmentFilter.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; if (options.defaults) { - object.conditionScoping = options.enums === String ? "EVENT_CRITERIA_SCOPING_UNSPECIFIED" : 0; - object.segmentFilterExpression = null; + object.fieldName = ""; + object.filterScoping = null; + } + if (message.fieldName != null && message.hasOwnProperty("fieldName")) + object.fieldName = message.fieldName; + if (message.stringFilter != null && message.hasOwnProperty("stringFilter")) { + object.stringFilter = $root.google.analytics.data.v1alpha.StringFilter.toObject(message.stringFilter, options); + if (options.oneofs) + object.oneFilter = "stringFilter"; + } + if (message.inListFilter != null && message.hasOwnProperty("inListFilter")) { + object.inListFilter = $root.google.analytics.data.v1alpha.InListFilter.toObject(message.inListFilter, options); + if (options.oneofs) + object.oneFilter = "inListFilter"; } - if (message.conditionScoping != null && message.hasOwnProperty("conditionScoping")) - object.conditionScoping = options.enums === String ? $root.google.analytics.data.v1alpha.EventCriteriaScoping[message.conditionScoping] === undefined ? message.conditionScoping : $root.google.analytics.data.v1alpha.EventCriteriaScoping[message.conditionScoping] : message.conditionScoping; - if (message.segmentFilterExpression != null && message.hasOwnProperty("segmentFilterExpression")) - object.segmentFilterExpression = $root.google.analytics.data.v1alpha.SegmentFilterExpression.toObject(message.segmentFilterExpression, options); + if (message.numericFilter != null && message.hasOwnProperty("numericFilter")) { + object.numericFilter = $root.google.analytics.data.v1alpha.NumericFilter.toObject(message.numericFilter, options); + if (options.oneofs) + object.oneFilter = "numericFilter"; + } + if (message.betweenFilter != null && message.hasOwnProperty("betweenFilter")) { + object.betweenFilter = $root.google.analytics.data.v1alpha.BetweenFilter.toObject(message.betweenFilter, options); + if (options.oneofs) + object.oneFilter = "betweenFilter"; + } + if (message.filterScoping != null && message.hasOwnProperty("filterScoping")) + object.filterScoping = $root.google.analytics.data.v1alpha.SegmentFilterScoping.toObject(message.filterScoping, options); return object; }; /** - * Converts this EventSegmentConditionGroup to JSON. + * Converts this SegmentFilter to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.EventSegmentConditionGroup + * @memberof google.analytics.data.v1alpha.SegmentFilter * @instance * @returns {Object.} JSON object */ - EventSegmentConditionGroup.prototype.toJSON = function toJSON() { + SegmentFilter.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for EventSegmentConditionGroup + * Gets the default type url for SegmentFilter * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.EventSegmentConditionGroup + * @memberof google.analytics.data.v1alpha.SegmentFilter * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - EventSegmentConditionGroup.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + SegmentFilter.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.analytics.data.v1alpha.EventSegmentConditionGroup"; + return typeUrlPrefix + "/google.analytics.data.v1alpha.SegmentFilter"; }; - return EventSegmentConditionGroup; + return SegmentFilter; })(); - v1alpha.EventSegmentExclusion = (function() { + v1alpha.SegmentFilterScoping = (function() { /** - * Properties of an EventSegmentExclusion. + * Properties of a SegmentFilterScoping. * @memberof google.analytics.data.v1alpha - * @interface IEventSegmentExclusion - * @property {google.analytics.data.v1alpha.EventExclusionDuration|null} [eventExclusionDuration] EventSegmentExclusion eventExclusionDuration - * @property {google.analytics.data.v1alpha.IEventSegmentCriteria|null} [eventExclusionCriteria] EventSegmentExclusion eventExclusionCriteria + * @interface ISegmentFilterScoping + * @property {boolean|null} [atAnyPointInTime] SegmentFilterScoping atAnyPointInTime */ /** - * Constructs a new EventSegmentExclusion. + * Constructs a new SegmentFilterScoping. * @memberof google.analytics.data.v1alpha - * @classdesc Represents an EventSegmentExclusion. - * @implements IEventSegmentExclusion + * @classdesc Represents a SegmentFilterScoping. + * @implements ISegmentFilterScoping * @constructor - * @param {google.analytics.data.v1alpha.IEventSegmentExclusion=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.ISegmentFilterScoping=} [properties] Properties to set */ - function EventSegmentExclusion(properties) { + function SegmentFilterScoping(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -36782,91 +40078,86 @@ } /** - * EventSegmentExclusion eventExclusionDuration. - * @member {google.analytics.data.v1alpha.EventExclusionDuration} eventExclusionDuration - * @memberof google.analytics.data.v1alpha.EventSegmentExclusion + * SegmentFilterScoping atAnyPointInTime. + * @member {boolean|null|undefined} atAnyPointInTime + * @memberof google.analytics.data.v1alpha.SegmentFilterScoping * @instance */ - EventSegmentExclusion.prototype.eventExclusionDuration = 0; + SegmentFilterScoping.prototype.atAnyPointInTime = null; - /** - * EventSegmentExclusion eventExclusionCriteria. - * @member {google.analytics.data.v1alpha.IEventSegmentCriteria|null|undefined} eventExclusionCriteria - * @memberof google.analytics.data.v1alpha.EventSegmentExclusion - * @instance - */ - EventSegmentExclusion.prototype.eventExclusionCriteria = null; + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + // Virtual OneOf for proto3 optional field + Object.defineProperty(SegmentFilterScoping.prototype, "_atAnyPointInTime", { + get: $util.oneOfGetter($oneOfFields = ["atAnyPointInTime"]), + set: $util.oneOfSetter($oneOfFields) + }); /** - * Creates a new EventSegmentExclusion instance using the specified properties. + * Creates a new SegmentFilterScoping instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.EventSegmentExclusion + * @memberof google.analytics.data.v1alpha.SegmentFilterScoping * @static - * @param {google.analytics.data.v1alpha.IEventSegmentExclusion=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.EventSegmentExclusion} EventSegmentExclusion instance + * @param {google.analytics.data.v1alpha.ISegmentFilterScoping=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.SegmentFilterScoping} SegmentFilterScoping instance */ - EventSegmentExclusion.create = function create(properties) { - return new EventSegmentExclusion(properties); + SegmentFilterScoping.create = function create(properties) { + return new SegmentFilterScoping(properties); }; /** - * Encodes the specified EventSegmentExclusion message. Does not implicitly {@link google.analytics.data.v1alpha.EventSegmentExclusion.verify|verify} messages. + * Encodes the specified SegmentFilterScoping message. Does not implicitly {@link google.analytics.data.v1alpha.SegmentFilterScoping.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.EventSegmentExclusion + * @memberof google.analytics.data.v1alpha.SegmentFilterScoping * @static - * @param {google.analytics.data.v1alpha.IEventSegmentExclusion} message EventSegmentExclusion message or plain object to encode + * @param {google.analytics.data.v1alpha.ISegmentFilterScoping} message SegmentFilterScoping message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - EventSegmentExclusion.encode = function encode(message, writer) { + SegmentFilterScoping.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.eventExclusionDuration != null && Object.hasOwnProperty.call(message, "eventExclusionDuration")) - writer.uint32(/* id 1, wireType 0 =*/8).int32(message.eventExclusionDuration); - if (message.eventExclusionCriteria != null && Object.hasOwnProperty.call(message, "eventExclusionCriteria")) - $root.google.analytics.data.v1alpha.EventSegmentCriteria.encode(message.eventExclusionCriteria, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.atAnyPointInTime != null && Object.hasOwnProperty.call(message, "atAnyPointInTime")) + writer.uint32(/* id 1, wireType 0 =*/8).bool(message.atAnyPointInTime); return writer; }; /** - * Encodes the specified EventSegmentExclusion message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.EventSegmentExclusion.verify|verify} messages. + * Encodes the specified SegmentFilterScoping message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SegmentFilterScoping.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.EventSegmentExclusion + * @memberof google.analytics.data.v1alpha.SegmentFilterScoping * @static - * @param {google.analytics.data.v1alpha.IEventSegmentExclusion} message EventSegmentExclusion message or plain object to encode + * @param {google.analytics.data.v1alpha.ISegmentFilterScoping} message SegmentFilterScoping message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - EventSegmentExclusion.encodeDelimited = function encodeDelimited(message, writer) { + SegmentFilterScoping.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes an EventSegmentExclusion message from the specified reader or buffer. + * Decodes a SegmentFilterScoping message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.EventSegmentExclusion + * @memberof google.analytics.data.v1alpha.SegmentFilterScoping * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.EventSegmentExclusion} EventSegmentExclusion + * @returns {google.analytics.data.v1alpha.SegmentFilterScoping} SegmentFilterScoping * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - EventSegmentExclusion.decode = function decode(reader, length, error) { + SegmentFilterScoping.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.EventSegmentExclusion(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.SegmentFilterScoping(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { case 1: { - message.eventExclusionDuration = reader.int32(); - break; - } - case 2: { - message.eventExclusionCriteria = $root.google.analytics.data.v1alpha.EventSegmentCriteria.decode(reader, reader.uint32()); + message.atAnyPointInTime = reader.bool(); break; } default: @@ -36878,172 +40169,127 @@ }; /** - * Decodes an EventSegmentExclusion message from the specified reader or buffer, length delimited. + * Decodes a SegmentFilterScoping message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.EventSegmentExclusion + * @memberof google.analytics.data.v1alpha.SegmentFilterScoping * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.EventSegmentExclusion} EventSegmentExclusion + * @returns {google.analytics.data.v1alpha.SegmentFilterScoping} SegmentFilterScoping * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - EventSegmentExclusion.decodeDelimited = function decodeDelimited(reader) { + SegmentFilterScoping.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies an EventSegmentExclusion message. + * Verifies a SegmentFilterScoping message. * @function verify - * @memberof google.analytics.data.v1alpha.EventSegmentExclusion + * @memberof google.analytics.data.v1alpha.SegmentFilterScoping * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - EventSegmentExclusion.verify = function verify(message) { + SegmentFilterScoping.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.eventExclusionDuration != null && message.hasOwnProperty("eventExclusionDuration")) - switch (message.eventExclusionDuration) { - default: - return "eventExclusionDuration: enum value expected"; - case 0: - case 1: - break; - } - if (message.eventExclusionCriteria != null && message.hasOwnProperty("eventExclusionCriteria")) { - var error = $root.google.analytics.data.v1alpha.EventSegmentCriteria.verify(message.eventExclusionCriteria); - if (error) - return "eventExclusionCriteria." + error; + var properties = {}; + if (message.atAnyPointInTime != null && message.hasOwnProperty("atAnyPointInTime")) { + properties._atAnyPointInTime = 1; + if (typeof message.atAnyPointInTime !== "boolean") + return "atAnyPointInTime: boolean expected"; } return null; }; /** - * Creates an EventSegmentExclusion message from a plain object. Also converts values to their respective internal types. + * Creates a SegmentFilterScoping message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.EventSegmentExclusion + * @memberof google.analytics.data.v1alpha.SegmentFilterScoping * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.EventSegmentExclusion} EventSegmentExclusion + * @returns {google.analytics.data.v1alpha.SegmentFilterScoping} SegmentFilterScoping */ - EventSegmentExclusion.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.EventSegmentExclusion) + SegmentFilterScoping.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.SegmentFilterScoping) return object; - var message = new $root.google.analytics.data.v1alpha.EventSegmentExclusion(); - switch (object.eventExclusionDuration) { - default: - if (typeof object.eventExclusionDuration === "number") { - message.eventExclusionDuration = object.eventExclusionDuration; - break; - } - break; - case "EVENT_EXCLUSION_DURATION_UNSPECIFIED": - case 0: - message.eventExclusionDuration = 0; - break; - case "EVENT_EXCLUSION_PERMANENT": - case 1: - message.eventExclusionDuration = 1; - break; - } - if (object.eventExclusionCriteria != null) { - if (typeof object.eventExclusionCriteria !== "object") - throw TypeError(".google.analytics.data.v1alpha.EventSegmentExclusion.eventExclusionCriteria: object expected"); - message.eventExclusionCriteria = $root.google.analytics.data.v1alpha.EventSegmentCriteria.fromObject(object.eventExclusionCriteria); - } + var message = new $root.google.analytics.data.v1alpha.SegmentFilterScoping(); + if (object.atAnyPointInTime != null) + message.atAnyPointInTime = Boolean(object.atAnyPointInTime); return message; }; /** - * Creates a plain object from an EventSegmentExclusion message. Also converts values to other types if specified. + * Creates a plain object from a SegmentFilterScoping message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.EventSegmentExclusion + * @memberof google.analytics.data.v1alpha.SegmentFilterScoping * @static - * @param {google.analytics.data.v1alpha.EventSegmentExclusion} message EventSegmentExclusion + * @param {google.analytics.data.v1alpha.SegmentFilterScoping} message SegmentFilterScoping * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - EventSegmentExclusion.toObject = function toObject(message, options) { + SegmentFilterScoping.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.defaults) { - object.eventExclusionDuration = options.enums === String ? "EVENT_EXCLUSION_DURATION_UNSPECIFIED" : 0; - object.eventExclusionCriteria = null; + if (message.atAnyPointInTime != null && message.hasOwnProperty("atAnyPointInTime")) { + object.atAnyPointInTime = message.atAnyPointInTime; + if (options.oneofs) + object._atAnyPointInTime = "atAnyPointInTime"; } - if (message.eventExclusionDuration != null && message.hasOwnProperty("eventExclusionDuration")) - object.eventExclusionDuration = options.enums === String ? $root.google.analytics.data.v1alpha.EventExclusionDuration[message.eventExclusionDuration] === undefined ? message.eventExclusionDuration : $root.google.analytics.data.v1alpha.EventExclusionDuration[message.eventExclusionDuration] : message.eventExclusionDuration; - if (message.eventExclusionCriteria != null && message.hasOwnProperty("eventExclusionCriteria")) - object.eventExclusionCriteria = $root.google.analytics.data.v1alpha.EventSegmentCriteria.toObject(message.eventExclusionCriteria, options); return object; }; /** - * Converts this EventSegmentExclusion to JSON. + * Converts this SegmentFilterScoping to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.EventSegmentExclusion + * @memberof google.analytics.data.v1alpha.SegmentFilterScoping * @instance * @returns {Object.} JSON object */ - EventSegmentExclusion.prototype.toJSON = function toJSON() { + SegmentFilterScoping.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for EventSegmentExclusion + * Gets the default type url for SegmentFilterScoping * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.EventSegmentExclusion + * @memberof google.analytics.data.v1alpha.SegmentFilterScoping * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - EventSegmentExclusion.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + SegmentFilterScoping.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.analytics.data.v1alpha.EventSegmentExclusion"; + return typeUrlPrefix + "/google.analytics.data.v1alpha.SegmentFilterScoping"; }; - return EventSegmentExclusion; - })(); - - /** - * EventExclusionDuration enum. - * @name google.analytics.data.v1alpha.EventExclusionDuration - * @enum {number} - * @property {number} EVENT_EXCLUSION_DURATION_UNSPECIFIED=0 EVENT_EXCLUSION_DURATION_UNSPECIFIED value - * @property {number} EVENT_EXCLUSION_PERMANENT=1 EVENT_EXCLUSION_PERMANENT value - */ - v1alpha.EventExclusionDuration = (function() { - var valuesById = {}, values = Object.create(valuesById); - values[valuesById[0] = "EVENT_EXCLUSION_DURATION_UNSPECIFIED"] = 0; - values[valuesById[1] = "EVENT_EXCLUSION_PERMANENT"] = 1; - return values; + return SegmentFilterScoping; })(); - v1alpha.Segment = (function() { + v1alpha.SegmentEventFilter = (function() { /** - * Properties of a Segment. + * Properties of a SegmentEventFilter. * @memberof google.analytics.data.v1alpha - * @interface ISegment - * @property {string|null} [name] Segment name - * @property {google.analytics.data.v1alpha.IUserSegment|null} [userSegment] Segment userSegment - * @property {google.analytics.data.v1alpha.ISessionSegment|null} [sessionSegment] Segment sessionSegment - * @property {google.analytics.data.v1alpha.IEventSegment|null} [eventSegment] Segment eventSegment + * @interface ISegmentEventFilter + * @property {string|null} [eventName] SegmentEventFilter eventName + * @property {google.analytics.data.v1alpha.ISegmentParameterFilterExpression|null} [segmentParameterFilterExpression] SegmentEventFilter segmentParameterFilterExpression */ /** - * Constructs a new Segment. - * @memberof google.analytics.data.v1alpha - * @classdesc Represents a Segment. - * @implements ISegment + * Constructs a new SegmentEventFilter. + * @memberof google.analytics.data.v1alpha + * @classdesc Represents a SegmentEventFilter. + * @implements ISegmentEventFilter * @constructor - * @param {google.analytics.data.v1alpha.ISegment=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.ISegmentEventFilter=} [properties] Properties to set */ - function Segment(properties) { + function SegmentEventFilter(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -37051,133 +40297,106 @@ } /** - * Segment name. - * @member {string} name - * @memberof google.analytics.data.v1alpha.Segment - * @instance - */ - Segment.prototype.name = ""; - - /** - * Segment userSegment. - * @member {google.analytics.data.v1alpha.IUserSegment|null|undefined} userSegment - * @memberof google.analytics.data.v1alpha.Segment - * @instance - */ - Segment.prototype.userSegment = null; - - /** - * Segment sessionSegment. - * @member {google.analytics.data.v1alpha.ISessionSegment|null|undefined} sessionSegment - * @memberof google.analytics.data.v1alpha.Segment + * SegmentEventFilter eventName. + * @member {string|null|undefined} eventName + * @memberof google.analytics.data.v1alpha.SegmentEventFilter * @instance */ - Segment.prototype.sessionSegment = null; + SegmentEventFilter.prototype.eventName = null; /** - * Segment eventSegment. - * @member {google.analytics.data.v1alpha.IEventSegment|null|undefined} eventSegment - * @memberof google.analytics.data.v1alpha.Segment + * SegmentEventFilter segmentParameterFilterExpression. + * @member {google.analytics.data.v1alpha.ISegmentParameterFilterExpression|null|undefined} segmentParameterFilterExpression + * @memberof google.analytics.data.v1alpha.SegmentEventFilter * @instance */ - Segment.prototype.eventSegment = null; + SegmentEventFilter.prototype.segmentParameterFilterExpression = null; // OneOf field names bound to virtual getters and setters var $oneOfFields; - /** - * Segment oneSegmentScope. - * @member {"userSegment"|"sessionSegment"|"eventSegment"|undefined} oneSegmentScope - * @memberof google.analytics.data.v1alpha.Segment - * @instance - */ - Object.defineProperty(Segment.prototype, "oneSegmentScope", { - get: $util.oneOfGetter($oneOfFields = ["userSegment", "sessionSegment", "eventSegment"]), + // Virtual OneOf for proto3 optional field + Object.defineProperty(SegmentEventFilter.prototype, "_eventName", { + get: $util.oneOfGetter($oneOfFields = ["eventName"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(SegmentEventFilter.prototype, "_segmentParameterFilterExpression", { + get: $util.oneOfGetter($oneOfFields = ["segmentParameterFilterExpression"]), set: $util.oneOfSetter($oneOfFields) }); /** - * Creates a new Segment instance using the specified properties. + * Creates a new SegmentEventFilter instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.Segment + * @memberof google.analytics.data.v1alpha.SegmentEventFilter * @static - * @param {google.analytics.data.v1alpha.ISegment=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.Segment} Segment instance + * @param {google.analytics.data.v1alpha.ISegmentEventFilter=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.SegmentEventFilter} SegmentEventFilter instance */ - Segment.create = function create(properties) { - return new Segment(properties); + SegmentEventFilter.create = function create(properties) { + return new SegmentEventFilter(properties); }; /** - * Encodes the specified Segment message. Does not implicitly {@link google.analytics.data.v1alpha.Segment.verify|verify} messages. + * Encodes the specified SegmentEventFilter message. Does not implicitly {@link google.analytics.data.v1alpha.SegmentEventFilter.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.Segment + * @memberof google.analytics.data.v1alpha.SegmentEventFilter * @static - * @param {google.analytics.data.v1alpha.ISegment} message Segment message or plain object to encode + * @param {google.analytics.data.v1alpha.ISegmentEventFilter} message SegmentEventFilter message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Segment.encode = function encode(message, writer) { + SegmentEventFilter.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.userSegment != null && Object.hasOwnProperty.call(message, "userSegment")) - $root.google.analytics.data.v1alpha.UserSegment.encode(message.userSegment, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.sessionSegment != null && Object.hasOwnProperty.call(message, "sessionSegment")) - $root.google.analytics.data.v1alpha.SessionSegment.encode(message.sessionSegment, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); - if (message.eventSegment != null && Object.hasOwnProperty.call(message, "eventSegment")) - $root.google.analytics.data.v1alpha.EventSegment.encode(message.eventSegment, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.eventName != null && Object.hasOwnProperty.call(message, "eventName")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.eventName); + if (message.segmentParameterFilterExpression != null && Object.hasOwnProperty.call(message, "segmentParameterFilterExpression")) + $root.google.analytics.data.v1alpha.SegmentParameterFilterExpression.encode(message.segmentParameterFilterExpression, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); return writer; }; /** - * Encodes the specified Segment message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.Segment.verify|verify} messages. + * Encodes the specified SegmentEventFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SegmentEventFilter.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.Segment + * @memberof google.analytics.data.v1alpha.SegmentEventFilter * @static - * @param {google.analytics.data.v1alpha.ISegment} message Segment message or plain object to encode + * @param {google.analytics.data.v1alpha.ISegmentEventFilter} message SegmentEventFilter message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Segment.encodeDelimited = function encodeDelimited(message, writer) { + SegmentEventFilter.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a Segment message from the specified reader or buffer. + * Decodes a SegmentEventFilter message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.Segment + * @memberof google.analytics.data.v1alpha.SegmentEventFilter * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.Segment} Segment + * @returns {google.analytics.data.v1alpha.SegmentEventFilter} SegmentEventFilter * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Segment.decode = function decode(reader, length, error) { + SegmentEventFilter.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.Segment(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.SegmentEventFilter(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { case 1: { - message.name = reader.string(); + message.eventName = reader.string(); break; } case 2: { - message.userSegment = $root.google.analytics.data.v1alpha.UserSegment.decode(reader, reader.uint32()); - break; - } - case 3: { - message.sessionSegment = $root.google.analytics.data.v1alpha.SessionSegment.decode(reader, reader.uint32()); - break; - } - case 4: { - message.eventSegment = $root.google.analytics.data.v1alpha.EventSegment.decode(reader, reader.uint32()); + message.segmentParameterFilterExpression = $root.google.analytics.data.v1alpha.SegmentParameterFilterExpression.decode(reader, reader.uint32()); break; } default: @@ -37189,185 +40408,147 @@ }; /** - * Decodes a Segment message from the specified reader or buffer, length delimited. + * Decodes a SegmentEventFilter message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.Segment + * @memberof google.analytics.data.v1alpha.SegmentEventFilter * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.Segment} Segment + * @returns {google.analytics.data.v1alpha.SegmentEventFilter} SegmentEventFilter * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Segment.decodeDelimited = function decodeDelimited(reader) { + SegmentEventFilter.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a Segment message. + * Verifies a SegmentEventFilter message. * @function verify - * @memberof google.analytics.data.v1alpha.Segment + * @memberof google.analytics.data.v1alpha.SegmentEventFilter * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Segment.verify = function verify(message) { + SegmentEventFilter.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.userSegment != null && message.hasOwnProperty("userSegment")) { - properties.oneSegmentScope = 1; - { - var error = $root.google.analytics.data.v1alpha.UserSegment.verify(message.userSegment); - if (error) - return "userSegment." + error; - } - } - if (message.sessionSegment != null && message.hasOwnProperty("sessionSegment")) { - if (properties.oneSegmentScope === 1) - return "oneSegmentScope: multiple values"; - properties.oneSegmentScope = 1; - { - var error = $root.google.analytics.data.v1alpha.SessionSegment.verify(message.sessionSegment); - if (error) - return "sessionSegment." + error; - } + if (message.eventName != null && message.hasOwnProperty("eventName")) { + properties._eventName = 1; + if (!$util.isString(message.eventName)) + return "eventName: string expected"; } - if (message.eventSegment != null && message.hasOwnProperty("eventSegment")) { - if (properties.oneSegmentScope === 1) - return "oneSegmentScope: multiple values"; - properties.oneSegmentScope = 1; + if (message.segmentParameterFilterExpression != null && message.hasOwnProperty("segmentParameterFilterExpression")) { + properties._segmentParameterFilterExpression = 1; { - var error = $root.google.analytics.data.v1alpha.EventSegment.verify(message.eventSegment); + var error = $root.google.analytics.data.v1alpha.SegmentParameterFilterExpression.verify(message.segmentParameterFilterExpression); if (error) - return "eventSegment." + error; + return "segmentParameterFilterExpression." + error; } } return null; }; /** - * Creates a Segment message from a plain object. Also converts values to their respective internal types. + * Creates a SegmentEventFilter message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.Segment + * @memberof google.analytics.data.v1alpha.SegmentEventFilter * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.Segment} Segment + * @returns {google.analytics.data.v1alpha.SegmentEventFilter} SegmentEventFilter */ - Segment.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.Segment) + SegmentEventFilter.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.SegmentEventFilter) return object; - var message = new $root.google.analytics.data.v1alpha.Segment(); - if (object.name != null) - message.name = String(object.name); - if (object.userSegment != null) { - if (typeof object.userSegment !== "object") - throw TypeError(".google.analytics.data.v1alpha.Segment.userSegment: object expected"); - message.userSegment = $root.google.analytics.data.v1alpha.UserSegment.fromObject(object.userSegment); - } - if (object.sessionSegment != null) { - if (typeof object.sessionSegment !== "object") - throw TypeError(".google.analytics.data.v1alpha.Segment.sessionSegment: object expected"); - message.sessionSegment = $root.google.analytics.data.v1alpha.SessionSegment.fromObject(object.sessionSegment); - } - if (object.eventSegment != null) { - if (typeof object.eventSegment !== "object") - throw TypeError(".google.analytics.data.v1alpha.Segment.eventSegment: object expected"); - message.eventSegment = $root.google.analytics.data.v1alpha.EventSegment.fromObject(object.eventSegment); + var message = new $root.google.analytics.data.v1alpha.SegmentEventFilter(); + if (object.eventName != null) + message.eventName = String(object.eventName); + if (object.segmentParameterFilterExpression != null) { + if (typeof object.segmentParameterFilterExpression !== "object") + throw TypeError(".google.analytics.data.v1alpha.SegmentEventFilter.segmentParameterFilterExpression: object expected"); + message.segmentParameterFilterExpression = $root.google.analytics.data.v1alpha.SegmentParameterFilterExpression.fromObject(object.segmentParameterFilterExpression); } return message; }; /** - * Creates a plain object from a Segment message. Also converts values to other types if specified. + * Creates a plain object from a SegmentEventFilter message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.Segment + * @memberof google.analytics.data.v1alpha.SegmentEventFilter * @static - * @param {google.analytics.data.v1alpha.Segment} message Segment + * @param {google.analytics.data.v1alpha.SegmentEventFilter} message SegmentEventFilter * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - Segment.toObject = function toObject(message, options) { + SegmentEventFilter.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; - if (message.userSegment != null && message.hasOwnProperty("userSegment")) { - object.userSegment = $root.google.analytics.data.v1alpha.UserSegment.toObject(message.userSegment, options); - if (options.oneofs) - object.oneSegmentScope = "userSegment"; - } - if (message.sessionSegment != null && message.hasOwnProperty("sessionSegment")) { - object.sessionSegment = $root.google.analytics.data.v1alpha.SessionSegment.toObject(message.sessionSegment, options); + if (message.eventName != null && message.hasOwnProperty("eventName")) { + object.eventName = message.eventName; if (options.oneofs) - object.oneSegmentScope = "sessionSegment"; + object._eventName = "eventName"; } - if (message.eventSegment != null && message.hasOwnProperty("eventSegment")) { - object.eventSegment = $root.google.analytics.data.v1alpha.EventSegment.toObject(message.eventSegment, options); + if (message.segmentParameterFilterExpression != null && message.hasOwnProperty("segmentParameterFilterExpression")) { + object.segmentParameterFilterExpression = $root.google.analytics.data.v1alpha.SegmentParameterFilterExpression.toObject(message.segmentParameterFilterExpression, options); if (options.oneofs) - object.oneSegmentScope = "eventSegment"; + object._segmentParameterFilterExpression = "segmentParameterFilterExpression"; } return object; }; /** - * Converts this Segment to JSON. + * Converts this SegmentEventFilter to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.Segment + * @memberof google.analytics.data.v1alpha.SegmentEventFilter * @instance * @returns {Object.} JSON object */ - Segment.prototype.toJSON = function toJSON() { + SegmentEventFilter.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for Segment + * Gets the default type url for SegmentEventFilter * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.Segment + * @memberof google.analytics.data.v1alpha.SegmentEventFilter * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - Segment.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + SegmentEventFilter.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.analytics.data.v1alpha.Segment"; + return typeUrlPrefix + "/google.analytics.data.v1alpha.SegmentEventFilter"; }; - return Segment; + return SegmentEventFilter; })(); - v1alpha.SegmentFilterExpression = (function() { + v1alpha.SegmentParameterFilterExpression = (function() { - /** - * Properties of a SegmentFilterExpression. - * @memberof google.analytics.data.v1alpha - * @interface ISegmentFilterExpression - * @property {google.analytics.data.v1alpha.ISegmentFilterExpressionList|null} [andGroup] SegmentFilterExpression andGroup - * @property {google.analytics.data.v1alpha.ISegmentFilterExpressionList|null} [orGroup] SegmentFilterExpression orGroup - * @property {google.analytics.data.v1alpha.ISegmentFilterExpression|null} [notExpression] SegmentFilterExpression notExpression - * @property {google.analytics.data.v1alpha.ISegmentFilter|null} [segmentFilter] SegmentFilterExpression segmentFilter - * @property {google.analytics.data.v1alpha.ISegmentEventFilter|null} [segmentEventFilter] SegmentFilterExpression segmentEventFilter + /** + * Properties of a SegmentParameterFilterExpression. + * @memberof google.analytics.data.v1alpha + * @interface ISegmentParameterFilterExpression + * @property {google.analytics.data.v1alpha.ISegmentParameterFilterExpressionList|null} [andGroup] SegmentParameterFilterExpression andGroup + * @property {google.analytics.data.v1alpha.ISegmentParameterFilterExpressionList|null} [orGroup] SegmentParameterFilterExpression orGroup + * @property {google.analytics.data.v1alpha.ISegmentParameterFilterExpression|null} [notExpression] SegmentParameterFilterExpression notExpression + * @property {google.analytics.data.v1alpha.ISegmentParameterFilter|null} [segmentParameterFilter] SegmentParameterFilterExpression segmentParameterFilter */ /** - * Constructs a new SegmentFilterExpression. + * Constructs a new SegmentParameterFilterExpression. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a SegmentFilterExpression. - * @implements ISegmentFilterExpression + * @classdesc Represents a SegmentParameterFilterExpression. + * @implements ISegmentParameterFilterExpression * @constructor - * @param {google.analytics.data.v1alpha.ISegmentFilterExpression=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.ISegmentParameterFilterExpression=} [properties] Properties to set */ - function SegmentFilterExpression(properties) { + function SegmentParameterFilterExpression(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -37375,147 +40556,133 @@ } /** - * SegmentFilterExpression andGroup. - * @member {google.analytics.data.v1alpha.ISegmentFilterExpressionList|null|undefined} andGroup - * @memberof google.analytics.data.v1alpha.SegmentFilterExpression - * @instance - */ - SegmentFilterExpression.prototype.andGroup = null; - - /** - * SegmentFilterExpression orGroup. - * @member {google.analytics.data.v1alpha.ISegmentFilterExpressionList|null|undefined} orGroup - * @memberof google.analytics.data.v1alpha.SegmentFilterExpression + * SegmentParameterFilterExpression andGroup. + * @member {google.analytics.data.v1alpha.ISegmentParameterFilterExpressionList|null|undefined} andGroup + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpression * @instance */ - SegmentFilterExpression.prototype.orGroup = null; + SegmentParameterFilterExpression.prototype.andGroup = null; /** - * SegmentFilterExpression notExpression. - * @member {google.analytics.data.v1alpha.ISegmentFilterExpression|null|undefined} notExpression - * @memberof google.analytics.data.v1alpha.SegmentFilterExpression + * SegmentParameterFilterExpression orGroup. + * @member {google.analytics.data.v1alpha.ISegmentParameterFilterExpressionList|null|undefined} orGroup + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpression * @instance */ - SegmentFilterExpression.prototype.notExpression = null; + SegmentParameterFilterExpression.prototype.orGroup = null; /** - * SegmentFilterExpression segmentFilter. - * @member {google.analytics.data.v1alpha.ISegmentFilter|null|undefined} segmentFilter - * @memberof google.analytics.data.v1alpha.SegmentFilterExpression + * SegmentParameterFilterExpression notExpression. + * @member {google.analytics.data.v1alpha.ISegmentParameterFilterExpression|null|undefined} notExpression + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpression * @instance */ - SegmentFilterExpression.prototype.segmentFilter = null; + SegmentParameterFilterExpression.prototype.notExpression = null; /** - * SegmentFilterExpression segmentEventFilter. - * @member {google.analytics.data.v1alpha.ISegmentEventFilter|null|undefined} segmentEventFilter - * @memberof google.analytics.data.v1alpha.SegmentFilterExpression + * SegmentParameterFilterExpression segmentParameterFilter. + * @member {google.analytics.data.v1alpha.ISegmentParameterFilter|null|undefined} segmentParameterFilter + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpression * @instance */ - SegmentFilterExpression.prototype.segmentEventFilter = null; + SegmentParameterFilterExpression.prototype.segmentParameterFilter = null; // OneOf field names bound to virtual getters and setters var $oneOfFields; /** - * SegmentFilterExpression expr. - * @member {"andGroup"|"orGroup"|"notExpression"|"segmentFilter"|"segmentEventFilter"|undefined} expr - * @memberof google.analytics.data.v1alpha.SegmentFilterExpression + * SegmentParameterFilterExpression expr. + * @member {"andGroup"|"orGroup"|"notExpression"|"segmentParameterFilter"|undefined} expr + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpression * @instance */ - Object.defineProperty(SegmentFilterExpression.prototype, "expr", { - get: $util.oneOfGetter($oneOfFields = ["andGroup", "orGroup", "notExpression", "segmentFilter", "segmentEventFilter"]), + Object.defineProperty(SegmentParameterFilterExpression.prototype, "expr", { + get: $util.oneOfGetter($oneOfFields = ["andGroup", "orGroup", "notExpression", "segmentParameterFilter"]), set: $util.oneOfSetter($oneOfFields) }); /** - * Creates a new SegmentFilterExpression instance using the specified properties. + * Creates a new SegmentParameterFilterExpression instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.SegmentFilterExpression + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpression * @static - * @param {google.analytics.data.v1alpha.ISegmentFilterExpression=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.SegmentFilterExpression} SegmentFilterExpression instance + * @param {google.analytics.data.v1alpha.ISegmentParameterFilterExpression=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.SegmentParameterFilterExpression} SegmentParameterFilterExpression instance */ - SegmentFilterExpression.create = function create(properties) { - return new SegmentFilterExpression(properties); + SegmentParameterFilterExpression.create = function create(properties) { + return new SegmentParameterFilterExpression(properties); }; /** - * Encodes the specified SegmentFilterExpression message. Does not implicitly {@link google.analytics.data.v1alpha.SegmentFilterExpression.verify|verify} messages. + * Encodes the specified SegmentParameterFilterExpression message. Does not implicitly {@link google.analytics.data.v1alpha.SegmentParameterFilterExpression.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.SegmentFilterExpression + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpression * @static - * @param {google.analytics.data.v1alpha.ISegmentFilterExpression} message SegmentFilterExpression message or plain object to encode + * @param {google.analytics.data.v1alpha.ISegmentParameterFilterExpression} message SegmentParameterFilterExpression message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SegmentFilterExpression.encode = function encode(message, writer) { + SegmentParameterFilterExpression.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); if (message.andGroup != null && Object.hasOwnProperty.call(message, "andGroup")) - $root.google.analytics.data.v1alpha.SegmentFilterExpressionList.encode(message.andGroup, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.analytics.data.v1alpha.SegmentParameterFilterExpressionList.encode(message.andGroup, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); if (message.orGroup != null && Object.hasOwnProperty.call(message, "orGroup")) - $root.google.analytics.data.v1alpha.SegmentFilterExpressionList.encode(message.orGroup, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.analytics.data.v1alpha.SegmentParameterFilterExpressionList.encode(message.orGroup, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); if (message.notExpression != null && Object.hasOwnProperty.call(message, "notExpression")) - $root.google.analytics.data.v1alpha.SegmentFilterExpression.encode(message.notExpression, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); - if (message.segmentFilter != null && Object.hasOwnProperty.call(message, "segmentFilter")) - $root.google.analytics.data.v1alpha.SegmentFilter.encode(message.segmentFilter, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); - if (message.segmentEventFilter != null && Object.hasOwnProperty.call(message, "segmentEventFilter")) - $root.google.analytics.data.v1alpha.SegmentEventFilter.encode(message.segmentEventFilter, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + $root.google.analytics.data.v1alpha.SegmentParameterFilterExpression.encode(message.notExpression, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.segmentParameterFilter != null && Object.hasOwnProperty.call(message, "segmentParameterFilter")) + $root.google.analytics.data.v1alpha.SegmentParameterFilter.encode(message.segmentParameterFilter, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); return writer; }; /** - * Encodes the specified SegmentFilterExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SegmentFilterExpression.verify|verify} messages. + * Encodes the specified SegmentParameterFilterExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SegmentParameterFilterExpression.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.SegmentFilterExpression + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpression * @static - * @param {google.analytics.data.v1alpha.ISegmentFilterExpression} message SegmentFilterExpression message or plain object to encode + * @param {google.analytics.data.v1alpha.ISegmentParameterFilterExpression} message SegmentParameterFilterExpression message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SegmentFilterExpression.encodeDelimited = function encodeDelimited(message, writer) { + SegmentParameterFilterExpression.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a SegmentFilterExpression message from the specified reader or buffer. + * Decodes a SegmentParameterFilterExpression message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.SegmentFilterExpression + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpression * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.SegmentFilterExpression} SegmentFilterExpression + * @returns {google.analytics.data.v1alpha.SegmentParameterFilterExpression} SegmentParameterFilterExpression * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SegmentFilterExpression.decode = function decode(reader, length, error) { + SegmentParameterFilterExpression.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.SegmentFilterExpression(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.SegmentParameterFilterExpression(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { case 1: { - message.andGroup = $root.google.analytics.data.v1alpha.SegmentFilterExpressionList.decode(reader, reader.uint32()); + message.andGroup = $root.google.analytics.data.v1alpha.SegmentParameterFilterExpressionList.decode(reader, reader.uint32()); break; } case 2: { - message.orGroup = $root.google.analytics.data.v1alpha.SegmentFilterExpressionList.decode(reader, reader.uint32()); + message.orGroup = $root.google.analytics.data.v1alpha.SegmentParameterFilterExpressionList.decode(reader, reader.uint32()); break; } case 3: { - message.notExpression = $root.google.analytics.data.v1alpha.SegmentFilterExpression.decode(reader, reader.uint32()); + message.notExpression = $root.google.analytics.data.v1alpha.SegmentParameterFilterExpression.decode(reader, reader.uint32()); break; } case 4: { - message.segmentFilter = $root.google.analytics.data.v1alpha.SegmentFilter.decode(reader, reader.uint32()); - break; - } - case 5: { - message.segmentEventFilter = $root.google.analytics.data.v1alpha.SegmentEventFilter.decode(reader, reader.uint32()); + message.segmentParameterFilter = $root.google.analytics.data.v1alpha.SegmentParameterFilter.decode(reader, reader.uint32()); break; } default: @@ -37527,37 +40694,37 @@ }; /** - * Decodes a SegmentFilterExpression message from the specified reader or buffer, length delimited. + * Decodes a SegmentParameterFilterExpression message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.SegmentFilterExpression + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpression * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.SegmentFilterExpression} SegmentFilterExpression + * @returns {google.analytics.data.v1alpha.SegmentParameterFilterExpression} SegmentParameterFilterExpression * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SegmentFilterExpression.decodeDelimited = function decodeDelimited(reader) { + SegmentParameterFilterExpression.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a SegmentFilterExpression message. + * Verifies a SegmentParameterFilterExpression message. * @function verify - * @memberof google.analytics.data.v1alpha.SegmentFilterExpression + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpression * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SegmentFilterExpression.verify = function verify(message) { + SegmentParameterFilterExpression.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; var properties = {}; if (message.andGroup != null && message.hasOwnProperty("andGroup")) { properties.expr = 1; { - var error = $root.google.analytics.data.v1alpha.SegmentFilterExpressionList.verify(message.andGroup); + var error = $root.google.analytics.data.v1alpha.SegmentParameterFilterExpressionList.verify(message.andGroup); if (error) return "andGroup." + error; } @@ -37567,7 +40734,7 @@ return "expr: multiple values"; properties.expr = 1; { - var error = $root.google.analytics.data.v1alpha.SegmentFilterExpressionList.verify(message.orGroup); + var error = $root.google.analytics.data.v1alpha.SegmentParameterFilterExpressionList.verify(message.orGroup); if (error) return "orGroup." + error; } @@ -37577,162 +40744,142 @@ return "expr: multiple values"; properties.expr = 1; { - var error = $root.google.analytics.data.v1alpha.SegmentFilterExpression.verify(message.notExpression); + var error = $root.google.analytics.data.v1alpha.SegmentParameterFilterExpression.verify(message.notExpression); if (error) return "notExpression." + error; } } - if (message.segmentFilter != null && message.hasOwnProperty("segmentFilter")) { - if (properties.expr === 1) - return "expr: multiple values"; - properties.expr = 1; - { - var error = $root.google.analytics.data.v1alpha.SegmentFilter.verify(message.segmentFilter); - if (error) - return "segmentFilter." + error; - } - } - if (message.segmentEventFilter != null && message.hasOwnProperty("segmentEventFilter")) { + if (message.segmentParameterFilter != null && message.hasOwnProperty("segmentParameterFilter")) { if (properties.expr === 1) return "expr: multiple values"; properties.expr = 1; { - var error = $root.google.analytics.data.v1alpha.SegmentEventFilter.verify(message.segmentEventFilter); + var error = $root.google.analytics.data.v1alpha.SegmentParameterFilter.verify(message.segmentParameterFilter); if (error) - return "segmentEventFilter." + error; + return "segmentParameterFilter." + error; } } return null; }; /** - * Creates a SegmentFilterExpression message from a plain object. Also converts values to their respective internal types. + * Creates a SegmentParameterFilterExpression message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.SegmentFilterExpression + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpression * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.SegmentFilterExpression} SegmentFilterExpression + * @returns {google.analytics.data.v1alpha.SegmentParameterFilterExpression} SegmentParameterFilterExpression */ - SegmentFilterExpression.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.SegmentFilterExpression) + SegmentParameterFilterExpression.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.SegmentParameterFilterExpression) return object; - var message = new $root.google.analytics.data.v1alpha.SegmentFilterExpression(); + var message = new $root.google.analytics.data.v1alpha.SegmentParameterFilterExpression(); if (object.andGroup != null) { if (typeof object.andGroup !== "object") - throw TypeError(".google.analytics.data.v1alpha.SegmentFilterExpression.andGroup: object expected"); - message.andGroup = $root.google.analytics.data.v1alpha.SegmentFilterExpressionList.fromObject(object.andGroup); + throw TypeError(".google.analytics.data.v1alpha.SegmentParameterFilterExpression.andGroup: object expected"); + message.andGroup = $root.google.analytics.data.v1alpha.SegmentParameterFilterExpressionList.fromObject(object.andGroup); } if (object.orGroup != null) { if (typeof object.orGroup !== "object") - throw TypeError(".google.analytics.data.v1alpha.SegmentFilterExpression.orGroup: object expected"); - message.orGroup = $root.google.analytics.data.v1alpha.SegmentFilterExpressionList.fromObject(object.orGroup); + throw TypeError(".google.analytics.data.v1alpha.SegmentParameterFilterExpression.orGroup: object expected"); + message.orGroup = $root.google.analytics.data.v1alpha.SegmentParameterFilterExpressionList.fromObject(object.orGroup); } if (object.notExpression != null) { if (typeof object.notExpression !== "object") - throw TypeError(".google.analytics.data.v1alpha.SegmentFilterExpression.notExpression: object expected"); - message.notExpression = $root.google.analytics.data.v1alpha.SegmentFilterExpression.fromObject(object.notExpression); - } - if (object.segmentFilter != null) { - if (typeof object.segmentFilter !== "object") - throw TypeError(".google.analytics.data.v1alpha.SegmentFilterExpression.segmentFilter: object expected"); - message.segmentFilter = $root.google.analytics.data.v1alpha.SegmentFilter.fromObject(object.segmentFilter); + throw TypeError(".google.analytics.data.v1alpha.SegmentParameterFilterExpression.notExpression: object expected"); + message.notExpression = $root.google.analytics.data.v1alpha.SegmentParameterFilterExpression.fromObject(object.notExpression); } - if (object.segmentEventFilter != null) { - if (typeof object.segmentEventFilter !== "object") - throw TypeError(".google.analytics.data.v1alpha.SegmentFilterExpression.segmentEventFilter: object expected"); - message.segmentEventFilter = $root.google.analytics.data.v1alpha.SegmentEventFilter.fromObject(object.segmentEventFilter); + if (object.segmentParameterFilter != null) { + if (typeof object.segmentParameterFilter !== "object") + throw TypeError(".google.analytics.data.v1alpha.SegmentParameterFilterExpression.segmentParameterFilter: object expected"); + message.segmentParameterFilter = $root.google.analytics.data.v1alpha.SegmentParameterFilter.fromObject(object.segmentParameterFilter); } return message; }; /** - * Creates a plain object from a SegmentFilterExpression message. Also converts values to other types if specified. + * Creates a plain object from a SegmentParameterFilterExpression message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.SegmentFilterExpression + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpression * @static - * @param {google.analytics.data.v1alpha.SegmentFilterExpression} message SegmentFilterExpression + * @param {google.analytics.data.v1alpha.SegmentParameterFilterExpression} message SegmentParameterFilterExpression * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SegmentFilterExpression.toObject = function toObject(message, options) { + SegmentParameterFilterExpression.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; if (message.andGroup != null && message.hasOwnProperty("andGroup")) { - object.andGroup = $root.google.analytics.data.v1alpha.SegmentFilterExpressionList.toObject(message.andGroup, options); + object.andGroup = $root.google.analytics.data.v1alpha.SegmentParameterFilterExpressionList.toObject(message.andGroup, options); if (options.oneofs) object.expr = "andGroup"; } if (message.orGroup != null && message.hasOwnProperty("orGroup")) { - object.orGroup = $root.google.analytics.data.v1alpha.SegmentFilterExpressionList.toObject(message.orGroup, options); + object.orGroup = $root.google.analytics.data.v1alpha.SegmentParameterFilterExpressionList.toObject(message.orGroup, options); if (options.oneofs) object.expr = "orGroup"; } if (message.notExpression != null && message.hasOwnProperty("notExpression")) { - object.notExpression = $root.google.analytics.data.v1alpha.SegmentFilterExpression.toObject(message.notExpression, options); + object.notExpression = $root.google.analytics.data.v1alpha.SegmentParameterFilterExpression.toObject(message.notExpression, options); if (options.oneofs) object.expr = "notExpression"; } - if (message.segmentFilter != null && message.hasOwnProperty("segmentFilter")) { - object.segmentFilter = $root.google.analytics.data.v1alpha.SegmentFilter.toObject(message.segmentFilter, options); - if (options.oneofs) - object.expr = "segmentFilter"; - } - if (message.segmentEventFilter != null && message.hasOwnProperty("segmentEventFilter")) { - object.segmentEventFilter = $root.google.analytics.data.v1alpha.SegmentEventFilter.toObject(message.segmentEventFilter, options); + if (message.segmentParameterFilter != null && message.hasOwnProperty("segmentParameterFilter")) { + object.segmentParameterFilter = $root.google.analytics.data.v1alpha.SegmentParameterFilter.toObject(message.segmentParameterFilter, options); if (options.oneofs) - object.expr = "segmentEventFilter"; + object.expr = "segmentParameterFilter"; } return object; }; /** - * Converts this SegmentFilterExpression to JSON. + * Converts this SegmentParameterFilterExpression to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.SegmentFilterExpression + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpression * @instance * @returns {Object.} JSON object */ - SegmentFilterExpression.prototype.toJSON = function toJSON() { + SegmentParameterFilterExpression.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for SegmentFilterExpression + * Gets the default type url for SegmentParameterFilterExpression * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.SegmentFilterExpression + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpression * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - SegmentFilterExpression.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + SegmentParameterFilterExpression.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.analytics.data.v1alpha.SegmentFilterExpression"; + return typeUrlPrefix + "/google.analytics.data.v1alpha.SegmentParameterFilterExpression"; }; - return SegmentFilterExpression; + return SegmentParameterFilterExpression; })(); - v1alpha.SegmentFilterExpressionList = (function() { + v1alpha.SegmentParameterFilterExpressionList = (function() { /** - * Properties of a SegmentFilterExpressionList. + * Properties of a SegmentParameterFilterExpressionList. * @memberof google.analytics.data.v1alpha - * @interface ISegmentFilterExpressionList - * @property {Array.|null} [expressions] SegmentFilterExpressionList expressions + * @interface ISegmentParameterFilterExpressionList + * @property {Array.|null} [expressions] SegmentParameterFilterExpressionList expressions */ /** - * Constructs a new SegmentFilterExpressionList. + * Constructs a new SegmentParameterFilterExpressionList. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a SegmentFilterExpressionList. - * @implements ISegmentFilterExpressionList + * @classdesc Represents a SegmentParameterFilterExpressionList. + * @implements ISegmentParameterFilterExpressionList * @constructor - * @param {google.analytics.data.v1alpha.ISegmentFilterExpressionList=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.ISegmentParameterFilterExpressionList=} [properties] Properties to set */ - function SegmentFilterExpressionList(properties) { + function SegmentParameterFilterExpressionList(properties) { this.expressions = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) @@ -37741,71 +40888,71 @@ } /** - * SegmentFilterExpressionList expressions. - * @member {Array.} expressions - * @memberof google.analytics.data.v1alpha.SegmentFilterExpressionList + * SegmentParameterFilterExpressionList expressions. + * @member {Array.} expressions + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpressionList * @instance */ - SegmentFilterExpressionList.prototype.expressions = $util.emptyArray; + SegmentParameterFilterExpressionList.prototype.expressions = $util.emptyArray; /** - * Creates a new SegmentFilterExpressionList instance using the specified properties. + * Creates a new SegmentParameterFilterExpressionList instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.SegmentFilterExpressionList + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpressionList * @static - * @param {google.analytics.data.v1alpha.ISegmentFilterExpressionList=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.SegmentFilterExpressionList} SegmentFilterExpressionList instance + * @param {google.analytics.data.v1alpha.ISegmentParameterFilterExpressionList=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.SegmentParameterFilterExpressionList} SegmentParameterFilterExpressionList instance */ - SegmentFilterExpressionList.create = function create(properties) { - return new SegmentFilterExpressionList(properties); + SegmentParameterFilterExpressionList.create = function create(properties) { + return new SegmentParameterFilterExpressionList(properties); }; /** - * Encodes the specified SegmentFilterExpressionList message. Does not implicitly {@link google.analytics.data.v1alpha.SegmentFilterExpressionList.verify|verify} messages. + * Encodes the specified SegmentParameterFilterExpressionList message. Does not implicitly {@link google.analytics.data.v1alpha.SegmentParameterFilterExpressionList.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.SegmentFilterExpressionList + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpressionList * @static - * @param {google.analytics.data.v1alpha.ISegmentFilterExpressionList} message SegmentFilterExpressionList message or plain object to encode + * @param {google.analytics.data.v1alpha.ISegmentParameterFilterExpressionList} message SegmentParameterFilterExpressionList message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SegmentFilterExpressionList.encode = function encode(message, writer) { + SegmentParameterFilterExpressionList.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); if (message.expressions != null && message.expressions.length) for (var i = 0; i < message.expressions.length; ++i) - $root.google.analytics.data.v1alpha.SegmentFilterExpression.encode(message.expressions[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.analytics.data.v1alpha.SegmentParameterFilterExpression.encode(message.expressions[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); return writer; }; /** - * Encodes the specified SegmentFilterExpressionList message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SegmentFilterExpressionList.verify|verify} messages. + * Encodes the specified SegmentParameterFilterExpressionList message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SegmentParameterFilterExpressionList.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.SegmentFilterExpressionList + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpressionList * @static - * @param {google.analytics.data.v1alpha.ISegmentFilterExpressionList} message SegmentFilterExpressionList message or plain object to encode + * @param {google.analytics.data.v1alpha.ISegmentParameterFilterExpressionList} message SegmentParameterFilterExpressionList message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SegmentFilterExpressionList.encodeDelimited = function encodeDelimited(message, writer) { + SegmentParameterFilterExpressionList.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a SegmentFilterExpressionList message from the specified reader or buffer. + * Decodes a SegmentParameterFilterExpressionList message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.SegmentFilterExpressionList + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpressionList * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.SegmentFilterExpressionList} SegmentFilterExpressionList + * @returns {google.analytics.data.v1alpha.SegmentParameterFilterExpressionList} SegmentParameterFilterExpressionList * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SegmentFilterExpressionList.decode = function decode(reader, length, error) { + SegmentParameterFilterExpressionList.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.SegmentFilterExpressionList(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.SegmentParameterFilterExpressionList(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) @@ -37814,7 +40961,7 @@ case 1: { if (!(message.expressions && message.expressions.length)) message.expressions = []; - message.expressions.push($root.google.analytics.data.v1alpha.SegmentFilterExpression.decode(reader, reader.uint32())); + message.expressions.push($root.google.analytics.data.v1alpha.SegmentParameterFilterExpression.decode(reader, reader.uint32())); break; } default: @@ -37826,37 +40973,37 @@ }; /** - * Decodes a SegmentFilterExpressionList message from the specified reader or buffer, length delimited. + * Decodes a SegmentParameterFilterExpressionList message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.SegmentFilterExpressionList + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpressionList * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.SegmentFilterExpressionList} SegmentFilterExpressionList + * @returns {google.analytics.data.v1alpha.SegmentParameterFilterExpressionList} SegmentParameterFilterExpressionList * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SegmentFilterExpressionList.decodeDelimited = function decodeDelimited(reader) { + SegmentParameterFilterExpressionList.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a SegmentFilterExpressionList message. + * Verifies a SegmentParameterFilterExpressionList message. * @function verify - * @memberof google.analytics.data.v1alpha.SegmentFilterExpressionList + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpressionList * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SegmentFilterExpressionList.verify = function verify(message) { + SegmentParameterFilterExpressionList.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; if (message.expressions != null && message.hasOwnProperty("expressions")) { if (!Array.isArray(message.expressions)) return "expressions: array expected"; for (var i = 0; i < message.expressions.length; ++i) { - var error = $root.google.analytics.data.v1alpha.SegmentFilterExpression.verify(message.expressions[i]); + var error = $root.google.analytics.data.v1alpha.SegmentParameterFilterExpression.verify(message.expressions[i]); if (error) return "expressions." + error; } @@ -37865,40 +41012,40 @@ }; /** - * Creates a SegmentFilterExpressionList message from a plain object. Also converts values to their respective internal types. + * Creates a SegmentParameterFilterExpressionList message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.SegmentFilterExpressionList + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpressionList * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.SegmentFilterExpressionList} SegmentFilterExpressionList + * @returns {google.analytics.data.v1alpha.SegmentParameterFilterExpressionList} SegmentParameterFilterExpressionList */ - SegmentFilterExpressionList.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.SegmentFilterExpressionList) + SegmentParameterFilterExpressionList.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.SegmentParameterFilterExpressionList) return object; - var message = new $root.google.analytics.data.v1alpha.SegmentFilterExpressionList(); + var message = new $root.google.analytics.data.v1alpha.SegmentParameterFilterExpressionList(); if (object.expressions) { if (!Array.isArray(object.expressions)) - throw TypeError(".google.analytics.data.v1alpha.SegmentFilterExpressionList.expressions: array expected"); + throw TypeError(".google.analytics.data.v1alpha.SegmentParameterFilterExpressionList.expressions: array expected"); message.expressions = []; for (var i = 0; i < object.expressions.length; ++i) { if (typeof object.expressions[i] !== "object") - throw TypeError(".google.analytics.data.v1alpha.SegmentFilterExpressionList.expressions: object expected"); - message.expressions[i] = $root.google.analytics.data.v1alpha.SegmentFilterExpression.fromObject(object.expressions[i]); + throw TypeError(".google.analytics.data.v1alpha.SegmentParameterFilterExpressionList.expressions: object expected"); + message.expressions[i] = $root.google.analytics.data.v1alpha.SegmentParameterFilterExpression.fromObject(object.expressions[i]); } } return message; }; /** - * Creates a plain object from a SegmentFilterExpressionList message. Also converts values to other types if specified. + * Creates a plain object from a SegmentParameterFilterExpressionList message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.SegmentFilterExpressionList + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpressionList * @static - * @param {google.analytics.data.v1alpha.SegmentFilterExpressionList} message SegmentFilterExpressionList + * @param {google.analytics.data.v1alpha.SegmentParameterFilterExpressionList} message SegmentParameterFilterExpressionList * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SegmentFilterExpressionList.toObject = function toObject(message, options) { + SegmentParameterFilterExpressionList.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; @@ -37907,63 +41054,64 @@ if (message.expressions && message.expressions.length) { object.expressions = []; for (var j = 0; j < message.expressions.length; ++j) - object.expressions[j] = $root.google.analytics.data.v1alpha.SegmentFilterExpression.toObject(message.expressions[j], options); + object.expressions[j] = $root.google.analytics.data.v1alpha.SegmentParameterFilterExpression.toObject(message.expressions[j], options); } return object; }; /** - * Converts this SegmentFilterExpressionList to JSON. + * Converts this SegmentParameterFilterExpressionList to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.SegmentFilterExpressionList + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpressionList * @instance * @returns {Object.} JSON object */ - SegmentFilterExpressionList.prototype.toJSON = function toJSON() { + SegmentParameterFilterExpressionList.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for SegmentFilterExpressionList + * Gets the default type url for SegmentParameterFilterExpressionList * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.SegmentFilterExpressionList + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpressionList * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - SegmentFilterExpressionList.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + SegmentParameterFilterExpressionList.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.analytics.data.v1alpha.SegmentFilterExpressionList"; + return typeUrlPrefix + "/google.analytics.data.v1alpha.SegmentParameterFilterExpressionList"; }; - return SegmentFilterExpressionList; + return SegmentParameterFilterExpressionList; })(); - v1alpha.SegmentFilter = (function() { + v1alpha.SegmentParameterFilter = (function() { /** - * Properties of a SegmentFilter. + * Properties of a SegmentParameterFilter. * @memberof google.analytics.data.v1alpha - * @interface ISegmentFilter - * @property {string|null} [fieldName] SegmentFilter fieldName - * @property {google.analytics.data.v1alpha.IStringFilter|null} [stringFilter] SegmentFilter stringFilter - * @property {google.analytics.data.v1alpha.IInListFilter|null} [inListFilter] SegmentFilter inListFilter - * @property {google.analytics.data.v1alpha.INumericFilter|null} [numericFilter] SegmentFilter numericFilter - * @property {google.analytics.data.v1alpha.IBetweenFilter|null} [betweenFilter] SegmentFilter betweenFilter - * @property {google.analytics.data.v1alpha.ISegmentFilterScoping|null} [filterScoping] SegmentFilter filterScoping + * @interface ISegmentParameterFilter + * @property {string|null} [eventParameterName] SegmentParameterFilter eventParameterName + * @property {string|null} [itemParameterName] SegmentParameterFilter itemParameterName + * @property {google.analytics.data.v1alpha.IStringFilter|null} [stringFilter] SegmentParameterFilter stringFilter + * @property {google.analytics.data.v1alpha.IInListFilter|null} [inListFilter] SegmentParameterFilter inListFilter + * @property {google.analytics.data.v1alpha.INumericFilter|null} [numericFilter] SegmentParameterFilter numericFilter + * @property {google.analytics.data.v1alpha.IBetweenFilter|null} [betweenFilter] SegmentParameterFilter betweenFilter + * @property {google.analytics.data.v1alpha.ISegmentParameterFilterScoping|null} [filterScoping] SegmentParameterFilter filterScoping */ /** - * Constructs a new SegmentFilter. + * Constructs a new SegmentParameterFilter. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a SegmentFilter. - * @implements ISegmentFilter + * @classdesc Represents a SegmentParameterFilter. + * @implements ISegmentParameterFilter * @constructor - * @param {google.analytics.data.v1alpha.ISegmentFilter=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.ISegmentParameterFilter=} [properties] Properties to set */ - function SegmentFilter(properties) { + function SegmentParameterFilter(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -37971,93 +41119,114 @@ } /** - * SegmentFilter fieldName. - * @member {string} fieldName - * @memberof google.analytics.data.v1alpha.SegmentFilter + * SegmentParameterFilter eventParameterName. + * @member {string|null|undefined} eventParameterName + * @memberof google.analytics.data.v1alpha.SegmentParameterFilter * @instance */ - SegmentFilter.prototype.fieldName = ""; + SegmentParameterFilter.prototype.eventParameterName = null; /** - * SegmentFilter stringFilter. + * SegmentParameterFilter itemParameterName. + * @member {string|null|undefined} itemParameterName + * @memberof google.analytics.data.v1alpha.SegmentParameterFilter + * @instance + */ + SegmentParameterFilter.prototype.itemParameterName = null; + + /** + * SegmentParameterFilter stringFilter. * @member {google.analytics.data.v1alpha.IStringFilter|null|undefined} stringFilter - * @memberof google.analytics.data.v1alpha.SegmentFilter + * @memberof google.analytics.data.v1alpha.SegmentParameterFilter * @instance */ - SegmentFilter.prototype.stringFilter = null; + SegmentParameterFilter.prototype.stringFilter = null; /** - * SegmentFilter inListFilter. + * SegmentParameterFilter inListFilter. * @member {google.analytics.data.v1alpha.IInListFilter|null|undefined} inListFilter - * @memberof google.analytics.data.v1alpha.SegmentFilter + * @memberof google.analytics.data.v1alpha.SegmentParameterFilter * @instance */ - SegmentFilter.prototype.inListFilter = null; + SegmentParameterFilter.prototype.inListFilter = null; /** - * SegmentFilter numericFilter. + * SegmentParameterFilter numericFilter. * @member {google.analytics.data.v1alpha.INumericFilter|null|undefined} numericFilter - * @memberof google.analytics.data.v1alpha.SegmentFilter + * @memberof google.analytics.data.v1alpha.SegmentParameterFilter * @instance */ - SegmentFilter.prototype.numericFilter = null; + SegmentParameterFilter.prototype.numericFilter = null; /** - * SegmentFilter betweenFilter. + * SegmentParameterFilter betweenFilter. * @member {google.analytics.data.v1alpha.IBetweenFilter|null|undefined} betweenFilter - * @memberof google.analytics.data.v1alpha.SegmentFilter + * @memberof google.analytics.data.v1alpha.SegmentParameterFilter * @instance */ - SegmentFilter.prototype.betweenFilter = null; + SegmentParameterFilter.prototype.betweenFilter = null; /** - * SegmentFilter filterScoping. - * @member {google.analytics.data.v1alpha.ISegmentFilterScoping|null|undefined} filterScoping - * @memberof google.analytics.data.v1alpha.SegmentFilter + * SegmentParameterFilter filterScoping. + * @member {google.analytics.data.v1alpha.ISegmentParameterFilterScoping|null|undefined} filterScoping + * @memberof google.analytics.data.v1alpha.SegmentParameterFilter * @instance */ - SegmentFilter.prototype.filterScoping = null; + SegmentParameterFilter.prototype.filterScoping = null; // OneOf field names bound to virtual getters and setters var $oneOfFields; /** - * SegmentFilter oneFilter. + * SegmentParameterFilter oneParameter. + * @member {"eventParameterName"|"itemParameterName"|undefined} oneParameter + * @memberof google.analytics.data.v1alpha.SegmentParameterFilter + * @instance + */ + Object.defineProperty(SegmentParameterFilter.prototype, "oneParameter", { + get: $util.oneOfGetter($oneOfFields = ["eventParameterName", "itemParameterName"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * SegmentParameterFilter oneFilter. * @member {"stringFilter"|"inListFilter"|"numericFilter"|"betweenFilter"|undefined} oneFilter - * @memberof google.analytics.data.v1alpha.SegmentFilter + * @memberof google.analytics.data.v1alpha.SegmentParameterFilter * @instance */ - Object.defineProperty(SegmentFilter.prototype, "oneFilter", { + Object.defineProperty(SegmentParameterFilter.prototype, "oneFilter", { get: $util.oneOfGetter($oneOfFields = ["stringFilter", "inListFilter", "numericFilter", "betweenFilter"]), set: $util.oneOfSetter($oneOfFields) }); /** - * Creates a new SegmentFilter instance using the specified properties. + * Creates a new SegmentParameterFilter instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.SegmentFilter + * @memberof google.analytics.data.v1alpha.SegmentParameterFilter * @static - * @param {google.analytics.data.v1alpha.ISegmentFilter=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.SegmentFilter} SegmentFilter instance + * @param {google.analytics.data.v1alpha.ISegmentParameterFilter=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.SegmentParameterFilter} SegmentParameterFilter instance */ - SegmentFilter.create = function create(properties) { - return new SegmentFilter(properties); + SegmentParameterFilter.create = function create(properties) { + return new SegmentParameterFilter(properties); }; /** - * Encodes the specified SegmentFilter message. Does not implicitly {@link google.analytics.data.v1alpha.SegmentFilter.verify|verify} messages. + * Encodes the specified SegmentParameterFilter message. Does not implicitly {@link google.analytics.data.v1alpha.SegmentParameterFilter.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.SegmentFilter + * @memberof google.analytics.data.v1alpha.SegmentParameterFilter * @static - * @param {google.analytics.data.v1alpha.ISegmentFilter} message SegmentFilter message or plain object to encode + * @param {google.analytics.data.v1alpha.ISegmentParameterFilter} message SegmentParameterFilter message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SegmentFilter.encode = function encode(message, writer) { + SegmentParameterFilter.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.fieldName != null && Object.hasOwnProperty.call(message, "fieldName")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.fieldName); + if (message.eventParameterName != null && Object.hasOwnProperty.call(message, "eventParameterName")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.eventParameterName); + if (message.itemParameterName != null && Object.hasOwnProperty.call(message, "itemParameterName")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.itemParameterName); if (message.stringFilter != null && Object.hasOwnProperty.call(message, "stringFilter")) $root.google.analytics.data.v1alpha.StringFilter.encode(message.stringFilter, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); if (message.inListFilter != null && Object.hasOwnProperty.call(message, "inListFilter")) @@ -38067,45 +41236,49 @@ if (message.betweenFilter != null && Object.hasOwnProperty.call(message, "betweenFilter")) $root.google.analytics.data.v1alpha.BetweenFilter.encode(message.betweenFilter, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); if (message.filterScoping != null && Object.hasOwnProperty.call(message, "filterScoping")) - $root.google.analytics.data.v1alpha.SegmentFilterScoping.encode(message.filterScoping, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); + $root.google.analytics.data.v1alpha.SegmentParameterFilterScoping.encode(message.filterScoping, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); return writer; }; /** - * Encodes the specified SegmentFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SegmentFilter.verify|verify} messages. + * Encodes the specified SegmentParameterFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SegmentParameterFilter.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.SegmentFilter + * @memberof google.analytics.data.v1alpha.SegmentParameterFilter * @static - * @param {google.analytics.data.v1alpha.ISegmentFilter} message SegmentFilter message or plain object to encode + * @param {google.analytics.data.v1alpha.ISegmentParameterFilter} message SegmentParameterFilter message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SegmentFilter.encodeDelimited = function encodeDelimited(message, writer) { + SegmentParameterFilter.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a SegmentFilter message from the specified reader or buffer. + * Decodes a SegmentParameterFilter message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.SegmentFilter + * @memberof google.analytics.data.v1alpha.SegmentParameterFilter * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.SegmentFilter} SegmentFilter + * @returns {google.analytics.data.v1alpha.SegmentParameterFilter} SegmentParameterFilter * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SegmentFilter.decode = function decode(reader, length, error) { + SegmentParameterFilter.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.SegmentFilter(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.SegmentParameterFilter(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { case 1: { - message.fieldName = reader.string(); + message.eventParameterName = reader.string(); + break; + } + case 2: { + message.itemParameterName = reader.string(); break; } case 4: { @@ -38125,7 +41298,7 @@ break; } case 8: { - message.filterScoping = $root.google.analytics.data.v1alpha.SegmentFilterScoping.decode(reader, reader.uint32()); + message.filterScoping = $root.google.analytics.data.v1alpha.SegmentParameterFilterScoping.decode(reader, reader.uint32()); break; } default: @@ -38137,36 +41310,45 @@ }; /** - * Decodes a SegmentFilter message from the specified reader or buffer, length delimited. + * Decodes a SegmentParameterFilter message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.SegmentFilter + * @memberof google.analytics.data.v1alpha.SegmentParameterFilter * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.SegmentFilter} SegmentFilter + * @returns {google.analytics.data.v1alpha.SegmentParameterFilter} SegmentParameterFilter * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SegmentFilter.decodeDelimited = function decodeDelimited(reader) { + SegmentParameterFilter.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a SegmentFilter message. + * Verifies a SegmentParameterFilter message. * @function verify - * @memberof google.analytics.data.v1alpha.SegmentFilter + * @memberof google.analytics.data.v1alpha.SegmentParameterFilter * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SegmentFilter.verify = function verify(message) { + SegmentParameterFilter.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; var properties = {}; - if (message.fieldName != null && message.hasOwnProperty("fieldName")) - if (!$util.isString(message.fieldName)) - return "fieldName: string expected"; + if (message.eventParameterName != null && message.hasOwnProperty("eventParameterName")) { + properties.oneParameter = 1; + if (!$util.isString(message.eventParameterName)) + return "eventParameterName: string expected"; + } + if (message.itemParameterName != null && message.hasOwnProperty("itemParameterName")) { + if (properties.oneParameter === 1) + return "oneParameter: multiple values"; + properties.oneParameter = 1; + if (!$util.isString(message.itemParameterName)) + return "itemParameterName: string expected"; + } if (message.stringFilter != null && message.hasOwnProperty("stringFilter")) { properties.oneFilter = 1; { @@ -38206,7 +41388,7 @@ } } if (message.filterScoping != null && message.hasOwnProperty("filterScoping")) { - var error = $root.google.analytics.data.v1alpha.SegmentFilterScoping.verify(message.filterScoping); + var error = $root.google.analytics.data.v1alpha.SegmentParameterFilterScoping.verify(message.filterScoping); if (error) return "filterScoping." + error; } @@ -38214,66 +41396,74 @@ }; /** - * Creates a SegmentFilter message from a plain object. Also converts values to their respective internal types. + * Creates a SegmentParameterFilter message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.SegmentFilter + * @memberof google.analytics.data.v1alpha.SegmentParameterFilter * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.SegmentFilter} SegmentFilter + * @returns {google.analytics.data.v1alpha.SegmentParameterFilter} SegmentParameterFilter */ - SegmentFilter.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.SegmentFilter) + SegmentParameterFilter.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.SegmentParameterFilter) return object; - var message = new $root.google.analytics.data.v1alpha.SegmentFilter(); - if (object.fieldName != null) - message.fieldName = String(object.fieldName); + var message = new $root.google.analytics.data.v1alpha.SegmentParameterFilter(); + if (object.eventParameterName != null) + message.eventParameterName = String(object.eventParameterName); + if (object.itemParameterName != null) + message.itemParameterName = String(object.itemParameterName); if (object.stringFilter != null) { if (typeof object.stringFilter !== "object") - throw TypeError(".google.analytics.data.v1alpha.SegmentFilter.stringFilter: object expected"); + throw TypeError(".google.analytics.data.v1alpha.SegmentParameterFilter.stringFilter: object expected"); message.stringFilter = $root.google.analytics.data.v1alpha.StringFilter.fromObject(object.stringFilter); } if (object.inListFilter != null) { if (typeof object.inListFilter !== "object") - throw TypeError(".google.analytics.data.v1alpha.SegmentFilter.inListFilter: object expected"); + throw TypeError(".google.analytics.data.v1alpha.SegmentParameterFilter.inListFilter: object expected"); message.inListFilter = $root.google.analytics.data.v1alpha.InListFilter.fromObject(object.inListFilter); } if (object.numericFilter != null) { if (typeof object.numericFilter !== "object") - throw TypeError(".google.analytics.data.v1alpha.SegmentFilter.numericFilter: object expected"); + throw TypeError(".google.analytics.data.v1alpha.SegmentParameterFilter.numericFilter: object expected"); message.numericFilter = $root.google.analytics.data.v1alpha.NumericFilter.fromObject(object.numericFilter); } if (object.betweenFilter != null) { if (typeof object.betweenFilter !== "object") - throw TypeError(".google.analytics.data.v1alpha.SegmentFilter.betweenFilter: object expected"); + throw TypeError(".google.analytics.data.v1alpha.SegmentParameterFilter.betweenFilter: object expected"); message.betweenFilter = $root.google.analytics.data.v1alpha.BetweenFilter.fromObject(object.betweenFilter); } if (object.filterScoping != null) { if (typeof object.filterScoping !== "object") - throw TypeError(".google.analytics.data.v1alpha.SegmentFilter.filterScoping: object expected"); - message.filterScoping = $root.google.analytics.data.v1alpha.SegmentFilterScoping.fromObject(object.filterScoping); + throw TypeError(".google.analytics.data.v1alpha.SegmentParameterFilter.filterScoping: object expected"); + message.filterScoping = $root.google.analytics.data.v1alpha.SegmentParameterFilterScoping.fromObject(object.filterScoping); } return message; }; /** - * Creates a plain object from a SegmentFilter message. Also converts values to other types if specified. + * Creates a plain object from a SegmentParameterFilter message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.SegmentFilter + * @memberof google.analytics.data.v1alpha.SegmentParameterFilter * @static - * @param {google.analytics.data.v1alpha.SegmentFilter} message SegmentFilter + * @param {google.analytics.data.v1alpha.SegmentParameterFilter} message SegmentParameterFilter * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SegmentFilter.toObject = function toObject(message, options) { + SegmentParameterFilter.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.defaults) { - object.fieldName = ""; + if (options.defaults) object.filterScoping = null; + if (message.eventParameterName != null && message.hasOwnProperty("eventParameterName")) { + object.eventParameterName = message.eventParameterName; + if (options.oneofs) + object.oneParameter = "eventParameterName"; + } + if (message.itemParameterName != null && message.hasOwnProperty("itemParameterName")) { + object.itemParameterName = message.itemParameterName; + if (options.oneofs) + object.oneParameter = "itemParameterName"; } - if (message.fieldName != null && message.hasOwnProperty("fieldName")) - object.fieldName = message.fieldName; if (message.stringFilter != null && message.hasOwnProperty("stringFilter")) { object.stringFilter = $root.google.analytics.data.v1alpha.StringFilter.toObject(message.stringFilter, options); if (options.oneofs) @@ -38295,57 +41485,57 @@ object.oneFilter = "betweenFilter"; } if (message.filterScoping != null && message.hasOwnProperty("filterScoping")) - object.filterScoping = $root.google.analytics.data.v1alpha.SegmentFilterScoping.toObject(message.filterScoping, options); + object.filterScoping = $root.google.analytics.data.v1alpha.SegmentParameterFilterScoping.toObject(message.filterScoping, options); return object; }; /** - * Converts this SegmentFilter to JSON. + * Converts this SegmentParameterFilter to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.SegmentFilter + * @memberof google.analytics.data.v1alpha.SegmentParameterFilter * @instance * @returns {Object.} JSON object */ - SegmentFilter.prototype.toJSON = function toJSON() { + SegmentParameterFilter.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for SegmentFilter + * Gets the default type url for SegmentParameterFilter * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.SegmentFilter + * @memberof google.analytics.data.v1alpha.SegmentParameterFilter * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - SegmentFilter.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + SegmentParameterFilter.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.analytics.data.v1alpha.SegmentFilter"; + return typeUrlPrefix + "/google.analytics.data.v1alpha.SegmentParameterFilter"; }; - return SegmentFilter; + return SegmentParameterFilter; })(); - v1alpha.SegmentFilterScoping = (function() { + v1alpha.SegmentParameterFilterScoping = (function() { /** - * Properties of a SegmentFilterScoping. + * Properties of a SegmentParameterFilterScoping. * @memberof google.analytics.data.v1alpha - * @interface ISegmentFilterScoping - * @property {boolean|null} [atAnyPointInTime] SegmentFilterScoping atAnyPointInTime + * @interface ISegmentParameterFilterScoping + * @property {number|Long|null} [inAnyNDayPeriod] SegmentParameterFilterScoping inAnyNDayPeriod */ /** - * Constructs a new SegmentFilterScoping. + * Constructs a new SegmentParameterFilterScoping. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a SegmentFilterScoping. - * @implements ISegmentFilterScoping + * @classdesc Represents a SegmentParameterFilterScoping. + * @implements ISegmentParameterFilterScoping * @constructor - * @param {google.analytics.data.v1alpha.ISegmentFilterScoping=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.ISegmentParameterFilterScoping=} [properties] Properties to set */ - function SegmentFilterScoping(properties) { + function SegmentParameterFilterScoping(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -38353,86 +41543,86 @@ } /** - * SegmentFilterScoping atAnyPointInTime. - * @member {boolean|null|undefined} atAnyPointInTime - * @memberof google.analytics.data.v1alpha.SegmentFilterScoping + * SegmentParameterFilterScoping inAnyNDayPeriod. + * @member {number|Long|null|undefined} inAnyNDayPeriod + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterScoping * @instance */ - SegmentFilterScoping.prototype.atAnyPointInTime = null; + SegmentParameterFilterScoping.prototype.inAnyNDayPeriod = null; // OneOf field names bound to virtual getters and setters var $oneOfFields; // Virtual OneOf for proto3 optional field - Object.defineProperty(SegmentFilterScoping.prototype, "_atAnyPointInTime", { - get: $util.oneOfGetter($oneOfFields = ["atAnyPointInTime"]), + Object.defineProperty(SegmentParameterFilterScoping.prototype, "_inAnyNDayPeriod", { + get: $util.oneOfGetter($oneOfFields = ["inAnyNDayPeriod"]), set: $util.oneOfSetter($oneOfFields) }); /** - * Creates a new SegmentFilterScoping instance using the specified properties. + * Creates a new SegmentParameterFilterScoping instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.SegmentFilterScoping + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterScoping * @static - * @param {google.analytics.data.v1alpha.ISegmentFilterScoping=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.SegmentFilterScoping} SegmentFilterScoping instance + * @param {google.analytics.data.v1alpha.ISegmentParameterFilterScoping=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.SegmentParameterFilterScoping} SegmentParameterFilterScoping instance */ - SegmentFilterScoping.create = function create(properties) { - return new SegmentFilterScoping(properties); + SegmentParameterFilterScoping.create = function create(properties) { + return new SegmentParameterFilterScoping(properties); }; /** - * Encodes the specified SegmentFilterScoping message. Does not implicitly {@link google.analytics.data.v1alpha.SegmentFilterScoping.verify|verify} messages. + * Encodes the specified SegmentParameterFilterScoping message. Does not implicitly {@link google.analytics.data.v1alpha.SegmentParameterFilterScoping.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.SegmentFilterScoping + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterScoping * @static - * @param {google.analytics.data.v1alpha.ISegmentFilterScoping} message SegmentFilterScoping message or plain object to encode + * @param {google.analytics.data.v1alpha.ISegmentParameterFilterScoping} message SegmentParameterFilterScoping message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SegmentFilterScoping.encode = function encode(message, writer) { + SegmentParameterFilterScoping.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.atAnyPointInTime != null && Object.hasOwnProperty.call(message, "atAnyPointInTime")) - writer.uint32(/* id 1, wireType 0 =*/8).bool(message.atAnyPointInTime); + if (message.inAnyNDayPeriod != null && Object.hasOwnProperty.call(message, "inAnyNDayPeriod")) + writer.uint32(/* id 1, wireType 0 =*/8).int64(message.inAnyNDayPeriod); return writer; }; /** - * Encodes the specified SegmentFilterScoping message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SegmentFilterScoping.verify|verify} messages. + * Encodes the specified SegmentParameterFilterScoping message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SegmentParameterFilterScoping.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.SegmentFilterScoping + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterScoping * @static - * @param {google.analytics.data.v1alpha.ISegmentFilterScoping} message SegmentFilterScoping message or plain object to encode + * @param {google.analytics.data.v1alpha.ISegmentParameterFilterScoping} message SegmentParameterFilterScoping message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SegmentFilterScoping.encodeDelimited = function encodeDelimited(message, writer) { + SegmentParameterFilterScoping.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a SegmentFilterScoping message from the specified reader or buffer. + * Decodes a SegmentParameterFilterScoping message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.SegmentFilterScoping + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterScoping * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.SegmentFilterScoping} SegmentFilterScoping + * @returns {google.analytics.data.v1alpha.SegmentParameterFilterScoping} SegmentParameterFilterScoping * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SegmentFilterScoping.decode = function decode(reader, length, error) { + SegmentParameterFilterScoping.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.SegmentFilterScoping(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.SegmentParameterFilterScoping(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { case 1: { - message.atAnyPointInTime = reader.bool(); + message.inAnyNDayPeriod = reader.int64(); break; } default: @@ -38444,127 +41634,140 @@ }; /** - * Decodes a SegmentFilterScoping message from the specified reader or buffer, length delimited. + * Decodes a SegmentParameterFilterScoping message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.SegmentFilterScoping + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterScoping * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.SegmentFilterScoping} SegmentFilterScoping + * @returns {google.analytics.data.v1alpha.SegmentParameterFilterScoping} SegmentParameterFilterScoping * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SegmentFilterScoping.decodeDelimited = function decodeDelimited(reader) { + SegmentParameterFilterScoping.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a SegmentFilterScoping message. + * Verifies a SegmentParameterFilterScoping message. * @function verify - * @memberof google.analytics.data.v1alpha.SegmentFilterScoping + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterScoping * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SegmentFilterScoping.verify = function verify(message) { + SegmentParameterFilterScoping.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; var properties = {}; - if (message.atAnyPointInTime != null && message.hasOwnProperty("atAnyPointInTime")) { - properties._atAnyPointInTime = 1; - if (typeof message.atAnyPointInTime !== "boolean") - return "atAnyPointInTime: boolean expected"; + if (message.inAnyNDayPeriod != null && message.hasOwnProperty("inAnyNDayPeriod")) { + properties._inAnyNDayPeriod = 1; + if (!$util.isInteger(message.inAnyNDayPeriod) && !(message.inAnyNDayPeriod && $util.isInteger(message.inAnyNDayPeriod.low) && $util.isInteger(message.inAnyNDayPeriod.high))) + return "inAnyNDayPeriod: integer|Long expected"; } return null; }; /** - * Creates a SegmentFilterScoping message from a plain object. Also converts values to their respective internal types. + * Creates a SegmentParameterFilterScoping message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.SegmentFilterScoping + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterScoping * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.SegmentFilterScoping} SegmentFilterScoping + * @returns {google.analytics.data.v1alpha.SegmentParameterFilterScoping} SegmentParameterFilterScoping */ - SegmentFilterScoping.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.SegmentFilterScoping) + SegmentParameterFilterScoping.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.SegmentParameterFilterScoping) return object; - var message = new $root.google.analytics.data.v1alpha.SegmentFilterScoping(); - if (object.atAnyPointInTime != null) - message.atAnyPointInTime = Boolean(object.atAnyPointInTime); + var message = new $root.google.analytics.data.v1alpha.SegmentParameterFilterScoping(); + if (object.inAnyNDayPeriod != null) + if ($util.Long) + (message.inAnyNDayPeriod = $util.Long.fromValue(object.inAnyNDayPeriod)).unsigned = false; + else if (typeof object.inAnyNDayPeriod === "string") + message.inAnyNDayPeriod = parseInt(object.inAnyNDayPeriod, 10); + else if (typeof object.inAnyNDayPeriod === "number") + message.inAnyNDayPeriod = object.inAnyNDayPeriod; + else if (typeof object.inAnyNDayPeriod === "object") + message.inAnyNDayPeriod = new $util.LongBits(object.inAnyNDayPeriod.low >>> 0, object.inAnyNDayPeriod.high >>> 0).toNumber(); return message; }; /** - * Creates a plain object from a SegmentFilterScoping message. Also converts values to other types if specified. + * Creates a plain object from a SegmentParameterFilterScoping message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.SegmentFilterScoping + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterScoping * @static - * @param {google.analytics.data.v1alpha.SegmentFilterScoping} message SegmentFilterScoping + * @param {google.analytics.data.v1alpha.SegmentParameterFilterScoping} message SegmentParameterFilterScoping * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SegmentFilterScoping.toObject = function toObject(message, options) { + SegmentParameterFilterScoping.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (message.atAnyPointInTime != null && message.hasOwnProperty("atAnyPointInTime")) { - object.atAnyPointInTime = message.atAnyPointInTime; + if (message.inAnyNDayPeriod != null && message.hasOwnProperty("inAnyNDayPeriod")) { + if (typeof message.inAnyNDayPeriod === "number") + object.inAnyNDayPeriod = options.longs === String ? String(message.inAnyNDayPeriod) : message.inAnyNDayPeriod; + else + object.inAnyNDayPeriod = options.longs === String ? $util.Long.prototype.toString.call(message.inAnyNDayPeriod) : options.longs === Number ? new $util.LongBits(message.inAnyNDayPeriod.low >>> 0, message.inAnyNDayPeriod.high >>> 0).toNumber() : message.inAnyNDayPeriod; if (options.oneofs) - object._atAnyPointInTime = "atAnyPointInTime"; + object._inAnyNDayPeriod = "inAnyNDayPeriod"; } return object; }; /** - * Converts this SegmentFilterScoping to JSON. + * Converts this SegmentParameterFilterScoping to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.SegmentFilterScoping + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterScoping * @instance * @returns {Object.} JSON object */ - SegmentFilterScoping.prototype.toJSON = function toJSON() { + SegmentParameterFilterScoping.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for SegmentFilterScoping + * Gets the default type url for SegmentParameterFilterScoping * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.SegmentFilterScoping + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterScoping * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - SegmentFilterScoping.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + SegmentParameterFilterScoping.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.analytics.data.v1alpha.SegmentFilterScoping"; + return typeUrlPrefix + "/google.analytics.data.v1alpha.SegmentParameterFilterScoping"; }; - return SegmentFilterScoping; + return SegmentParameterFilterScoping; })(); - v1alpha.SegmentEventFilter = (function() { + v1alpha.FunnelFilterExpression = (function() { /** - * Properties of a SegmentEventFilter. + * Properties of a FunnelFilterExpression. * @memberof google.analytics.data.v1alpha - * @interface ISegmentEventFilter - * @property {string|null} [eventName] SegmentEventFilter eventName - * @property {google.analytics.data.v1alpha.ISegmentParameterFilterExpression|null} [segmentParameterFilterExpression] SegmentEventFilter segmentParameterFilterExpression + * @interface IFunnelFilterExpression + * @property {google.analytics.data.v1alpha.IFunnelFilterExpressionList|null} [andGroup] FunnelFilterExpression andGroup + * @property {google.analytics.data.v1alpha.IFunnelFilterExpressionList|null} [orGroup] FunnelFilterExpression orGroup + * @property {google.analytics.data.v1alpha.IFunnelFilterExpression|null} [notExpression] FunnelFilterExpression notExpression + * @property {google.analytics.data.v1alpha.IFunnelFieldFilter|null} [funnelFieldFilter] FunnelFilterExpression funnelFieldFilter + * @property {google.analytics.data.v1alpha.IFunnelEventFilter|null} [funnelEventFilter] FunnelFilterExpression funnelEventFilter */ /** - * Constructs a new SegmentEventFilter. + * Constructs a new FunnelFilterExpression. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a SegmentEventFilter. - * @implements ISegmentEventFilter + * @classdesc Represents a FunnelFilterExpression. + * @implements IFunnelFilterExpression * @constructor - * @param {google.analytics.data.v1alpha.ISegmentEventFilter=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IFunnelFilterExpression=} [properties] Properties to set */ - function SegmentEventFilter(properties) { + function FunnelFilterExpression(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -38572,106 +41775,147 @@ } /** - * SegmentEventFilter eventName. - * @member {string|null|undefined} eventName - * @memberof google.analytics.data.v1alpha.SegmentEventFilter + * FunnelFilterExpression andGroup. + * @member {google.analytics.data.v1alpha.IFunnelFilterExpressionList|null|undefined} andGroup + * @memberof google.analytics.data.v1alpha.FunnelFilterExpression * @instance */ - SegmentEventFilter.prototype.eventName = null; + FunnelFilterExpression.prototype.andGroup = null; /** - * SegmentEventFilter segmentParameterFilterExpression. - * @member {google.analytics.data.v1alpha.ISegmentParameterFilterExpression|null|undefined} segmentParameterFilterExpression - * @memberof google.analytics.data.v1alpha.SegmentEventFilter + * FunnelFilterExpression orGroup. + * @member {google.analytics.data.v1alpha.IFunnelFilterExpressionList|null|undefined} orGroup + * @memberof google.analytics.data.v1alpha.FunnelFilterExpression * @instance */ - SegmentEventFilter.prototype.segmentParameterFilterExpression = null; + FunnelFilterExpression.prototype.orGroup = null; + + /** + * FunnelFilterExpression notExpression. + * @member {google.analytics.data.v1alpha.IFunnelFilterExpression|null|undefined} notExpression + * @memberof google.analytics.data.v1alpha.FunnelFilterExpression + * @instance + */ + FunnelFilterExpression.prototype.notExpression = null; + + /** + * FunnelFilterExpression funnelFieldFilter. + * @member {google.analytics.data.v1alpha.IFunnelFieldFilter|null|undefined} funnelFieldFilter + * @memberof google.analytics.data.v1alpha.FunnelFilterExpression + * @instance + */ + FunnelFilterExpression.prototype.funnelFieldFilter = null; + + /** + * FunnelFilterExpression funnelEventFilter. + * @member {google.analytics.data.v1alpha.IFunnelEventFilter|null|undefined} funnelEventFilter + * @memberof google.analytics.data.v1alpha.FunnelFilterExpression + * @instance + */ + FunnelFilterExpression.prototype.funnelEventFilter = null; // OneOf field names bound to virtual getters and setters var $oneOfFields; - // Virtual OneOf for proto3 optional field - Object.defineProperty(SegmentEventFilter.prototype, "_eventName", { - get: $util.oneOfGetter($oneOfFields = ["eventName"]), - set: $util.oneOfSetter($oneOfFields) - }); - - // Virtual OneOf for proto3 optional field - Object.defineProperty(SegmentEventFilter.prototype, "_segmentParameterFilterExpression", { - get: $util.oneOfGetter($oneOfFields = ["segmentParameterFilterExpression"]), + /** + * FunnelFilterExpression expr. + * @member {"andGroup"|"orGroup"|"notExpression"|"funnelFieldFilter"|"funnelEventFilter"|undefined} expr + * @memberof google.analytics.data.v1alpha.FunnelFilterExpression + * @instance + */ + Object.defineProperty(FunnelFilterExpression.prototype, "expr", { + get: $util.oneOfGetter($oneOfFields = ["andGroup", "orGroup", "notExpression", "funnelFieldFilter", "funnelEventFilter"]), set: $util.oneOfSetter($oneOfFields) }); /** - * Creates a new SegmentEventFilter instance using the specified properties. + * Creates a new FunnelFilterExpression instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.SegmentEventFilter + * @memberof google.analytics.data.v1alpha.FunnelFilterExpression * @static - * @param {google.analytics.data.v1alpha.ISegmentEventFilter=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.SegmentEventFilter} SegmentEventFilter instance + * @param {google.analytics.data.v1alpha.IFunnelFilterExpression=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.FunnelFilterExpression} FunnelFilterExpression instance */ - SegmentEventFilter.create = function create(properties) { - return new SegmentEventFilter(properties); + FunnelFilterExpression.create = function create(properties) { + return new FunnelFilterExpression(properties); }; /** - * Encodes the specified SegmentEventFilter message. Does not implicitly {@link google.analytics.data.v1alpha.SegmentEventFilter.verify|verify} messages. + * Encodes the specified FunnelFilterExpression message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelFilterExpression.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.SegmentEventFilter + * @memberof google.analytics.data.v1alpha.FunnelFilterExpression * @static - * @param {google.analytics.data.v1alpha.ISegmentEventFilter} message SegmentEventFilter message or plain object to encode + * @param {google.analytics.data.v1alpha.IFunnelFilterExpression} message FunnelFilterExpression message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SegmentEventFilter.encode = function encode(message, writer) { + FunnelFilterExpression.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.eventName != null && Object.hasOwnProperty.call(message, "eventName")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.eventName); - if (message.segmentParameterFilterExpression != null && Object.hasOwnProperty.call(message, "segmentParameterFilterExpression")) - $root.google.analytics.data.v1alpha.SegmentParameterFilterExpression.encode(message.segmentParameterFilterExpression, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.andGroup != null && Object.hasOwnProperty.call(message, "andGroup")) + $root.google.analytics.data.v1alpha.FunnelFilterExpressionList.encode(message.andGroup, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.orGroup != null && Object.hasOwnProperty.call(message, "orGroup")) + $root.google.analytics.data.v1alpha.FunnelFilterExpressionList.encode(message.orGroup, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.notExpression != null && Object.hasOwnProperty.call(message, "notExpression")) + $root.google.analytics.data.v1alpha.FunnelFilterExpression.encode(message.notExpression, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.funnelFieldFilter != null && Object.hasOwnProperty.call(message, "funnelFieldFilter")) + $root.google.analytics.data.v1alpha.FunnelFieldFilter.encode(message.funnelFieldFilter, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.funnelEventFilter != null && Object.hasOwnProperty.call(message, "funnelEventFilter")) + $root.google.analytics.data.v1alpha.FunnelEventFilter.encode(message.funnelEventFilter, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); return writer; }; /** - * Encodes the specified SegmentEventFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SegmentEventFilter.verify|verify} messages. + * Encodes the specified FunnelFilterExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelFilterExpression.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.SegmentEventFilter + * @memberof google.analytics.data.v1alpha.FunnelFilterExpression * @static - * @param {google.analytics.data.v1alpha.ISegmentEventFilter} message SegmentEventFilter message or plain object to encode + * @param {google.analytics.data.v1alpha.IFunnelFilterExpression} message FunnelFilterExpression message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SegmentEventFilter.encodeDelimited = function encodeDelimited(message, writer) { + FunnelFilterExpression.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a SegmentEventFilter message from the specified reader or buffer. + * Decodes a FunnelFilterExpression message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.SegmentEventFilter + * @memberof google.analytics.data.v1alpha.FunnelFilterExpression * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.SegmentEventFilter} SegmentEventFilter + * @returns {google.analytics.data.v1alpha.FunnelFilterExpression} FunnelFilterExpression * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SegmentEventFilter.decode = function decode(reader, length, error) { + FunnelFilterExpression.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.SegmentEventFilter(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.FunnelFilterExpression(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { case 1: { - message.eventName = reader.string(); + message.andGroup = $root.google.analytics.data.v1alpha.FunnelFilterExpressionList.decode(reader, reader.uint32()); break; } case 2: { - message.segmentParameterFilterExpression = $root.google.analytics.data.v1alpha.SegmentParameterFilterExpression.decode(reader, reader.uint32()); + message.orGroup = $root.google.analytics.data.v1alpha.FunnelFilterExpressionList.decode(reader, reader.uint32()); + break; + } + case 3: { + message.notExpression = $root.google.analytics.data.v1alpha.FunnelFilterExpression.decode(reader, reader.uint32()); + break; + } + case 4: { + message.funnelFieldFilter = $root.google.analytics.data.v1alpha.FunnelFieldFilter.decode(reader, reader.uint32()); + break; + } + case 5: { + message.funnelEventFilter = $root.google.analytics.data.v1alpha.FunnelEventFilter.decode(reader, reader.uint32()); break; } default: @@ -38683,147 +41927,213 @@ }; /** - * Decodes a SegmentEventFilter message from the specified reader or buffer, length delimited. + * Decodes a FunnelFilterExpression message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.SegmentEventFilter + * @memberof google.analytics.data.v1alpha.FunnelFilterExpression * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.SegmentEventFilter} SegmentEventFilter + * @returns {google.analytics.data.v1alpha.FunnelFilterExpression} FunnelFilterExpression * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SegmentEventFilter.decodeDelimited = function decodeDelimited(reader) { + FunnelFilterExpression.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a SegmentEventFilter message. + * Verifies a FunnelFilterExpression message. * @function verify - * @memberof google.analytics.data.v1alpha.SegmentEventFilter + * @memberof google.analytics.data.v1alpha.FunnelFilterExpression * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SegmentEventFilter.verify = function verify(message) { + FunnelFilterExpression.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; var properties = {}; - if (message.eventName != null && message.hasOwnProperty("eventName")) { - properties._eventName = 1; - if (!$util.isString(message.eventName)) - return "eventName: string expected"; + if (message.andGroup != null && message.hasOwnProperty("andGroup")) { + properties.expr = 1; + { + var error = $root.google.analytics.data.v1alpha.FunnelFilterExpressionList.verify(message.andGroup); + if (error) + return "andGroup." + error; + } } - if (message.segmentParameterFilterExpression != null && message.hasOwnProperty("segmentParameterFilterExpression")) { - properties._segmentParameterFilterExpression = 1; + if (message.orGroup != null && message.hasOwnProperty("orGroup")) { + if (properties.expr === 1) + return "expr: multiple values"; + properties.expr = 1; { - var error = $root.google.analytics.data.v1alpha.SegmentParameterFilterExpression.verify(message.segmentParameterFilterExpression); + var error = $root.google.analytics.data.v1alpha.FunnelFilterExpressionList.verify(message.orGroup); if (error) - return "segmentParameterFilterExpression." + error; + return "orGroup." + error; + } + } + if (message.notExpression != null && message.hasOwnProperty("notExpression")) { + if (properties.expr === 1) + return "expr: multiple values"; + properties.expr = 1; + { + var error = $root.google.analytics.data.v1alpha.FunnelFilterExpression.verify(message.notExpression); + if (error) + return "notExpression." + error; + } + } + if (message.funnelFieldFilter != null && message.hasOwnProperty("funnelFieldFilter")) { + if (properties.expr === 1) + return "expr: multiple values"; + properties.expr = 1; + { + var error = $root.google.analytics.data.v1alpha.FunnelFieldFilter.verify(message.funnelFieldFilter); + if (error) + return "funnelFieldFilter." + error; + } + } + if (message.funnelEventFilter != null && message.hasOwnProperty("funnelEventFilter")) { + if (properties.expr === 1) + return "expr: multiple values"; + properties.expr = 1; + { + var error = $root.google.analytics.data.v1alpha.FunnelEventFilter.verify(message.funnelEventFilter); + if (error) + return "funnelEventFilter." + error; } } return null; }; /** - * Creates a SegmentEventFilter message from a plain object. Also converts values to their respective internal types. + * Creates a FunnelFilterExpression message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.SegmentEventFilter + * @memberof google.analytics.data.v1alpha.FunnelFilterExpression * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.SegmentEventFilter} SegmentEventFilter + * @returns {google.analytics.data.v1alpha.FunnelFilterExpression} FunnelFilterExpression */ - SegmentEventFilter.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.SegmentEventFilter) + FunnelFilterExpression.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.FunnelFilterExpression) return object; - var message = new $root.google.analytics.data.v1alpha.SegmentEventFilter(); - if (object.eventName != null) - message.eventName = String(object.eventName); - if (object.segmentParameterFilterExpression != null) { - if (typeof object.segmentParameterFilterExpression !== "object") - throw TypeError(".google.analytics.data.v1alpha.SegmentEventFilter.segmentParameterFilterExpression: object expected"); - message.segmentParameterFilterExpression = $root.google.analytics.data.v1alpha.SegmentParameterFilterExpression.fromObject(object.segmentParameterFilterExpression); + var message = new $root.google.analytics.data.v1alpha.FunnelFilterExpression(); + if (object.andGroup != null) { + if (typeof object.andGroup !== "object") + throw TypeError(".google.analytics.data.v1alpha.FunnelFilterExpression.andGroup: object expected"); + message.andGroup = $root.google.analytics.data.v1alpha.FunnelFilterExpressionList.fromObject(object.andGroup); + } + if (object.orGroup != null) { + if (typeof object.orGroup !== "object") + throw TypeError(".google.analytics.data.v1alpha.FunnelFilterExpression.orGroup: object expected"); + message.orGroup = $root.google.analytics.data.v1alpha.FunnelFilterExpressionList.fromObject(object.orGroup); + } + if (object.notExpression != null) { + if (typeof object.notExpression !== "object") + throw TypeError(".google.analytics.data.v1alpha.FunnelFilterExpression.notExpression: object expected"); + message.notExpression = $root.google.analytics.data.v1alpha.FunnelFilterExpression.fromObject(object.notExpression); + } + if (object.funnelFieldFilter != null) { + if (typeof object.funnelFieldFilter !== "object") + throw TypeError(".google.analytics.data.v1alpha.FunnelFilterExpression.funnelFieldFilter: object expected"); + message.funnelFieldFilter = $root.google.analytics.data.v1alpha.FunnelFieldFilter.fromObject(object.funnelFieldFilter); + } + if (object.funnelEventFilter != null) { + if (typeof object.funnelEventFilter !== "object") + throw TypeError(".google.analytics.data.v1alpha.FunnelFilterExpression.funnelEventFilter: object expected"); + message.funnelEventFilter = $root.google.analytics.data.v1alpha.FunnelEventFilter.fromObject(object.funnelEventFilter); } return message; }; /** - * Creates a plain object from a SegmentEventFilter message. Also converts values to other types if specified. + * Creates a plain object from a FunnelFilterExpression message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.SegmentEventFilter + * @memberof google.analytics.data.v1alpha.FunnelFilterExpression * @static - * @param {google.analytics.data.v1alpha.SegmentEventFilter} message SegmentEventFilter + * @param {google.analytics.data.v1alpha.FunnelFilterExpression} message FunnelFilterExpression * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SegmentEventFilter.toObject = function toObject(message, options) { + FunnelFilterExpression.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (message.eventName != null && message.hasOwnProperty("eventName")) { - object.eventName = message.eventName; + if (message.andGroup != null && message.hasOwnProperty("andGroup")) { + object.andGroup = $root.google.analytics.data.v1alpha.FunnelFilterExpressionList.toObject(message.andGroup, options); if (options.oneofs) - object._eventName = "eventName"; + object.expr = "andGroup"; } - if (message.segmentParameterFilterExpression != null && message.hasOwnProperty("segmentParameterFilterExpression")) { - object.segmentParameterFilterExpression = $root.google.analytics.data.v1alpha.SegmentParameterFilterExpression.toObject(message.segmentParameterFilterExpression, options); + if (message.orGroup != null && message.hasOwnProperty("orGroup")) { + object.orGroup = $root.google.analytics.data.v1alpha.FunnelFilterExpressionList.toObject(message.orGroup, options); if (options.oneofs) - object._segmentParameterFilterExpression = "segmentParameterFilterExpression"; + object.expr = "orGroup"; + } + if (message.notExpression != null && message.hasOwnProperty("notExpression")) { + object.notExpression = $root.google.analytics.data.v1alpha.FunnelFilterExpression.toObject(message.notExpression, options); + if (options.oneofs) + object.expr = "notExpression"; + } + if (message.funnelFieldFilter != null && message.hasOwnProperty("funnelFieldFilter")) { + object.funnelFieldFilter = $root.google.analytics.data.v1alpha.FunnelFieldFilter.toObject(message.funnelFieldFilter, options); + if (options.oneofs) + object.expr = "funnelFieldFilter"; + } + if (message.funnelEventFilter != null && message.hasOwnProperty("funnelEventFilter")) { + object.funnelEventFilter = $root.google.analytics.data.v1alpha.FunnelEventFilter.toObject(message.funnelEventFilter, options); + if (options.oneofs) + object.expr = "funnelEventFilter"; } return object; }; /** - * Converts this SegmentEventFilter to JSON. + * Converts this FunnelFilterExpression to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.SegmentEventFilter + * @memberof google.analytics.data.v1alpha.FunnelFilterExpression * @instance * @returns {Object.} JSON object */ - SegmentEventFilter.prototype.toJSON = function toJSON() { + FunnelFilterExpression.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for SegmentEventFilter + * Gets the default type url for FunnelFilterExpression * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.SegmentEventFilter + * @memberof google.analytics.data.v1alpha.FunnelFilterExpression * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - SegmentEventFilter.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + FunnelFilterExpression.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.analytics.data.v1alpha.SegmentEventFilter"; + return typeUrlPrefix + "/google.analytics.data.v1alpha.FunnelFilterExpression"; }; - return SegmentEventFilter; + return FunnelFilterExpression; })(); - v1alpha.SegmentParameterFilterExpression = (function() { + v1alpha.FunnelFilterExpressionList = (function() { /** - * Properties of a SegmentParameterFilterExpression. + * Properties of a FunnelFilterExpressionList. * @memberof google.analytics.data.v1alpha - * @interface ISegmentParameterFilterExpression - * @property {google.analytics.data.v1alpha.ISegmentParameterFilterExpressionList|null} [andGroup] SegmentParameterFilterExpression andGroup - * @property {google.analytics.data.v1alpha.ISegmentParameterFilterExpressionList|null} [orGroup] SegmentParameterFilterExpression orGroup - * @property {google.analytics.data.v1alpha.ISegmentParameterFilterExpression|null} [notExpression] SegmentParameterFilterExpression notExpression - * @property {google.analytics.data.v1alpha.ISegmentParameterFilter|null} [segmentParameterFilter] SegmentParameterFilterExpression segmentParameterFilter + * @interface IFunnelFilterExpressionList + * @property {Array.|null} [expressions] FunnelFilterExpressionList expressions */ /** - * Constructs a new SegmentParameterFilterExpression. + * Constructs a new FunnelFilterExpressionList. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a SegmentParameterFilterExpression. - * @implements ISegmentParameterFilterExpression + * @classdesc Represents a FunnelFilterExpressionList. + * @implements IFunnelFilterExpressionList * @constructor - * @param {google.analytics.data.v1alpha.ISegmentParameterFilterExpression=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IFunnelFilterExpressionList=} [properties] Properties to set */ - function SegmentParameterFilterExpression(properties) { + function FunnelFilterExpressionList(properties) { + this.expressions = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -38831,331 +42141,228 @@ } /** - * SegmentParameterFilterExpression andGroup. - * @member {google.analytics.data.v1alpha.ISegmentParameterFilterExpressionList|null|undefined} andGroup - * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpression - * @instance - */ - SegmentParameterFilterExpression.prototype.andGroup = null; - - /** - * SegmentParameterFilterExpression orGroup. - * @member {google.analytics.data.v1alpha.ISegmentParameterFilterExpressionList|null|undefined} orGroup - * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpression - * @instance - */ - SegmentParameterFilterExpression.prototype.orGroup = null; - - /** - * SegmentParameterFilterExpression notExpression. - * @member {google.analytics.data.v1alpha.ISegmentParameterFilterExpression|null|undefined} notExpression - * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpression - * @instance - */ - SegmentParameterFilterExpression.prototype.notExpression = null; - - /** - * SegmentParameterFilterExpression segmentParameterFilter. - * @member {google.analytics.data.v1alpha.ISegmentParameterFilter|null|undefined} segmentParameterFilter - * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpression - * @instance - */ - SegmentParameterFilterExpression.prototype.segmentParameterFilter = null; - - // OneOf field names bound to virtual getters and setters - var $oneOfFields; - - /** - * SegmentParameterFilterExpression expr. - * @member {"andGroup"|"orGroup"|"notExpression"|"segmentParameterFilter"|undefined} expr - * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpression + * FunnelFilterExpressionList expressions. + * @member {Array.} expressions + * @memberof google.analytics.data.v1alpha.FunnelFilterExpressionList * @instance */ - Object.defineProperty(SegmentParameterFilterExpression.prototype, "expr", { - get: $util.oneOfGetter($oneOfFields = ["andGroup", "orGroup", "notExpression", "segmentParameterFilter"]), - set: $util.oneOfSetter($oneOfFields) - }); + FunnelFilterExpressionList.prototype.expressions = $util.emptyArray; /** - * Creates a new SegmentParameterFilterExpression instance using the specified properties. + * Creates a new FunnelFilterExpressionList instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpression + * @memberof google.analytics.data.v1alpha.FunnelFilterExpressionList * @static - * @param {google.analytics.data.v1alpha.ISegmentParameterFilterExpression=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.SegmentParameterFilterExpression} SegmentParameterFilterExpression instance + * @param {google.analytics.data.v1alpha.IFunnelFilterExpressionList=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.FunnelFilterExpressionList} FunnelFilterExpressionList instance */ - SegmentParameterFilterExpression.create = function create(properties) { - return new SegmentParameterFilterExpression(properties); + FunnelFilterExpressionList.create = function create(properties) { + return new FunnelFilterExpressionList(properties); }; /** - * Encodes the specified SegmentParameterFilterExpression message. Does not implicitly {@link google.analytics.data.v1alpha.SegmentParameterFilterExpression.verify|verify} messages. + * Encodes the specified FunnelFilterExpressionList message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelFilterExpressionList.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpression + * @memberof google.analytics.data.v1alpha.FunnelFilterExpressionList * @static - * @param {google.analytics.data.v1alpha.ISegmentParameterFilterExpression} message SegmentParameterFilterExpression message or plain object to encode + * @param {google.analytics.data.v1alpha.IFunnelFilterExpressionList} message FunnelFilterExpressionList message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SegmentParameterFilterExpression.encode = function encode(message, writer) { + FunnelFilterExpressionList.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.andGroup != null && Object.hasOwnProperty.call(message, "andGroup")) - $root.google.analytics.data.v1alpha.SegmentParameterFilterExpressionList.encode(message.andGroup, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.orGroup != null && Object.hasOwnProperty.call(message, "orGroup")) - $root.google.analytics.data.v1alpha.SegmentParameterFilterExpressionList.encode(message.orGroup, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.notExpression != null && Object.hasOwnProperty.call(message, "notExpression")) - $root.google.analytics.data.v1alpha.SegmentParameterFilterExpression.encode(message.notExpression, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); - if (message.segmentParameterFilter != null && Object.hasOwnProperty.call(message, "segmentParameterFilter")) - $root.google.analytics.data.v1alpha.SegmentParameterFilter.encode(message.segmentParameterFilter, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.expressions != null && message.expressions.length) + for (var i = 0; i < message.expressions.length; ++i) + $root.google.analytics.data.v1alpha.FunnelFilterExpression.encode(message.expressions[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); return writer; }; /** - * Encodes the specified SegmentParameterFilterExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SegmentParameterFilterExpression.verify|verify} messages. + * Encodes the specified FunnelFilterExpressionList message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelFilterExpressionList.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpression + * @memberof google.analytics.data.v1alpha.FunnelFilterExpressionList * @static - * @param {google.analytics.data.v1alpha.ISegmentParameterFilterExpression} message SegmentParameterFilterExpression message or plain object to encode + * @param {google.analytics.data.v1alpha.IFunnelFilterExpressionList} message FunnelFilterExpressionList message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SegmentParameterFilterExpression.encodeDelimited = function encodeDelimited(message, writer) { + FunnelFilterExpressionList.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a SegmentParameterFilterExpression message from the specified reader or buffer. + * Decodes a FunnelFilterExpressionList message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpression + * @memberof google.analytics.data.v1alpha.FunnelFilterExpressionList * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.SegmentParameterFilterExpression} SegmentParameterFilterExpression + * @returns {google.analytics.data.v1alpha.FunnelFilterExpressionList} FunnelFilterExpressionList * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SegmentParameterFilterExpression.decode = function decode(reader, length, error) { + FunnelFilterExpressionList.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.SegmentParameterFilterExpression(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.FunnelFilterExpressionList(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { case 1: { - message.andGroup = $root.google.analytics.data.v1alpha.SegmentParameterFilterExpressionList.decode(reader, reader.uint32()); - break; - } - case 2: { - message.orGroup = $root.google.analytics.data.v1alpha.SegmentParameterFilterExpressionList.decode(reader, reader.uint32()); - break; - } - case 3: { - message.notExpression = $root.google.analytics.data.v1alpha.SegmentParameterFilterExpression.decode(reader, reader.uint32()); - break; - } - case 4: { - message.segmentParameterFilter = $root.google.analytics.data.v1alpha.SegmentParameterFilter.decode(reader, reader.uint32()); + if (!(message.expressions && message.expressions.length)) + message.expressions = []; + message.expressions.push($root.google.analytics.data.v1alpha.FunnelFilterExpression.decode(reader, reader.uint32())); break; } default: reader.skipType(tag & 7); - break; - } - } - return message; - }; - - /** - * Decodes a SegmentParameterFilterExpression message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpression - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.SegmentParameterFilterExpression} SegmentParameterFilterExpression - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - SegmentParameterFilterExpression.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; - - /** - * Verifies a SegmentParameterFilterExpression message. - * @function verify - * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpression - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - SegmentParameterFilterExpression.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - var properties = {}; - if (message.andGroup != null && message.hasOwnProperty("andGroup")) { - properties.expr = 1; - { - var error = $root.google.analytics.data.v1alpha.SegmentParameterFilterExpressionList.verify(message.andGroup); - if (error) - return "andGroup." + error; - } - } - if (message.orGroup != null && message.hasOwnProperty("orGroup")) { - if (properties.expr === 1) - return "expr: multiple values"; - properties.expr = 1; - { - var error = $root.google.analytics.data.v1alpha.SegmentParameterFilterExpressionList.verify(message.orGroup); - if (error) - return "orGroup." + error; - } - } - if (message.notExpression != null && message.hasOwnProperty("notExpression")) { - if (properties.expr === 1) - return "expr: multiple values"; - properties.expr = 1; - { - var error = $root.google.analytics.data.v1alpha.SegmentParameterFilterExpression.verify(message.notExpression); - if (error) - return "notExpression." + error; - } - } - if (message.segmentParameterFilter != null && message.hasOwnProperty("segmentParameterFilter")) { - if (properties.expr === 1) - return "expr: multiple values"; - properties.expr = 1; - { - var error = $root.google.analytics.data.v1alpha.SegmentParameterFilter.verify(message.segmentParameterFilter); + break; + } + } + return message; + }; + + /** + * Decodes a FunnelFilterExpressionList message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1alpha.FunnelFilterExpressionList + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1alpha.FunnelFilterExpressionList} FunnelFilterExpressionList + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + FunnelFilterExpressionList.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a FunnelFilterExpressionList message. + * @function verify + * @memberof google.analytics.data.v1alpha.FunnelFilterExpressionList + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + FunnelFilterExpressionList.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.expressions != null && message.hasOwnProperty("expressions")) { + if (!Array.isArray(message.expressions)) + return "expressions: array expected"; + for (var i = 0; i < message.expressions.length; ++i) { + var error = $root.google.analytics.data.v1alpha.FunnelFilterExpression.verify(message.expressions[i]); if (error) - return "segmentParameterFilter." + error; + return "expressions." + error; } } return null; }; /** - * Creates a SegmentParameterFilterExpression message from a plain object. Also converts values to their respective internal types. + * Creates a FunnelFilterExpressionList message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpression + * @memberof google.analytics.data.v1alpha.FunnelFilterExpressionList * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.SegmentParameterFilterExpression} SegmentParameterFilterExpression + * @returns {google.analytics.data.v1alpha.FunnelFilterExpressionList} FunnelFilterExpressionList */ - SegmentParameterFilterExpression.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.SegmentParameterFilterExpression) + FunnelFilterExpressionList.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.FunnelFilterExpressionList) return object; - var message = new $root.google.analytics.data.v1alpha.SegmentParameterFilterExpression(); - if (object.andGroup != null) { - if (typeof object.andGroup !== "object") - throw TypeError(".google.analytics.data.v1alpha.SegmentParameterFilterExpression.andGroup: object expected"); - message.andGroup = $root.google.analytics.data.v1alpha.SegmentParameterFilterExpressionList.fromObject(object.andGroup); - } - if (object.orGroup != null) { - if (typeof object.orGroup !== "object") - throw TypeError(".google.analytics.data.v1alpha.SegmentParameterFilterExpression.orGroup: object expected"); - message.orGroup = $root.google.analytics.data.v1alpha.SegmentParameterFilterExpressionList.fromObject(object.orGroup); - } - if (object.notExpression != null) { - if (typeof object.notExpression !== "object") - throw TypeError(".google.analytics.data.v1alpha.SegmentParameterFilterExpression.notExpression: object expected"); - message.notExpression = $root.google.analytics.data.v1alpha.SegmentParameterFilterExpression.fromObject(object.notExpression); - } - if (object.segmentParameterFilter != null) { - if (typeof object.segmentParameterFilter !== "object") - throw TypeError(".google.analytics.data.v1alpha.SegmentParameterFilterExpression.segmentParameterFilter: object expected"); - message.segmentParameterFilter = $root.google.analytics.data.v1alpha.SegmentParameterFilter.fromObject(object.segmentParameterFilter); + var message = new $root.google.analytics.data.v1alpha.FunnelFilterExpressionList(); + if (object.expressions) { + if (!Array.isArray(object.expressions)) + throw TypeError(".google.analytics.data.v1alpha.FunnelFilterExpressionList.expressions: array expected"); + message.expressions = []; + for (var i = 0; i < object.expressions.length; ++i) { + if (typeof object.expressions[i] !== "object") + throw TypeError(".google.analytics.data.v1alpha.FunnelFilterExpressionList.expressions: object expected"); + message.expressions[i] = $root.google.analytics.data.v1alpha.FunnelFilterExpression.fromObject(object.expressions[i]); + } } return message; }; /** - * Creates a plain object from a SegmentParameterFilterExpression message. Also converts values to other types if specified. + * Creates a plain object from a FunnelFilterExpressionList message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpression + * @memberof google.analytics.data.v1alpha.FunnelFilterExpressionList * @static - * @param {google.analytics.data.v1alpha.SegmentParameterFilterExpression} message SegmentParameterFilterExpression + * @param {google.analytics.data.v1alpha.FunnelFilterExpressionList} message FunnelFilterExpressionList * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SegmentParameterFilterExpression.toObject = function toObject(message, options) { + FunnelFilterExpressionList.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (message.andGroup != null && message.hasOwnProperty("andGroup")) { - object.andGroup = $root.google.analytics.data.v1alpha.SegmentParameterFilterExpressionList.toObject(message.andGroup, options); - if (options.oneofs) - object.expr = "andGroup"; - } - if (message.orGroup != null && message.hasOwnProperty("orGroup")) { - object.orGroup = $root.google.analytics.data.v1alpha.SegmentParameterFilterExpressionList.toObject(message.orGroup, options); - if (options.oneofs) - object.expr = "orGroup"; - } - if (message.notExpression != null && message.hasOwnProperty("notExpression")) { - object.notExpression = $root.google.analytics.data.v1alpha.SegmentParameterFilterExpression.toObject(message.notExpression, options); - if (options.oneofs) - object.expr = "notExpression"; - } - if (message.segmentParameterFilter != null && message.hasOwnProperty("segmentParameterFilter")) { - object.segmentParameterFilter = $root.google.analytics.data.v1alpha.SegmentParameterFilter.toObject(message.segmentParameterFilter, options); - if (options.oneofs) - object.expr = "segmentParameterFilter"; + if (options.arrays || options.defaults) + object.expressions = []; + if (message.expressions && message.expressions.length) { + object.expressions = []; + for (var j = 0; j < message.expressions.length; ++j) + object.expressions[j] = $root.google.analytics.data.v1alpha.FunnelFilterExpression.toObject(message.expressions[j], options); } return object; }; /** - * Converts this SegmentParameterFilterExpression to JSON. + * Converts this FunnelFilterExpressionList to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpression + * @memberof google.analytics.data.v1alpha.FunnelFilterExpressionList * @instance * @returns {Object.} JSON object */ - SegmentParameterFilterExpression.prototype.toJSON = function toJSON() { + FunnelFilterExpressionList.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for SegmentParameterFilterExpression + * Gets the default type url for FunnelFilterExpressionList * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpression + * @memberof google.analytics.data.v1alpha.FunnelFilterExpressionList * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - SegmentParameterFilterExpression.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + FunnelFilterExpressionList.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.analytics.data.v1alpha.SegmentParameterFilterExpression"; + return typeUrlPrefix + "/google.analytics.data.v1alpha.FunnelFilterExpressionList"; }; - return SegmentParameterFilterExpression; + return FunnelFilterExpressionList; })(); - v1alpha.SegmentParameterFilterExpressionList = (function() { + v1alpha.FunnelFieldFilter = (function() { /** - * Properties of a SegmentParameterFilterExpressionList. + * Properties of a FunnelFieldFilter. * @memberof google.analytics.data.v1alpha - * @interface ISegmentParameterFilterExpressionList - * @property {Array.|null} [expressions] SegmentParameterFilterExpressionList expressions + * @interface IFunnelFieldFilter + * @property {string|null} [fieldName] FunnelFieldFilter fieldName + * @property {google.analytics.data.v1alpha.IStringFilter|null} [stringFilter] FunnelFieldFilter stringFilter + * @property {google.analytics.data.v1alpha.IInListFilter|null} [inListFilter] FunnelFieldFilter inListFilter + * @property {google.analytics.data.v1alpha.INumericFilter|null} [numericFilter] FunnelFieldFilter numericFilter + * @property {google.analytics.data.v1alpha.IBetweenFilter|null} [betweenFilter] FunnelFieldFilter betweenFilter */ /** - * Constructs a new SegmentParameterFilterExpressionList. + * Constructs a new FunnelFieldFilter. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a SegmentParameterFilterExpressionList. - * @implements ISegmentParameterFilterExpressionList + * @classdesc Represents a FunnelFieldFilter. + * @implements IFunnelFieldFilter * @constructor - * @param {google.analytics.data.v1alpha.ISegmentParameterFilterExpressionList=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IFunnelFieldFilter=} [properties] Properties to set */ - function SegmentParameterFilterExpressionList(properties) { - this.expressions = []; + function FunnelFieldFilter(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -39163,80 +42370,147 @@ } /** - * SegmentParameterFilterExpressionList expressions. - * @member {Array.} expressions - * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpressionList + * FunnelFieldFilter fieldName. + * @member {string} fieldName + * @memberof google.analytics.data.v1alpha.FunnelFieldFilter * @instance */ - SegmentParameterFilterExpressionList.prototype.expressions = $util.emptyArray; + FunnelFieldFilter.prototype.fieldName = ""; /** - * Creates a new SegmentParameterFilterExpressionList instance using the specified properties. + * FunnelFieldFilter stringFilter. + * @member {google.analytics.data.v1alpha.IStringFilter|null|undefined} stringFilter + * @memberof google.analytics.data.v1alpha.FunnelFieldFilter + * @instance + */ + FunnelFieldFilter.prototype.stringFilter = null; + + /** + * FunnelFieldFilter inListFilter. + * @member {google.analytics.data.v1alpha.IInListFilter|null|undefined} inListFilter + * @memberof google.analytics.data.v1alpha.FunnelFieldFilter + * @instance + */ + FunnelFieldFilter.prototype.inListFilter = null; + + /** + * FunnelFieldFilter numericFilter. + * @member {google.analytics.data.v1alpha.INumericFilter|null|undefined} numericFilter + * @memberof google.analytics.data.v1alpha.FunnelFieldFilter + * @instance + */ + FunnelFieldFilter.prototype.numericFilter = null; + + /** + * FunnelFieldFilter betweenFilter. + * @member {google.analytics.data.v1alpha.IBetweenFilter|null|undefined} betweenFilter + * @memberof google.analytics.data.v1alpha.FunnelFieldFilter + * @instance + */ + FunnelFieldFilter.prototype.betweenFilter = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * FunnelFieldFilter oneFilter. + * @member {"stringFilter"|"inListFilter"|"numericFilter"|"betweenFilter"|undefined} oneFilter + * @memberof google.analytics.data.v1alpha.FunnelFieldFilter + * @instance + */ + Object.defineProperty(FunnelFieldFilter.prototype, "oneFilter", { + get: $util.oneOfGetter($oneOfFields = ["stringFilter", "inListFilter", "numericFilter", "betweenFilter"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new FunnelFieldFilter instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpressionList + * @memberof google.analytics.data.v1alpha.FunnelFieldFilter * @static - * @param {google.analytics.data.v1alpha.ISegmentParameterFilterExpressionList=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.SegmentParameterFilterExpressionList} SegmentParameterFilterExpressionList instance + * @param {google.analytics.data.v1alpha.IFunnelFieldFilter=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.FunnelFieldFilter} FunnelFieldFilter instance */ - SegmentParameterFilterExpressionList.create = function create(properties) { - return new SegmentParameterFilterExpressionList(properties); + FunnelFieldFilter.create = function create(properties) { + return new FunnelFieldFilter(properties); }; /** - * Encodes the specified SegmentParameterFilterExpressionList message. Does not implicitly {@link google.analytics.data.v1alpha.SegmentParameterFilterExpressionList.verify|verify} messages. + * Encodes the specified FunnelFieldFilter message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelFieldFilter.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpressionList + * @memberof google.analytics.data.v1alpha.FunnelFieldFilter * @static - * @param {google.analytics.data.v1alpha.ISegmentParameterFilterExpressionList} message SegmentParameterFilterExpressionList message or plain object to encode + * @param {google.analytics.data.v1alpha.IFunnelFieldFilter} message FunnelFieldFilter message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SegmentParameterFilterExpressionList.encode = function encode(message, writer) { + FunnelFieldFilter.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.expressions != null && message.expressions.length) - for (var i = 0; i < message.expressions.length; ++i) - $root.google.analytics.data.v1alpha.SegmentParameterFilterExpression.encode(message.expressions[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.fieldName != null && Object.hasOwnProperty.call(message, "fieldName")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.fieldName); + if (message.stringFilter != null && Object.hasOwnProperty.call(message, "stringFilter")) + $root.google.analytics.data.v1alpha.StringFilter.encode(message.stringFilter, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.inListFilter != null && Object.hasOwnProperty.call(message, "inListFilter")) + $root.google.analytics.data.v1alpha.InListFilter.encode(message.inListFilter, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + if (message.numericFilter != null && Object.hasOwnProperty.call(message, "numericFilter")) + $root.google.analytics.data.v1alpha.NumericFilter.encode(message.numericFilter, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + if (message.betweenFilter != null && Object.hasOwnProperty.call(message, "betweenFilter")) + $root.google.analytics.data.v1alpha.BetweenFilter.encode(message.betweenFilter, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); return writer; }; /** - * Encodes the specified SegmentParameterFilterExpressionList message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SegmentParameterFilterExpressionList.verify|verify} messages. + * Encodes the specified FunnelFieldFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelFieldFilter.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpressionList + * @memberof google.analytics.data.v1alpha.FunnelFieldFilter * @static - * @param {google.analytics.data.v1alpha.ISegmentParameterFilterExpressionList} message SegmentParameterFilterExpressionList message or plain object to encode + * @param {google.analytics.data.v1alpha.IFunnelFieldFilter} message FunnelFieldFilter message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SegmentParameterFilterExpressionList.encodeDelimited = function encodeDelimited(message, writer) { + FunnelFieldFilter.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a SegmentParameterFilterExpressionList message from the specified reader or buffer. + * Decodes a FunnelFieldFilter message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpressionList + * @memberof google.analytics.data.v1alpha.FunnelFieldFilter * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.SegmentParameterFilterExpressionList} SegmentParameterFilterExpressionList + * @returns {google.analytics.data.v1alpha.FunnelFieldFilter} FunnelFieldFilter * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SegmentParameterFilterExpressionList.decode = function decode(reader, length, error) { + FunnelFieldFilter.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.SegmentParameterFilterExpressionList(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.FunnelFieldFilter(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { case 1: { - if (!(message.expressions && message.expressions.length)) - message.expressions = []; - message.expressions.push($root.google.analytics.data.v1alpha.SegmentParameterFilterExpression.decode(reader, reader.uint32())); + message.fieldName = reader.string(); + break; + } + case 4: { + message.stringFilter = $root.google.analytics.data.v1alpha.StringFilter.decode(reader, reader.uint32()); + break; + } + case 5: { + message.inListFilter = $root.google.analytics.data.v1alpha.InListFilter.decode(reader, reader.uint32()); + break; + } + case 6: { + message.numericFilter = $root.google.analytics.data.v1alpha.NumericFilter.decode(reader, reader.uint32()); + break; + } + case 7: { + message.betweenFilter = $root.google.analytics.data.v1alpha.BetweenFilter.decode(reader, reader.uint32()); break; } default: @@ -39248,145 +42522,202 @@ }; /** - * Decodes a SegmentParameterFilterExpressionList message from the specified reader or buffer, length delimited. + * Decodes a FunnelFieldFilter message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpressionList + * @memberof google.analytics.data.v1alpha.FunnelFieldFilter * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.SegmentParameterFilterExpressionList} SegmentParameterFilterExpressionList + * @returns {google.analytics.data.v1alpha.FunnelFieldFilter} FunnelFieldFilter * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SegmentParameterFilterExpressionList.decodeDelimited = function decodeDelimited(reader) { + FunnelFieldFilter.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a SegmentParameterFilterExpressionList message. + * Verifies a FunnelFieldFilter message. * @function verify - * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpressionList + * @memberof google.analytics.data.v1alpha.FunnelFieldFilter * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SegmentParameterFilterExpressionList.verify = function verify(message) { + FunnelFieldFilter.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.expressions != null && message.hasOwnProperty("expressions")) { - if (!Array.isArray(message.expressions)) - return "expressions: array expected"; - for (var i = 0; i < message.expressions.length; ++i) { - var error = $root.google.analytics.data.v1alpha.SegmentParameterFilterExpression.verify(message.expressions[i]); + var properties = {}; + if (message.fieldName != null && message.hasOwnProperty("fieldName")) + if (!$util.isString(message.fieldName)) + return "fieldName: string expected"; + if (message.stringFilter != null && message.hasOwnProperty("stringFilter")) { + properties.oneFilter = 1; + { + var error = $root.google.analytics.data.v1alpha.StringFilter.verify(message.stringFilter); if (error) - return "expressions." + error; + return "stringFilter." + error; + } + } + if (message.inListFilter != null && message.hasOwnProperty("inListFilter")) { + if (properties.oneFilter === 1) + return "oneFilter: multiple values"; + properties.oneFilter = 1; + { + var error = $root.google.analytics.data.v1alpha.InListFilter.verify(message.inListFilter); + if (error) + return "inListFilter." + error; + } + } + if (message.numericFilter != null && message.hasOwnProperty("numericFilter")) { + if (properties.oneFilter === 1) + return "oneFilter: multiple values"; + properties.oneFilter = 1; + { + var error = $root.google.analytics.data.v1alpha.NumericFilter.verify(message.numericFilter); + if (error) + return "numericFilter." + error; + } + } + if (message.betweenFilter != null && message.hasOwnProperty("betweenFilter")) { + if (properties.oneFilter === 1) + return "oneFilter: multiple values"; + properties.oneFilter = 1; + { + var error = $root.google.analytics.data.v1alpha.BetweenFilter.verify(message.betweenFilter); + if (error) + return "betweenFilter." + error; } } return null; }; /** - * Creates a SegmentParameterFilterExpressionList message from a plain object. Also converts values to their respective internal types. + * Creates a FunnelFieldFilter message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpressionList + * @memberof google.analytics.data.v1alpha.FunnelFieldFilter * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.SegmentParameterFilterExpressionList} SegmentParameterFilterExpressionList + * @returns {google.analytics.data.v1alpha.FunnelFieldFilter} FunnelFieldFilter */ - SegmentParameterFilterExpressionList.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.SegmentParameterFilterExpressionList) + FunnelFieldFilter.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.FunnelFieldFilter) return object; - var message = new $root.google.analytics.data.v1alpha.SegmentParameterFilterExpressionList(); - if (object.expressions) { - if (!Array.isArray(object.expressions)) - throw TypeError(".google.analytics.data.v1alpha.SegmentParameterFilterExpressionList.expressions: array expected"); - message.expressions = []; - for (var i = 0; i < object.expressions.length; ++i) { - if (typeof object.expressions[i] !== "object") - throw TypeError(".google.analytics.data.v1alpha.SegmentParameterFilterExpressionList.expressions: object expected"); - message.expressions[i] = $root.google.analytics.data.v1alpha.SegmentParameterFilterExpression.fromObject(object.expressions[i]); - } + var message = new $root.google.analytics.data.v1alpha.FunnelFieldFilter(); + if (object.fieldName != null) + message.fieldName = String(object.fieldName); + if (object.stringFilter != null) { + if (typeof object.stringFilter !== "object") + throw TypeError(".google.analytics.data.v1alpha.FunnelFieldFilter.stringFilter: object expected"); + message.stringFilter = $root.google.analytics.data.v1alpha.StringFilter.fromObject(object.stringFilter); + } + if (object.inListFilter != null) { + if (typeof object.inListFilter !== "object") + throw TypeError(".google.analytics.data.v1alpha.FunnelFieldFilter.inListFilter: object expected"); + message.inListFilter = $root.google.analytics.data.v1alpha.InListFilter.fromObject(object.inListFilter); + } + if (object.numericFilter != null) { + if (typeof object.numericFilter !== "object") + throw TypeError(".google.analytics.data.v1alpha.FunnelFieldFilter.numericFilter: object expected"); + message.numericFilter = $root.google.analytics.data.v1alpha.NumericFilter.fromObject(object.numericFilter); + } + if (object.betweenFilter != null) { + if (typeof object.betweenFilter !== "object") + throw TypeError(".google.analytics.data.v1alpha.FunnelFieldFilter.betweenFilter: object expected"); + message.betweenFilter = $root.google.analytics.data.v1alpha.BetweenFilter.fromObject(object.betweenFilter); } return message; }; /** - * Creates a plain object from a SegmentParameterFilterExpressionList message. Also converts values to other types if specified. + * Creates a plain object from a FunnelFieldFilter message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpressionList + * @memberof google.analytics.data.v1alpha.FunnelFieldFilter * @static - * @param {google.analytics.data.v1alpha.SegmentParameterFilterExpressionList} message SegmentParameterFilterExpressionList + * @param {google.analytics.data.v1alpha.FunnelFieldFilter} message FunnelFieldFilter * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SegmentParameterFilterExpressionList.toObject = function toObject(message, options) { + FunnelFieldFilter.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.arrays || options.defaults) - object.expressions = []; - if (message.expressions && message.expressions.length) { - object.expressions = []; - for (var j = 0; j < message.expressions.length; ++j) - object.expressions[j] = $root.google.analytics.data.v1alpha.SegmentParameterFilterExpression.toObject(message.expressions[j], options); + if (options.defaults) + object.fieldName = ""; + if (message.fieldName != null && message.hasOwnProperty("fieldName")) + object.fieldName = message.fieldName; + if (message.stringFilter != null && message.hasOwnProperty("stringFilter")) { + object.stringFilter = $root.google.analytics.data.v1alpha.StringFilter.toObject(message.stringFilter, options); + if (options.oneofs) + object.oneFilter = "stringFilter"; + } + if (message.inListFilter != null && message.hasOwnProperty("inListFilter")) { + object.inListFilter = $root.google.analytics.data.v1alpha.InListFilter.toObject(message.inListFilter, options); + if (options.oneofs) + object.oneFilter = "inListFilter"; + } + if (message.numericFilter != null && message.hasOwnProperty("numericFilter")) { + object.numericFilter = $root.google.analytics.data.v1alpha.NumericFilter.toObject(message.numericFilter, options); + if (options.oneofs) + object.oneFilter = "numericFilter"; + } + if (message.betweenFilter != null && message.hasOwnProperty("betweenFilter")) { + object.betweenFilter = $root.google.analytics.data.v1alpha.BetweenFilter.toObject(message.betweenFilter, options); + if (options.oneofs) + object.oneFilter = "betweenFilter"; } return object; }; /** - * Converts this SegmentParameterFilterExpressionList to JSON. + * Converts this FunnelFieldFilter to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpressionList + * @memberof google.analytics.data.v1alpha.FunnelFieldFilter * @instance * @returns {Object.} JSON object */ - SegmentParameterFilterExpressionList.prototype.toJSON = function toJSON() { + FunnelFieldFilter.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for SegmentParameterFilterExpressionList + * Gets the default type url for FunnelFieldFilter * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpressionList + * @memberof google.analytics.data.v1alpha.FunnelFieldFilter * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - SegmentParameterFilterExpressionList.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + FunnelFieldFilter.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.analytics.data.v1alpha.SegmentParameterFilterExpressionList"; + return typeUrlPrefix + "/google.analytics.data.v1alpha.FunnelFieldFilter"; }; - return SegmentParameterFilterExpressionList; + return FunnelFieldFilter; })(); - v1alpha.SegmentParameterFilter = (function() { + v1alpha.FunnelEventFilter = (function() { /** - * Properties of a SegmentParameterFilter. + * Properties of a FunnelEventFilter. * @memberof google.analytics.data.v1alpha - * @interface ISegmentParameterFilter - * @property {string|null} [eventParameterName] SegmentParameterFilter eventParameterName - * @property {string|null} [itemParameterName] SegmentParameterFilter itemParameterName - * @property {google.analytics.data.v1alpha.IStringFilter|null} [stringFilter] SegmentParameterFilter stringFilter - * @property {google.analytics.data.v1alpha.IInListFilter|null} [inListFilter] SegmentParameterFilter inListFilter - * @property {google.analytics.data.v1alpha.INumericFilter|null} [numericFilter] SegmentParameterFilter numericFilter - * @property {google.analytics.data.v1alpha.IBetweenFilter|null} [betweenFilter] SegmentParameterFilter betweenFilter - * @property {google.analytics.data.v1alpha.ISegmentParameterFilterScoping|null} [filterScoping] SegmentParameterFilter filterScoping + * @interface IFunnelEventFilter + * @property {string|null} [eventName] FunnelEventFilter eventName + * @property {google.analytics.data.v1alpha.IFunnelParameterFilterExpression|null} [funnelParameterFilterExpression] FunnelEventFilter funnelParameterFilterExpression */ /** - * Constructs a new SegmentParameterFilter. + * Constructs a new FunnelEventFilter. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a SegmentParameterFilter. - * @implements ISegmentParameterFilter + * @classdesc Represents a FunnelEventFilter. + * @implements IFunnelEventFilter * @constructor - * @param {google.analytics.data.v1alpha.ISegmentParameterFilter=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IFunnelEventFilter=} [properties] Properties to set */ - function SegmentParameterFilter(properties) { + function FunnelEventFilter(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -39394,186 +42725,106 @@ } /** - * SegmentParameterFilter eventParameterName. - * @member {string|null|undefined} eventParameterName - * @memberof google.analytics.data.v1alpha.SegmentParameterFilter - * @instance - */ - SegmentParameterFilter.prototype.eventParameterName = null; - - /** - * SegmentParameterFilter itemParameterName. - * @member {string|null|undefined} itemParameterName - * @memberof google.analytics.data.v1alpha.SegmentParameterFilter - * @instance - */ - SegmentParameterFilter.prototype.itemParameterName = null; - - /** - * SegmentParameterFilter stringFilter. - * @member {google.analytics.data.v1alpha.IStringFilter|null|undefined} stringFilter - * @memberof google.analytics.data.v1alpha.SegmentParameterFilter - * @instance - */ - SegmentParameterFilter.prototype.stringFilter = null; - - /** - * SegmentParameterFilter inListFilter. - * @member {google.analytics.data.v1alpha.IInListFilter|null|undefined} inListFilter - * @memberof google.analytics.data.v1alpha.SegmentParameterFilter - * @instance - */ - SegmentParameterFilter.prototype.inListFilter = null; - - /** - * SegmentParameterFilter numericFilter. - * @member {google.analytics.data.v1alpha.INumericFilter|null|undefined} numericFilter - * @memberof google.analytics.data.v1alpha.SegmentParameterFilter - * @instance - */ - SegmentParameterFilter.prototype.numericFilter = null; - - /** - * SegmentParameterFilter betweenFilter. - * @member {google.analytics.data.v1alpha.IBetweenFilter|null|undefined} betweenFilter - * @memberof google.analytics.data.v1alpha.SegmentParameterFilter + * FunnelEventFilter eventName. + * @member {string|null|undefined} eventName + * @memberof google.analytics.data.v1alpha.FunnelEventFilter * @instance */ - SegmentParameterFilter.prototype.betweenFilter = null; + FunnelEventFilter.prototype.eventName = null; /** - * SegmentParameterFilter filterScoping. - * @member {google.analytics.data.v1alpha.ISegmentParameterFilterScoping|null|undefined} filterScoping - * @memberof google.analytics.data.v1alpha.SegmentParameterFilter + * FunnelEventFilter funnelParameterFilterExpression. + * @member {google.analytics.data.v1alpha.IFunnelParameterFilterExpression|null|undefined} funnelParameterFilterExpression + * @memberof google.analytics.data.v1alpha.FunnelEventFilter * @instance */ - SegmentParameterFilter.prototype.filterScoping = null; + FunnelEventFilter.prototype.funnelParameterFilterExpression = null; // OneOf field names bound to virtual getters and setters var $oneOfFields; - /** - * SegmentParameterFilter oneParameter. - * @member {"eventParameterName"|"itemParameterName"|undefined} oneParameter - * @memberof google.analytics.data.v1alpha.SegmentParameterFilter - * @instance - */ - Object.defineProperty(SegmentParameterFilter.prototype, "oneParameter", { - get: $util.oneOfGetter($oneOfFields = ["eventParameterName", "itemParameterName"]), + // Virtual OneOf for proto3 optional field + Object.defineProperty(FunnelEventFilter.prototype, "_eventName", { + get: $util.oneOfGetter($oneOfFields = ["eventName"]), set: $util.oneOfSetter($oneOfFields) }); - /** - * SegmentParameterFilter oneFilter. - * @member {"stringFilter"|"inListFilter"|"numericFilter"|"betweenFilter"|undefined} oneFilter - * @memberof google.analytics.data.v1alpha.SegmentParameterFilter - * @instance - */ - Object.defineProperty(SegmentParameterFilter.prototype, "oneFilter", { - get: $util.oneOfGetter($oneOfFields = ["stringFilter", "inListFilter", "numericFilter", "betweenFilter"]), + // Virtual OneOf for proto3 optional field + Object.defineProperty(FunnelEventFilter.prototype, "_funnelParameterFilterExpression", { + get: $util.oneOfGetter($oneOfFields = ["funnelParameterFilterExpression"]), set: $util.oneOfSetter($oneOfFields) }); /** - * Creates a new SegmentParameterFilter instance using the specified properties. + * Creates a new FunnelEventFilter instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.SegmentParameterFilter + * @memberof google.analytics.data.v1alpha.FunnelEventFilter * @static - * @param {google.analytics.data.v1alpha.ISegmentParameterFilter=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.SegmentParameterFilter} SegmentParameterFilter instance + * @param {google.analytics.data.v1alpha.IFunnelEventFilter=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.FunnelEventFilter} FunnelEventFilter instance */ - SegmentParameterFilter.create = function create(properties) { - return new SegmentParameterFilter(properties); + FunnelEventFilter.create = function create(properties) { + return new FunnelEventFilter(properties); }; /** - * Encodes the specified SegmentParameterFilter message. Does not implicitly {@link google.analytics.data.v1alpha.SegmentParameterFilter.verify|verify} messages. + * Encodes the specified FunnelEventFilter message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelEventFilter.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.SegmentParameterFilter + * @memberof google.analytics.data.v1alpha.FunnelEventFilter * @static - * @param {google.analytics.data.v1alpha.ISegmentParameterFilter} message SegmentParameterFilter message or plain object to encode + * @param {google.analytics.data.v1alpha.IFunnelEventFilter} message FunnelEventFilter message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SegmentParameterFilter.encode = function encode(message, writer) { + FunnelEventFilter.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.eventParameterName != null && Object.hasOwnProperty.call(message, "eventParameterName")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.eventParameterName); - if (message.itemParameterName != null && Object.hasOwnProperty.call(message, "itemParameterName")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.itemParameterName); - if (message.stringFilter != null && Object.hasOwnProperty.call(message, "stringFilter")) - $root.google.analytics.data.v1alpha.StringFilter.encode(message.stringFilter, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); - if (message.inListFilter != null && Object.hasOwnProperty.call(message, "inListFilter")) - $root.google.analytics.data.v1alpha.InListFilter.encode(message.inListFilter, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); - if (message.numericFilter != null && Object.hasOwnProperty.call(message, "numericFilter")) - $root.google.analytics.data.v1alpha.NumericFilter.encode(message.numericFilter, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); - if (message.betweenFilter != null && Object.hasOwnProperty.call(message, "betweenFilter")) - $root.google.analytics.data.v1alpha.BetweenFilter.encode(message.betweenFilter, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); - if (message.filterScoping != null && Object.hasOwnProperty.call(message, "filterScoping")) - $root.google.analytics.data.v1alpha.SegmentParameterFilterScoping.encode(message.filterScoping, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); + if (message.eventName != null && Object.hasOwnProperty.call(message, "eventName")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.eventName); + if (message.funnelParameterFilterExpression != null && Object.hasOwnProperty.call(message, "funnelParameterFilterExpression")) + $root.google.analytics.data.v1alpha.FunnelParameterFilterExpression.encode(message.funnelParameterFilterExpression, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); return writer; }; /** - * Encodes the specified SegmentParameterFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SegmentParameterFilter.verify|verify} messages. + * Encodes the specified FunnelEventFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelEventFilter.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.SegmentParameterFilter + * @memberof google.analytics.data.v1alpha.FunnelEventFilter * @static - * @param {google.analytics.data.v1alpha.ISegmentParameterFilter} message SegmentParameterFilter message or plain object to encode + * @param {google.analytics.data.v1alpha.IFunnelEventFilter} message FunnelEventFilter message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SegmentParameterFilter.encodeDelimited = function encodeDelimited(message, writer) { + FunnelEventFilter.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a SegmentParameterFilter message from the specified reader or buffer. + * Decodes a FunnelEventFilter message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.SegmentParameterFilter + * @memberof google.analytics.data.v1alpha.FunnelEventFilter * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.SegmentParameterFilter} SegmentParameterFilter + * @returns {google.analytics.data.v1alpha.FunnelEventFilter} FunnelEventFilter * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SegmentParameterFilter.decode = function decode(reader, length, error) { + FunnelEventFilter.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.SegmentParameterFilter(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.FunnelEventFilter(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { case 1: { - message.eventParameterName = reader.string(); + message.eventName = reader.string(); break; } case 2: { - message.itemParameterName = reader.string(); - break; - } - case 4: { - message.stringFilter = $root.google.analytics.data.v1alpha.StringFilter.decode(reader, reader.uint32()); - break; - } - case 5: { - message.inListFilter = $root.google.analytics.data.v1alpha.InListFilter.decode(reader, reader.uint32()); - break; - } - case 6: { - message.numericFilter = $root.google.analytics.data.v1alpha.NumericFilter.decode(reader, reader.uint32()); - break; - } - case 7: { - message.betweenFilter = $root.google.analytics.data.v1alpha.BetweenFilter.decode(reader, reader.uint32()); - break; - } - case 8: { - message.filterScoping = $root.google.analytics.data.v1alpha.SegmentParameterFilterScoping.decode(reader, reader.uint32()); + message.funnelParameterFilterExpression = $root.google.analytics.data.v1alpha.FunnelParameterFilterExpression.decode(reader, reader.uint32()); break; } default: @@ -39585,232 +42836,147 @@ }; /** - * Decodes a SegmentParameterFilter message from the specified reader or buffer, length delimited. + * Decodes a FunnelEventFilter message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.SegmentParameterFilter + * @memberof google.analytics.data.v1alpha.FunnelEventFilter * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.SegmentParameterFilter} SegmentParameterFilter + * @returns {google.analytics.data.v1alpha.FunnelEventFilter} FunnelEventFilter * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SegmentParameterFilter.decodeDelimited = function decodeDelimited(reader) { + FunnelEventFilter.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a SegmentParameterFilter message. + * Verifies a FunnelEventFilter message. * @function verify - * @memberof google.analytics.data.v1alpha.SegmentParameterFilter + * @memberof google.analytics.data.v1alpha.FunnelEventFilter * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SegmentParameterFilter.verify = function verify(message) { + FunnelEventFilter.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; var properties = {}; - if (message.eventParameterName != null && message.hasOwnProperty("eventParameterName")) { - properties.oneParameter = 1; - if (!$util.isString(message.eventParameterName)) - return "eventParameterName: string expected"; - } - if (message.itemParameterName != null && message.hasOwnProperty("itemParameterName")) { - if (properties.oneParameter === 1) - return "oneParameter: multiple values"; - properties.oneParameter = 1; - if (!$util.isString(message.itemParameterName)) - return "itemParameterName: string expected"; - } - if (message.stringFilter != null && message.hasOwnProperty("stringFilter")) { - properties.oneFilter = 1; - { - var error = $root.google.analytics.data.v1alpha.StringFilter.verify(message.stringFilter); - if (error) - return "stringFilter." + error; - } - } - if (message.inListFilter != null && message.hasOwnProperty("inListFilter")) { - if (properties.oneFilter === 1) - return "oneFilter: multiple values"; - properties.oneFilter = 1; - { - var error = $root.google.analytics.data.v1alpha.InListFilter.verify(message.inListFilter); - if (error) - return "inListFilter." + error; - } - } - if (message.numericFilter != null && message.hasOwnProperty("numericFilter")) { - if (properties.oneFilter === 1) - return "oneFilter: multiple values"; - properties.oneFilter = 1; - { - var error = $root.google.analytics.data.v1alpha.NumericFilter.verify(message.numericFilter); - if (error) - return "numericFilter." + error; - } + if (message.eventName != null && message.hasOwnProperty("eventName")) { + properties._eventName = 1; + if (!$util.isString(message.eventName)) + return "eventName: string expected"; } - if (message.betweenFilter != null && message.hasOwnProperty("betweenFilter")) { - if (properties.oneFilter === 1) - return "oneFilter: multiple values"; - properties.oneFilter = 1; + if (message.funnelParameterFilterExpression != null && message.hasOwnProperty("funnelParameterFilterExpression")) { + properties._funnelParameterFilterExpression = 1; { - var error = $root.google.analytics.data.v1alpha.BetweenFilter.verify(message.betweenFilter); + var error = $root.google.analytics.data.v1alpha.FunnelParameterFilterExpression.verify(message.funnelParameterFilterExpression); if (error) - return "betweenFilter." + error; + return "funnelParameterFilterExpression." + error; } } - if (message.filterScoping != null && message.hasOwnProperty("filterScoping")) { - var error = $root.google.analytics.data.v1alpha.SegmentParameterFilterScoping.verify(message.filterScoping); - if (error) - return "filterScoping." + error; - } return null; }; /** - * Creates a SegmentParameterFilter message from a plain object. Also converts values to their respective internal types. + * Creates a FunnelEventFilter message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.SegmentParameterFilter + * @memberof google.analytics.data.v1alpha.FunnelEventFilter * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.SegmentParameterFilter} SegmentParameterFilter + * @returns {google.analytics.data.v1alpha.FunnelEventFilter} FunnelEventFilter */ - SegmentParameterFilter.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.SegmentParameterFilter) + FunnelEventFilter.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.FunnelEventFilter) return object; - var message = new $root.google.analytics.data.v1alpha.SegmentParameterFilter(); - if (object.eventParameterName != null) - message.eventParameterName = String(object.eventParameterName); - if (object.itemParameterName != null) - message.itemParameterName = String(object.itemParameterName); - if (object.stringFilter != null) { - if (typeof object.stringFilter !== "object") - throw TypeError(".google.analytics.data.v1alpha.SegmentParameterFilter.stringFilter: object expected"); - message.stringFilter = $root.google.analytics.data.v1alpha.StringFilter.fromObject(object.stringFilter); - } - if (object.inListFilter != null) { - if (typeof object.inListFilter !== "object") - throw TypeError(".google.analytics.data.v1alpha.SegmentParameterFilter.inListFilter: object expected"); - message.inListFilter = $root.google.analytics.data.v1alpha.InListFilter.fromObject(object.inListFilter); - } - if (object.numericFilter != null) { - if (typeof object.numericFilter !== "object") - throw TypeError(".google.analytics.data.v1alpha.SegmentParameterFilter.numericFilter: object expected"); - message.numericFilter = $root.google.analytics.data.v1alpha.NumericFilter.fromObject(object.numericFilter); - } - if (object.betweenFilter != null) { - if (typeof object.betweenFilter !== "object") - throw TypeError(".google.analytics.data.v1alpha.SegmentParameterFilter.betweenFilter: object expected"); - message.betweenFilter = $root.google.analytics.data.v1alpha.BetweenFilter.fromObject(object.betweenFilter); - } - if (object.filterScoping != null) { - if (typeof object.filterScoping !== "object") - throw TypeError(".google.analytics.data.v1alpha.SegmentParameterFilter.filterScoping: object expected"); - message.filterScoping = $root.google.analytics.data.v1alpha.SegmentParameterFilterScoping.fromObject(object.filterScoping); + var message = new $root.google.analytics.data.v1alpha.FunnelEventFilter(); + if (object.eventName != null) + message.eventName = String(object.eventName); + if (object.funnelParameterFilterExpression != null) { + if (typeof object.funnelParameterFilterExpression !== "object") + throw TypeError(".google.analytics.data.v1alpha.FunnelEventFilter.funnelParameterFilterExpression: object expected"); + message.funnelParameterFilterExpression = $root.google.analytics.data.v1alpha.FunnelParameterFilterExpression.fromObject(object.funnelParameterFilterExpression); } return message; }; /** - * Creates a plain object from a SegmentParameterFilter message. Also converts values to other types if specified. + * Creates a plain object from a FunnelEventFilter message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.SegmentParameterFilter + * @memberof google.analytics.data.v1alpha.FunnelEventFilter * @static - * @param {google.analytics.data.v1alpha.SegmentParameterFilter} message SegmentParameterFilter + * @param {google.analytics.data.v1alpha.FunnelEventFilter} message FunnelEventFilter * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - SegmentParameterFilter.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) - object.filterScoping = null; - if (message.eventParameterName != null && message.hasOwnProperty("eventParameterName")) { - object.eventParameterName = message.eventParameterName; - if (options.oneofs) - object.oneParameter = "eventParameterName"; - } - if (message.itemParameterName != null && message.hasOwnProperty("itemParameterName")) { - object.itemParameterName = message.itemParameterName; - if (options.oneofs) - object.oneParameter = "itemParameterName"; - } - if (message.stringFilter != null && message.hasOwnProperty("stringFilter")) { - object.stringFilter = $root.google.analytics.data.v1alpha.StringFilter.toObject(message.stringFilter, options); - if (options.oneofs) - object.oneFilter = "stringFilter"; - } - if (message.inListFilter != null && message.hasOwnProperty("inListFilter")) { - object.inListFilter = $root.google.analytics.data.v1alpha.InListFilter.toObject(message.inListFilter, options); - if (options.oneofs) - object.oneFilter = "inListFilter"; - } - if (message.numericFilter != null && message.hasOwnProperty("numericFilter")) { - object.numericFilter = $root.google.analytics.data.v1alpha.NumericFilter.toObject(message.numericFilter, options); + * @returns {Object.} Plain object + */ + FunnelEventFilter.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.eventName != null && message.hasOwnProperty("eventName")) { + object.eventName = message.eventName; if (options.oneofs) - object.oneFilter = "numericFilter"; + object._eventName = "eventName"; } - if (message.betweenFilter != null && message.hasOwnProperty("betweenFilter")) { - object.betweenFilter = $root.google.analytics.data.v1alpha.BetweenFilter.toObject(message.betweenFilter, options); + if (message.funnelParameterFilterExpression != null && message.hasOwnProperty("funnelParameterFilterExpression")) { + object.funnelParameterFilterExpression = $root.google.analytics.data.v1alpha.FunnelParameterFilterExpression.toObject(message.funnelParameterFilterExpression, options); if (options.oneofs) - object.oneFilter = "betweenFilter"; + object._funnelParameterFilterExpression = "funnelParameterFilterExpression"; } - if (message.filterScoping != null && message.hasOwnProperty("filterScoping")) - object.filterScoping = $root.google.analytics.data.v1alpha.SegmentParameterFilterScoping.toObject(message.filterScoping, options); return object; }; /** - * Converts this SegmentParameterFilter to JSON. + * Converts this FunnelEventFilter to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.SegmentParameterFilter + * @memberof google.analytics.data.v1alpha.FunnelEventFilter * @instance * @returns {Object.} JSON object */ - SegmentParameterFilter.prototype.toJSON = function toJSON() { + FunnelEventFilter.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for SegmentParameterFilter + * Gets the default type url for FunnelEventFilter * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.SegmentParameterFilter + * @memberof google.analytics.data.v1alpha.FunnelEventFilter * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - SegmentParameterFilter.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + FunnelEventFilter.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.analytics.data.v1alpha.SegmentParameterFilter"; + return typeUrlPrefix + "/google.analytics.data.v1alpha.FunnelEventFilter"; }; - return SegmentParameterFilter; + return FunnelEventFilter; })(); - v1alpha.SegmentParameterFilterScoping = (function() { + v1alpha.FunnelParameterFilterExpression = (function() { /** - * Properties of a SegmentParameterFilterScoping. + * Properties of a FunnelParameterFilterExpression. * @memberof google.analytics.data.v1alpha - * @interface ISegmentParameterFilterScoping - * @property {number|Long|null} [inAnyNDayPeriod] SegmentParameterFilterScoping inAnyNDayPeriod + * @interface IFunnelParameterFilterExpression + * @property {google.analytics.data.v1alpha.IFunnelParameterFilterExpressionList|null} [andGroup] FunnelParameterFilterExpression andGroup + * @property {google.analytics.data.v1alpha.IFunnelParameterFilterExpressionList|null} [orGroup] FunnelParameterFilterExpression orGroup + * @property {google.analytics.data.v1alpha.IFunnelParameterFilterExpression|null} [notExpression] FunnelParameterFilterExpression notExpression + * @property {google.analytics.data.v1alpha.IFunnelParameterFilter|null} [funnelParameterFilter] FunnelParameterFilterExpression funnelParameterFilter */ /** - * Constructs a new SegmentParameterFilterScoping. + * Constructs a new FunnelParameterFilterExpression. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a SegmentParameterFilterScoping. - * @implements ISegmentParameterFilterScoping + * @classdesc Represents a FunnelParameterFilterExpression. + * @implements IFunnelParameterFilterExpression * @constructor - * @param {google.analytics.data.v1alpha.ISegmentParameterFilterScoping=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IFunnelParameterFilterExpression=} [properties] Properties to set */ - function SegmentParameterFilterScoping(properties) { + function FunnelParameterFilterExpression(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -39818,86 +42984,133 @@ } /** - * SegmentParameterFilterScoping inAnyNDayPeriod. - * @member {number|Long|null|undefined} inAnyNDayPeriod - * @memberof google.analytics.data.v1alpha.SegmentParameterFilterScoping + * FunnelParameterFilterExpression andGroup. + * @member {google.analytics.data.v1alpha.IFunnelParameterFilterExpressionList|null|undefined} andGroup + * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpression * @instance */ - SegmentParameterFilterScoping.prototype.inAnyNDayPeriod = null; + FunnelParameterFilterExpression.prototype.andGroup = null; + + /** + * FunnelParameterFilterExpression orGroup. + * @member {google.analytics.data.v1alpha.IFunnelParameterFilterExpressionList|null|undefined} orGroup + * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpression + * @instance + */ + FunnelParameterFilterExpression.prototype.orGroup = null; + + /** + * FunnelParameterFilterExpression notExpression. + * @member {google.analytics.data.v1alpha.IFunnelParameterFilterExpression|null|undefined} notExpression + * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpression + * @instance + */ + FunnelParameterFilterExpression.prototype.notExpression = null; + + /** + * FunnelParameterFilterExpression funnelParameterFilter. + * @member {google.analytics.data.v1alpha.IFunnelParameterFilter|null|undefined} funnelParameterFilter + * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpression + * @instance + */ + FunnelParameterFilterExpression.prototype.funnelParameterFilter = null; // OneOf field names bound to virtual getters and setters var $oneOfFields; - // Virtual OneOf for proto3 optional field - Object.defineProperty(SegmentParameterFilterScoping.prototype, "_inAnyNDayPeriod", { - get: $util.oneOfGetter($oneOfFields = ["inAnyNDayPeriod"]), + /** + * FunnelParameterFilterExpression expr. + * @member {"andGroup"|"orGroup"|"notExpression"|"funnelParameterFilter"|undefined} expr + * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpression + * @instance + */ + Object.defineProperty(FunnelParameterFilterExpression.prototype, "expr", { + get: $util.oneOfGetter($oneOfFields = ["andGroup", "orGroup", "notExpression", "funnelParameterFilter"]), set: $util.oneOfSetter($oneOfFields) }); /** - * Creates a new SegmentParameterFilterScoping instance using the specified properties. + * Creates a new FunnelParameterFilterExpression instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.SegmentParameterFilterScoping + * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpression * @static - * @param {google.analytics.data.v1alpha.ISegmentParameterFilterScoping=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.SegmentParameterFilterScoping} SegmentParameterFilterScoping instance + * @param {google.analytics.data.v1alpha.IFunnelParameterFilterExpression=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.FunnelParameterFilterExpression} FunnelParameterFilterExpression instance */ - SegmentParameterFilterScoping.create = function create(properties) { - return new SegmentParameterFilterScoping(properties); + FunnelParameterFilterExpression.create = function create(properties) { + return new FunnelParameterFilterExpression(properties); }; /** - * Encodes the specified SegmentParameterFilterScoping message. Does not implicitly {@link google.analytics.data.v1alpha.SegmentParameterFilterScoping.verify|verify} messages. + * Encodes the specified FunnelParameterFilterExpression message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelParameterFilterExpression.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.SegmentParameterFilterScoping + * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpression * @static - * @param {google.analytics.data.v1alpha.ISegmentParameterFilterScoping} message SegmentParameterFilterScoping message or plain object to encode + * @param {google.analytics.data.v1alpha.IFunnelParameterFilterExpression} message FunnelParameterFilterExpression message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SegmentParameterFilterScoping.encode = function encode(message, writer) { + FunnelParameterFilterExpression.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.inAnyNDayPeriod != null && Object.hasOwnProperty.call(message, "inAnyNDayPeriod")) - writer.uint32(/* id 1, wireType 0 =*/8).int64(message.inAnyNDayPeriod); + if (message.andGroup != null && Object.hasOwnProperty.call(message, "andGroup")) + $root.google.analytics.data.v1alpha.FunnelParameterFilterExpressionList.encode(message.andGroup, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.orGroup != null && Object.hasOwnProperty.call(message, "orGroup")) + $root.google.analytics.data.v1alpha.FunnelParameterFilterExpressionList.encode(message.orGroup, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.notExpression != null && Object.hasOwnProperty.call(message, "notExpression")) + $root.google.analytics.data.v1alpha.FunnelParameterFilterExpression.encode(message.notExpression, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.funnelParameterFilter != null && Object.hasOwnProperty.call(message, "funnelParameterFilter")) + $root.google.analytics.data.v1alpha.FunnelParameterFilter.encode(message.funnelParameterFilter, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); return writer; }; /** - * Encodes the specified SegmentParameterFilterScoping message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SegmentParameterFilterScoping.verify|verify} messages. + * Encodes the specified FunnelParameterFilterExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelParameterFilterExpression.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.SegmentParameterFilterScoping + * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpression * @static - * @param {google.analytics.data.v1alpha.ISegmentParameterFilterScoping} message SegmentParameterFilterScoping message or plain object to encode + * @param {google.analytics.data.v1alpha.IFunnelParameterFilterExpression} message FunnelParameterFilterExpression message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SegmentParameterFilterScoping.encodeDelimited = function encodeDelimited(message, writer) { + FunnelParameterFilterExpression.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a SegmentParameterFilterScoping message from the specified reader or buffer. + * Decodes a FunnelParameterFilterExpression message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.SegmentParameterFilterScoping + * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpression * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.SegmentParameterFilterScoping} SegmentParameterFilterScoping + * @returns {google.analytics.data.v1alpha.FunnelParameterFilterExpression} FunnelParameterFilterExpression * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SegmentParameterFilterScoping.decode = function decode(reader, length, error) { + FunnelParameterFilterExpression.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.SegmentParameterFilterScoping(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.FunnelParameterFilterExpression(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { case 1: { - message.inAnyNDayPeriod = reader.int64(); + message.andGroup = $root.google.analytics.data.v1alpha.FunnelParameterFilterExpressionList.decode(reader, reader.uint32()); + break; + } + case 2: { + message.orGroup = $root.google.analytics.data.v1alpha.FunnelParameterFilterExpressionList.decode(reader, reader.uint32()); + break; + } + case 3: { + message.notExpression = $root.google.analytics.data.v1alpha.FunnelParameterFilterExpression.decode(reader, reader.uint32()); + break; + } + case 4: { + message.funnelParameterFilter = $root.google.analytics.data.v1alpha.FunnelParameterFilter.decode(reader, reader.uint32()); break; } default: @@ -39909,140 +43122,193 @@ }; /** - * Decodes a SegmentParameterFilterScoping message from the specified reader or buffer, length delimited. + * Decodes a FunnelParameterFilterExpression message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.SegmentParameterFilterScoping + * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpression * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.SegmentParameterFilterScoping} SegmentParameterFilterScoping + * @returns {google.analytics.data.v1alpha.FunnelParameterFilterExpression} FunnelParameterFilterExpression * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SegmentParameterFilterScoping.decodeDelimited = function decodeDelimited(reader) { + FunnelParameterFilterExpression.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a SegmentParameterFilterScoping message. + * Verifies a FunnelParameterFilterExpression message. * @function verify - * @memberof google.analytics.data.v1alpha.SegmentParameterFilterScoping + * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpression * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SegmentParameterFilterScoping.verify = function verify(message) { + FunnelParameterFilterExpression.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; var properties = {}; - if (message.inAnyNDayPeriod != null && message.hasOwnProperty("inAnyNDayPeriod")) { - properties._inAnyNDayPeriod = 1; - if (!$util.isInteger(message.inAnyNDayPeriod) && !(message.inAnyNDayPeriod && $util.isInteger(message.inAnyNDayPeriod.low) && $util.isInteger(message.inAnyNDayPeriod.high))) - return "inAnyNDayPeriod: integer|Long expected"; + if (message.andGroup != null && message.hasOwnProperty("andGroup")) { + properties.expr = 1; + { + var error = $root.google.analytics.data.v1alpha.FunnelParameterFilterExpressionList.verify(message.andGroup); + if (error) + return "andGroup." + error; + } + } + if (message.orGroup != null && message.hasOwnProperty("orGroup")) { + if (properties.expr === 1) + return "expr: multiple values"; + properties.expr = 1; + { + var error = $root.google.analytics.data.v1alpha.FunnelParameterFilterExpressionList.verify(message.orGroup); + if (error) + return "orGroup." + error; + } + } + if (message.notExpression != null && message.hasOwnProperty("notExpression")) { + if (properties.expr === 1) + return "expr: multiple values"; + properties.expr = 1; + { + var error = $root.google.analytics.data.v1alpha.FunnelParameterFilterExpression.verify(message.notExpression); + if (error) + return "notExpression." + error; + } + } + if (message.funnelParameterFilter != null && message.hasOwnProperty("funnelParameterFilter")) { + if (properties.expr === 1) + return "expr: multiple values"; + properties.expr = 1; + { + var error = $root.google.analytics.data.v1alpha.FunnelParameterFilter.verify(message.funnelParameterFilter); + if (error) + return "funnelParameterFilter." + error; + } } return null; }; /** - * Creates a SegmentParameterFilterScoping message from a plain object. Also converts values to their respective internal types. + * Creates a FunnelParameterFilterExpression message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.SegmentParameterFilterScoping + * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpression * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.SegmentParameterFilterScoping} SegmentParameterFilterScoping + * @returns {google.analytics.data.v1alpha.FunnelParameterFilterExpression} FunnelParameterFilterExpression */ - SegmentParameterFilterScoping.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.SegmentParameterFilterScoping) + FunnelParameterFilterExpression.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.FunnelParameterFilterExpression) return object; - var message = new $root.google.analytics.data.v1alpha.SegmentParameterFilterScoping(); - if (object.inAnyNDayPeriod != null) - if ($util.Long) - (message.inAnyNDayPeriod = $util.Long.fromValue(object.inAnyNDayPeriod)).unsigned = false; - else if (typeof object.inAnyNDayPeriod === "string") - message.inAnyNDayPeriod = parseInt(object.inAnyNDayPeriod, 10); - else if (typeof object.inAnyNDayPeriod === "number") - message.inAnyNDayPeriod = object.inAnyNDayPeriod; - else if (typeof object.inAnyNDayPeriod === "object") - message.inAnyNDayPeriod = new $util.LongBits(object.inAnyNDayPeriod.low >>> 0, object.inAnyNDayPeriod.high >>> 0).toNumber(); + var message = new $root.google.analytics.data.v1alpha.FunnelParameterFilterExpression(); + if (object.andGroup != null) { + if (typeof object.andGroup !== "object") + throw TypeError(".google.analytics.data.v1alpha.FunnelParameterFilterExpression.andGroup: object expected"); + message.andGroup = $root.google.analytics.data.v1alpha.FunnelParameterFilterExpressionList.fromObject(object.andGroup); + } + if (object.orGroup != null) { + if (typeof object.orGroup !== "object") + throw TypeError(".google.analytics.data.v1alpha.FunnelParameterFilterExpression.orGroup: object expected"); + message.orGroup = $root.google.analytics.data.v1alpha.FunnelParameterFilterExpressionList.fromObject(object.orGroup); + } + if (object.notExpression != null) { + if (typeof object.notExpression !== "object") + throw TypeError(".google.analytics.data.v1alpha.FunnelParameterFilterExpression.notExpression: object expected"); + message.notExpression = $root.google.analytics.data.v1alpha.FunnelParameterFilterExpression.fromObject(object.notExpression); + } + if (object.funnelParameterFilter != null) { + if (typeof object.funnelParameterFilter !== "object") + throw TypeError(".google.analytics.data.v1alpha.FunnelParameterFilterExpression.funnelParameterFilter: object expected"); + message.funnelParameterFilter = $root.google.analytics.data.v1alpha.FunnelParameterFilter.fromObject(object.funnelParameterFilter); + } return message; }; /** - * Creates a plain object from a SegmentParameterFilterScoping message. Also converts values to other types if specified. + * Creates a plain object from a FunnelParameterFilterExpression message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.SegmentParameterFilterScoping + * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpression * @static - * @param {google.analytics.data.v1alpha.SegmentParameterFilterScoping} message SegmentParameterFilterScoping + * @param {google.analytics.data.v1alpha.FunnelParameterFilterExpression} message FunnelParameterFilterExpression * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SegmentParameterFilterScoping.toObject = function toObject(message, options) { + FunnelParameterFilterExpression.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (message.inAnyNDayPeriod != null && message.hasOwnProperty("inAnyNDayPeriod")) { - if (typeof message.inAnyNDayPeriod === "number") - object.inAnyNDayPeriod = options.longs === String ? String(message.inAnyNDayPeriod) : message.inAnyNDayPeriod; - else - object.inAnyNDayPeriod = options.longs === String ? $util.Long.prototype.toString.call(message.inAnyNDayPeriod) : options.longs === Number ? new $util.LongBits(message.inAnyNDayPeriod.low >>> 0, message.inAnyNDayPeriod.high >>> 0).toNumber() : message.inAnyNDayPeriod; + if (message.andGroup != null && message.hasOwnProperty("andGroup")) { + object.andGroup = $root.google.analytics.data.v1alpha.FunnelParameterFilterExpressionList.toObject(message.andGroup, options); if (options.oneofs) - object._inAnyNDayPeriod = "inAnyNDayPeriod"; + object.expr = "andGroup"; + } + if (message.orGroup != null && message.hasOwnProperty("orGroup")) { + object.orGroup = $root.google.analytics.data.v1alpha.FunnelParameterFilterExpressionList.toObject(message.orGroup, options); + if (options.oneofs) + object.expr = "orGroup"; + } + if (message.notExpression != null && message.hasOwnProperty("notExpression")) { + object.notExpression = $root.google.analytics.data.v1alpha.FunnelParameterFilterExpression.toObject(message.notExpression, options); + if (options.oneofs) + object.expr = "notExpression"; + } + if (message.funnelParameterFilter != null && message.hasOwnProperty("funnelParameterFilter")) { + object.funnelParameterFilter = $root.google.analytics.data.v1alpha.FunnelParameterFilter.toObject(message.funnelParameterFilter, options); + if (options.oneofs) + object.expr = "funnelParameterFilter"; } return object; }; /** - * Converts this SegmentParameterFilterScoping to JSON. + * Converts this FunnelParameterFilterExpression to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.SegmentParameterFilterScoping + * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpression * @instance * @returns {Object.} JSON object */ - SegmentParameterFilterScoping.prototype.toJSON = function toJSON() { + FunnelParameterFilterExpression.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for SegmentParameterFilterScoping + * Gets the default type url for FunnelParameterFilterExpression * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.SegmentParameterFilterScoping + * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpression * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - SegmentParameterFilterScoping.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + FunnelParameterFilterExpression.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.analytics.data.v1alpha.SegmentParameterFilterScoping"; + return typeUrlPrefix + "/google.analytics.data.v1alpha.FunnelParameterFilterExpression"; }; - return SegmentParameterFilterScoping; + return FunnelParameterFilterExpression; })(); - v1alpha.FunnelFilterExpression = (function() { + v1alpha.FunnelParameterFilterExpressionList = (function() { /** - * Properties of a FunnelFilterExpression. + * Properties of a FunnelParameterFilterExpressionList. * @memberof google.analytics.data.v1alpha - * @interface IFunnelFilterExpression - * @property {google.analytics.data.v1alpha.IFunnelFilterExpressionList|null} [andGroup] FunnelFilterExpression andGroup - * @property {google.analytics.data.v1alpha.IFunnelFilterExpressionList|null} [orGroup] FunnelFilterExpression orGroup - * @property {google.analytics.data.v1alpha.IFunnelFilterExpression|null} [notExpression] FunnelFilterExpression notExpression - * @property {google.analytics.data.v1alpha.IFunnelFieldFilter|null} [funnelFieldFilter] FunnelFilterExpression funnelFieldFilter - * @property {google.analytics.data.v1alpha.IFunnelEventFilter|null} [funnelEventFilter] FunnelFilterExpression funnelEventFilter + * @interface IFunnelParameterFilterExpressionList + * @property {Array.|null} [expressions] FunnelParameterFilterExpressionList expressions */ /** - * Constructs a new FunnelFilterExpression. + * Constructs a new FunnelParameterFilterExpressionList. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a FunnelFilterExpression. - * @implements IFunnelFilterExpression + * @classdesc Represents a FunnelParameterFilterExpressionList. + * @implements IFunnelParameterFilterExpressionList * @constructor - * @param {google.analytics.data.v1alpha.IFunnelFilterExpression=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IFunnelParameterFilterExpressionList=} [properties] Properties to set */ - function FunnelFilterExpression(properties) { + function FunnelParameterFilterExpressionList(properties) { + this.expressions = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -40050,147 +43316,80 @@ } /** - * FunnelFilterExpression andGroup. - * @member {google.analytics.data.v1alpha.IFunnelFilterExpressionList|null|undefined} andGroup - * @memberof google.analytics.data.v1alpha.FunnelFilterExpression - * @instance - */ - FunnelFilterExpression.prototype.andGroup = null; - - /** - * FunnelFilterExpression orGroup. - * @member {google.analytics.data.v1alpha.IFunnelFilterExpressionList|null|undefined} orGroup - * @memberof google.analytics.data.v1alpha.FunnelFilterExpression - * @instance - */ - FunnelFilterExpression.prototype.orGroup = null; - - /** - * FunnelFilterExpression notExpression. - * @member {google.analytics.data.v1alpha.IFunnelFilterExpression|null|undefined} notExpression - * @memberof google.analytics.data.v1alpha.FunnelFilterExpression - * @instance - */ - FunnelFilterExpression.prototype.notExpression = null; - - /** - * FunnelFilterExpression funnelFieldFilter. - * @member {google.analytics.data.v1alpha.IFunnelFieldFilter|null|undefined} funnelFieldFilter - * @memberof google.analytics.data.v1alpha.FunnelFilterExpression - * @instance - */ - FunnelFilterExpression.prototype.funnelFieldFilter = null; - - /** - * FunnelFilterExpression funnelEventFilter. - * @member {google.analytics.data.v1alpha.IFunnelEventFilter|null|undefined} funnelEventFilter - * @memberof google.analytics.data.v1alpha.FunnelFilterExpression - * @instance - */ - FunnelFilterExpression.prototype.funnelEventFilter = null; - - // OneOf field names bound to virtual getters and setters - var $oneOfFields; - - /** - * FunnelFilterExpression expr. - * @member {"andGroup"|"orGroup"|"notExpression"|"funnelFieldFilter"|"funnelEventFilter"|undefined} expr - * @memberof google.analytics.data.v1alpha.FunnelFilterExpression + * FunnelParameterFilterExpressionList expressions. + * @member {Array.} expressions + * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpressionList * @instance */ - Object.defineProperty(FunnelFilterExpression.prototype, "expr", { - get: $util.oneOfGetter($oneOfFields = ["andGroup", "orGroup", "notExpression", "funnelFieldFilter", "funnelEventFilter"]), - set: $util.oneOfSetter($oneOfFields) - }); + FunnelParameterFilterExpressionList.prototype.expressions = $util.emptyArray; /** - * Creates a new FunnelFilterExpression instance using the specified properties. + * Creates a new FunnelParameterFilterExpressionList instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.FunnelFilterExpression + * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpressionList * @static - * @param {google.analytics.data.v1alpha.IFunnelFilterExpression=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.FunnelFilterExpression} FunnelFilterExpression instance + * @param {google.analytics.data.v1alpha.IFunnelParameterFilterExpressionList=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.FunnelParameterFilterExpressionList} FunnelParameterFilterExpressionList instance */ - FunnelFilterExpression.create = function create(properties) { - return new FunnelFilterExpression(properties); + FunnelParameterFilterExpressionList.create = function create(properties) { + return new FunnelParameterFilterExpressionList(properties); }; /** - * Encodes the specified FunnelFilterExpression message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelFilterExpression.verify|verify} messages. + * Encodes the specified FunnelParameterFilterExpressionList message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelParameterFilterExpressionList.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.FunnelFilterExpression + * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpressionList * @static - * @param {google.analytics.data.v1alpha.IFunnelFilterExpression} message FunnelFilterExpression message or plain object to encode + * @param {google.analytics.data.v1alpha.IFunnelParameterFilterExpressionList} message FunnelParameterFilterExpressionList message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - FunnelFilterExpression.encode = function encode(message, writer) { + FunnelParameterFilterExpressionList.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.andGroup != null && Object.hasOwnProperty.call(message, "andGroup")) - $root.google.analytics.data.v1alpha.FunnelFilterExpressionList.encode(message.andGroup, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.orGroup != null && Object.hasOwnProperty.call(message, "orGroup")) - $root.google.analytics.data.v1alpha.FunnelFilterExpressionList.encode(message.orGroup, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.notExpression != null && Object.hasOwnProperty.call(message, "notExpression")) - $root.google.analytics.data.v1alpha.FunnelFilterExpression.encode(message.notExpression, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); - if (message.funnelFieldFilter != null && Object.hasOwnProperty.call(message, "funnelFieldFilter")) - $root.google.analytics.data.v1alpha.FunnelFieldFilter.encode(message.funnelFieldFilter, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); - if (message.funnelEventFilter != null && Object.hasOwnProperty.call(message, "funnelEventFilter")) - $root.google.analytics.data.v1alpha.FunnelEventFilter.encode(message.funnelEventFilter, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + if (message.expressions != null && message.expressions.length) + for (var i = 0; i < message.expressions.length; ++i) + $root.google.analytics.data.v1alpha.FunnelParameterFilterExpression.encode(message.expressions[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); return writer; }; /** - * Encodes the specified FunnelFilterExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelFilterExpression.verify|verify} messages. + * Encodes the specified FunnelParameterFilterExpressionList message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelParameterFilterExpressionList.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.FunnelFilterExpression + * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpressionList * @static - * @param {google.analytics.data.v1alpha.IFunnelFilterExpression} message FunnelFilterExpression message or plain object to encode + * @param {google.analytics.data.v1alpha.IFunnelParameterFilterExpressionList} message FunnelParameterFilterExpressionList message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - FunnelFilterExpression.encodeDelimited = function encodeDelimited(message, writer) { + FunnelParameterFilterExpressionList.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a FunnelFilterExpression message from the specified reader or buffer. + * Decodes a FunnelParameterFilterExpressionList message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.FunnelFilterExpression + * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpressionList * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.FunnelFilterExpression} FunnelFilterExpression + * @returns {google.analytics.data.v1alpha.FunnelParameterFilterExpressionList} FunnelParameterFilterExpressionList * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - FunnelFilterExpression.decode = function decode(reader, length, error) { + FunnelParameterFilterExpressionList.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.FunnelFilterExpression(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.FunnelParameterFilterExpressionList(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { case 1: { - message.andGroup = $root.google.analytics.data.v1alpha.FunnelFilterExpressionList.decode(reader, reader.uint32()); - break; - } - case 2: { - message.orGroup = $root.google.analytics.data.v1alpha.FunnelFilterExpressionList.decode(reader, reader.uint32()); - break; - } - case 3: { - message.notExpression = $root.google.analytics.data.v1alpha.FunnelFilterExpression.decode(reader, reader.uint32()); - break; - } - case 4: { - message.funnelFieldFilter = $root.google.analytics.data.v1alpha.FunnelFieldFilter.decode(reader, reader.uint32()); - break; - } - case 5: { - message.funnelEventFilter = $root.google.analytics.data.v1alpha.FunnelEventFilter.decode(reader, reader.uint32()); + if (!(message.expressions && message.expressions.length)) + message.expressions = []; + message.expressions.push($root.google.analytics.data.v1alpha.FunnelParameterFilterExpression.decode(reader, reader.uint32())); break; } default: @@ -40202,213 +43401,144 @@ }; /** - * Decodes a FunnelFilterExpression message from the specified reader or buffer, length delimited. + * Decodes a FunnelParameterFilterExpressionList message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.FunnelFilterExpression + * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpressionList * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.FunnelFilterExpression} FunnelFilterExpression + * @returns {google.analytics.data.v1alpha.FunnelParameterFilterExpressionList} FunnelParameterFilterExpressionList * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - FunnelFilterExpression.decodeDelimited = function decodeDelimited(reader) { + FunnelParameterFilterExpressionList.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a FunnelFilterExpression message. + * Verifies a FunnelParameterFilterExpressionList message. * @function verify - * @memberof google.analytics.data.v1alpha.FunnelFilterExpression + * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpressionList * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - FunnelFilterExpression.verify = function verify(message) { + FunnelParameterFilterExpressionList.verify = function verify(message) { if (typeof message !== "object" || message === null) - return "object expected"; - var properties = {}; - if (message.andGroup != null && message.hasOwnProperty("andGroup")) { - properties.expr = 1; - { - var error = $root.google.analytics.data.v1alpha.FunnelFilterExpressionList.verify(message.andGroup); - if (error) - return "andGroup." + error; - } - } - if (message.orGroup != null && message.hasOwnProperty("orGroup")) { - if (properties.expr === 1) - return "expr: multiple values"; - properties.expr = 1; - { - var error = $root.google.analytics.data.v1alpha.FunnelFilterExpressionList.verify(message.orGroup); - if (error) - return "orGroup." + error; - } - } - if (message.notExpression != null && message.hasOwnProperty("notExpression")) { - if (properties.expr === 1) - return "expr: multiple values"; - properties.expr = 1; - { - var error = $root.google.analytics.data.v1alpha.FunnelFilterExpression.verify(message.notExpression); - if (error) - return "notExpression." + error; - } - } - if (message.funnelFieldFilter != null && message.hasOwnProperty("funnelFieldFilter")) { - if (properties.expr === 1) - return "expr: multiple values"; - properties.expr = 1; - { - var error = $root.google.analytics.data.v1alpha.FunnelFieldFilter.verify(message.funnelFieldFilter); - if (error) - return "funnelFieldFilter." + error; - } - } - if (message.funnelEventFilter != null && message.hasOwnProperty("funnelEventFilter")) { - if (properties.expr === 1) - return "expr: multiple values"; - properties.expr = 1; - { - var error = $root.google.analytics.data.v1alpha.FunnelEventFilter.verify(message.funnelEventFilter); + return "object expected"; + if (message.expressions != null && message.hasOwnProperty("expressions")) { + if (!Array.isArray(message.expressions)) + return "expressions: array expected"; + for (var i = 0; i < message.expressions.length; ++i) { + var error = $root.google.analytics.data.v1alpha.FunnelParameterFilterExpression.verify(message.expressions[i]); if (error) - return "funnelEventFilter." + error; + return "expressions." + error; } } return null; }; /** - * Creates a FunnelFilterExpression message from a plain object. Also converts values to their respective internal types. + * Creates a FunnelParameterFilterExpressionList message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.FunnelFilterExpression + * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpressionList * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.FunnelFilterExpression} FunnelFilterExpression + * @returns {google.analytics.data.v1alpha.FunnelParameterFilterExpressionList} FunnelParameterFilterExpressionList */ - FunnelFilterExpression.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.FunnelFilterExpression) + FunnelParameterFilterExpressionList.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.FunnelParameterFilterExpressionList) return object; - var message = new $root.google.analytics.data.v1alpha.FunnelFilterExpression(); - if (object.andGroup != null) { - if (typeof object.andGroup !== "object") - throw TypeError(".google.analytics.data.v1alpha.FunnelFilterExpression.andGroup: object expected"); - message.andGroup = $root.google.analytics.data.v1alpha.FunnelFilterExpressionList.fromObject(object.andGroup); - } - if (object.orGroup != null) { - if (typeof object.orGroup !== "object") - throw TypeError(".google.analytics.data.v1alpha.FunnelFilterExpression.orGroup: object expected"); - message.orGroup = $root.google.analytics.data.v1alpha.FunnelFilterExpressionList.fromObject(object.orGroup); - } - if (object.notExpression != null) { - if (typeof object.notExpression !== "object") - throw TypeError(".google.analytics.data.v1alpha.FunnelFilterExpression.notExpression: object expected"); - message.notExpression = $root.google.analytics.data.v1alpha.FunnelFilterExpression.fromObject(object.notExpression); - } - if (object.funnelFieldFilter != null) { - if (typeof object.funnelFieldFilter !== "object") - throw TypeError(".google.analytics.data.v1alpha.FunnelFilterExpression.funnelFieldFilter: object expected"); - message.funnelFieldFilter = $root.google.analytics.data.v1alpha.FunnelFieldFilter.fromObject(object.funnelFieldFilter); - } - if (object.funnelEventFilter != null) { - if (typeof object.funnelEventFilter !== "object") - throw TypeError(".google.analytics.data.v1alpha.FunnelFilterExpression.funnelEventFilter: object expected"); - message.funnelEventFilter = $root.google.analytics.data.v1alpha.FunnelEventFilter.fromObject(object.funnelEventFilter); + var message = new $root.google.analytics.data.v1alpha.FunnelParameterFilterExpressionList(); + if (object.expressions) { + if (!Array.isArray(object.expressions)) + throw TypeError(".google.analytics.data.v1alpha.FunnelParameterFilterExpressionList.expressions: array expected"); + message.expressions = []; + for (var i = 0; i < object.expressions.length; ++i) { + if (typeof object.expressions[i] !== "object") + throw TypeError(".google.analytics.data.v1alpha.FunnelParameterFilterExpressionList.expressions: object expected"); + message.expressions[i] = $root.google.analytics.data.v1alpha.FunnelParameterFilterExpression.fromObject(object.expressions[i]); + } } return message; }; /** - * Creates a plain object from a FunnelFilterExpression message. Also converts values to other types if specified. + * Creates a plain object from a FunnelParameterFilterExpressionList message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.FunnelFilterExpression + * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpressionList * @static - * @param {google.analytics.data.v1alpha.FunnelFilterExpression} message FunnelFilterExpression + * @param {google.analytics.data.v1alpha.FunnelParameterFilterExpressionList} message FunnelParameterFilterExpressionList * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - FunnelFilterExpression.toObject = function toObject(message, options) { + FunnelParameterFilterExpressionList.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (message.andGroup != null && message.hasOwnProperty("andGroup")) { - object.andGroup = $root.google.analytics.data.v1alpha.FunnelFilterExpressionList.toObject(message.andGroup, options); - if (options.oneofs) - object.expr = "andGroup"; - } - if (message.orGroup != null && message.hasOwnProperty("orGroup")) { - object.orGroup = $root.google.analytics.data.v1alpha.FunnelFilterExpressionList.toObject(message.orGroup, options); - if (options.oneofs) - object.expr = "orGroup"; - } - if (message.notExpression != null && message.hasOwnProperty("notExpression")) { - object.notExpression = $root.google.analytics.data.v1alpha.FunnelFilterExpression.toObject(message.notExpression, options); - if (options.oneofs) - object.expr = "notExpression"; - } - if (message.funnelFieldFilter != null && message.hasOwnProperty("funnelFieldFilter")) { - object.funnelFieldFilter = $root.google.analytics.data.v1alpha.FunnelFieldFilter.toObject(message.funnelFieldFilter, options); - if (options.oneofs) - object.expr = "funnelFieldFilter"; - } - if (message.funnelEventFilter != null && message.hasOwnProperty("funnelEventFilter")) { - object.funnelEventFilter = $root.google.analytics.data.v1alpha.FunnelEventFilter.toObject(message.funnelEventFilter, options); - if (options.oneofs) - object.expr = "funnelEventFilter"; + if (options.arrays || options.defaults) + object.expressions = []; + if (message.expressions && message.expressions.length) { + object.expressions = []; + for (var j = 0; j < message.expressions.length; ++j) + object.expressions[j] = $root.google.analytics.data.v1alpha.FunnelParameterFilterExpression.toObject(message.expressions[j], options); } return object; }; /** - * Converts this FunnelFilterExpression to JSON. + * Converts this FunnelParameterFilterExpressionList to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.FunnelFilterExpression + * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpressionList * @instance * @returns {Object.} JSON object */ - FunnelFilterExpression.prototype.toJSON = function toJSON() { + FunnelParameterFilterExpressionList.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for FunnelFilterExpression + * Gets the default type url for FunnelParameterFilterExpressionList * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.FunnelFilterExpression + * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpressionList * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - FunnelFilterExpression.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + FunnelParameterFilterExpressionList.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.analytics.data.v1alpha.FunnelFilterExpression"; + return typeUrlPrefix + "/google.analytics.data.v1alpha.FunnelParameterFilterExpressionList"; }; - return FunnelFilterExpression; + return FunnelParameterFilterExpressionList; })(); - v1alpha.FunnelFilterExpressionList = (function() { + v1alpha.FunnelParameterFilter = (function() { /** - * Properties of a FunnelFilterExpressionList. + * Properties of a FunnelParameterFilter. * @memberof google.analytics.data.v1alpha - * @interface IFunnelFilterExpressionList - * @property {Array.|null} [expressions] FunnelFilterExpressionList expressions + * @interface IFunnelParameterFilter + * @property {string|null} [eventParameterName] FunnelParameterFilter eventParameterName + * @property {string|null} [itemParameterName] FunnelParameterFilter itemParameterName + * @property {google.analytics.data.v1alpha.IStringFilter|null} [stringFilter] FunnelParameterFilter stringFilter + * @property {google.analytics.data.v1alpha.IInListFilter|null} [inListFilter] FunnelParameterFilter inListFilter + * @property {google.analytics.data.v1alpha.INumericFilter|null} [numericFilter] FunnelParameterFilter numericFilter + * @property {google.analytics.data.v1alpha.IBetweenFilter|null} [betweenFilter] FunnelParameterFilter betweenFilter */ /** - * Constructs a new FunnelFilterExpressionList. + * Constructs a new FunnelParameterFilter. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a FunnelFilterExpressionList. - * @implements IFunnelFilterExpressionList + * @classdesc Represents a FunnelParameterFilter. + * @implements IFunnelParameterFilter * @constructor - * @param {google.analytics.data.v1alpha.IFunnelFilterExpressionList=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IFunnelParameterFilter=} [properties] Properties to set */ - function FunnelFilterExpressionList(properties) { - this.expressions = []; + function FunnelParameterFilter(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -40416,80 +43546,172 @@ } /** - * FunnelFilterExpressionList expressions. - * @member {Array.} expressions - * @memberof google.analytics.data.v1alpha.FunnelFilterExpressionList + * FunnelParameterFilter eventParameterName. + * @member {string|null|undefined} eventParameterName + * @memberof google.analytics.data.v1alpha.FunnelParameterFilter * @instance */ - FunnelFilterExpressionList.prototype.expressions = $util.emptyArray; + FunnelParameterFilter.prototype.eventParameterName = null; /** - * Creates a new FunnelFilterExpressionList instance using the specified properties. + * FunnelParameterFilter itemParameterName. + * @member {string|null|undefined} itemParameterName + * @memberof google.analytics.data.v1alpha.FunnelParameterFilter + * @instance + */ + FunnelParameterFilter.prototype.itemParameterName = null; + + /** + * FunnelParameterFilter stringFilter. + * @member {google.analytics.data.v1alpha.IStringFilter|null|undefined} stringFilter + * @memberof google.analytics.data.v1alpha.FunnelParameterFilter + * @instance + */ + FunnelParameterFilter.prototype.stringFilter = null; + + /** + * FunnelParameterFilter inListFilter. + * @member {google.analytics.data.v1alpha.IInListFilter|null|undefined} inListFilter + * @memberof google.analytics.data.v1alpha.FunnelParameterFilter + * @instance + */ + FunnelParameterFilter.prototype.inListFilter = null; + + /** + * FunnelParameterFilter numericFilter. + * @member {google.analytics.data.v1alpha.INumericFilter|null|undefined} numericFilter + * @memberof google.analytics.data.v1alpha.FunnelParameterFilter + * @instance + */ + FunnelParameterFilter.prototype.numericFilter = null; + + /** + * FunnelParameterFilter betweenFilter. + * @member {google.analytics.data.v1alpha.IBetweenFilter|null|undefined} betweenFilter + * @memberof google.analytics.data.v1alpha.FunnelParameterFilter + * @instance + */ + FunnelParameterFilter.prototype.betweenFilter = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * FunnelParameterFilter oneParameter. + * @member {"eventParameterName"|"itemParameterName"|undefined} oneParameter + * @memberof google.analytics.data.v1alpha.FunnelParameterFilter + * @instance + */ + Object.defineProperty(FunnelParameterFilter.prototype, "oneParameter", { + get: $util.oneOfGetter($oneOfFields = ["eventParameterName", "itemParameterName"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * FunnelParameterFilter oneFilter. + * @member {"stringFilter"|"inListFilter"|"numericFilter"|"betweenFilter"|undefined} oneFilter + * @memberof google.analytics.data.v1alpha.FunnelParameterFilter + * @instance + */ + Object.defineProperty(FunnelParameterFilter.prototype, "oneFilter", { + get: $util.oneOfGetter($oneOfFields = ["stringFilter", "inListFilter", "numericFilter", "betweenFilter"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new FunnelParameterFilter instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.FunnelFilterExpressionList + * @memberof google.analytics.data.v1alpha.FunnelParameterFilter * @static - * @param {google.analytics.data.v1alpha.IFunnelFilterExpressionList=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.FunnelFilterExpressionList} FunnelFilterExpressionList instance + * @param {google.analytics.data.v1alpha.IFunnelParameterFilter=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.FunnelParameterFilter} FunnelParameterFilter instance */ - FunnelFilterExpressionList.create = function create(properties) { - return new FunnelFilterExpressionList(properties); + FunnelParameterFilter.create = function create(properties) { + return new FunnelParameterFilter(properties); }; /** - * Encodes the specified FunnelFilterExpressionList message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelFilterExpressionList.verify|verify} messages. + * Encodes the specified FunnelParameterFilter message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelParameterFilter.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.FunnelFilterExpressionList + * @memberof google.analytics.data.v1alpha.FunnelParameterFilter * @static - * @param {google.analytics.data.v1alpha.IFunnelFilterExpressionList} message FunnelFilterExpressionList message or plain object to encode + * @param {google.analytics.data.v1alpha.IFunnelParameterFilter} message FunnelParameterFilter message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - FunnelFilterExpressionList.encode = function encode(message, writer) { + FunnelParameterFilter.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.expressions != null && message.expressions.length) - for (var i = 0; i < message.expressions.length; ++i) - $root.google.analytics.data.v1alpha.FunnelFilterExpression.encode(message.expressions[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.eventParameterName != null && Object.hasOwnProperty.call(message, "eventParameterName")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.eventParameterName); + if (message.itemParameterName != null && Object.hasOwnProperty.call(message, "itemParameterName")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.itemParameterName); + if (message.stringFilter != null && Object.hasOwnProperty.call(message, "stringFilter")) + $root.google.analytics.data.v1alpha.StringFilter.encode(message.stringFilter, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.inListFilter != null && Object.hasOwnProperty.call(message, "inListFilter")) + $root.google.analytics.data.v1alpha.InListFilter.encode(message.inListFilter, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + if (message.numericFilter != null && Object.hasOwnProperty.call(message, "numericFilter")) + $root.google.analytics.data.v1alpha.NumericFilter.encode(message.numericFilter, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + if (message.betweenFilter != null && Object.hasOwnProperty.call(message, "betweenFilter")) + $root.google.analytics.data.v1alpha.BetweenFilter.encode(message.betweenFilter, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); return writer; }; /** - * Encodes the specified FunnelFilterExpressionList message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelFilterExpressionList.verify|verify} messages. + * Encodes the specified FunnelParameterFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelParameterFilter.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.FunnelFilterExpressionList + * @memberof google.analytics.data.v1alpha.FunnelParameterFilter * @static - * @param {google.analytics.data.v1alpha.IFunnelFilterExpressionList} message FunnelFilterExpressionList message or plain object to encode + * @param {google.analytics.data.v1alpha.IFunnelParameterFilter} message FunnelParameterFilter message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - FunnelFilterExpressionList.encodeDelimited = function encodeDelimited(message, writer) { + FunnelParameterFilter.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a FunnelFilterExpressionList message from the specified reader or buffer. + * Decodes a FunnelParameterFilter message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.FunnelFilterExpressionList + * @memberof google.analytics.data.v1alpha.FunnelParameterFilter * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.FunnelFilterExpressionList} FunnelFilterExpressionList + * @returns {google.analytics.data.v1alpha.FunnelParameterFilter} FunnelParameterFilter * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - FunnelFilterExpressionList.decode = function decode(reader, length, error) { + FunnelParameterFilter.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.FunnelFilterExpressionList(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.FunnelParameterFilter(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { case 1: { - if (!(message.expressions && message.expressions.length)) - message.expressions = []; - message.expressions.push($root.google.analytics.data.v1alpha.FunnelFilterExpression.decode(reader, reader.uint32())); + message.eventParameterName = reader.string(); + break; + } + case 2: { + message.itemParameterName = reader.string(); + break; + } + case 4: { + message.stringFilter = $root.google.analytics.data.v1alpha.StringFilter.decode(reader, reader.uint32()); + break; + } + case 5: { + message.inListFilter = $root.google.analytics.data.v1alpha.InListFilter.decode(reader, reader.uint32()); + break; + } + case 6: { + message.numericFilter = $root.google.analytics.data.v1alpha.NumericFilter.decode(reader, reader.uint32()); + break; + } + case 7: { + message.betweenFilter = $root.google.analytics.data.v1alpha.BetweenFilter.decode(reader, reader.uint32()); break; } default: @@ -40501,291 +43723,300 @@ }; /** - * Decodes a FunnelFilterExpressionList message from the specified reader or buffer, length delimited. + * Decodes a FunnelParameterFilter message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.FunnelFilterExpressionList + * @memberof google.analytics.data.v1alpha.FunnelParameterFilter * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.FunnelFilterExpressionList} FunnelFilterExpressionList + * @returns {google.analytics.data.v1alpha.FunnelParameterFilter} FunnelParameterFilter * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - FunnelFilterExpressionList.decodeDelimited = function decodeDelimited(reader) { + FunnelParameterFilter.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a FunnelFilterExpressionList message. + * Verifies a FunnelParameterFilter message. * @function verify - * @memberof google.analytics.data.v1alpha.FunnelFilterExpressionList + * @memberof google.analytics.data.v1alpha.FunnelParameterFilter * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - FunnelFilterExpressionList.verify = function verify(message) { + FunnelParameterFilter.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.expressions != null && message.hasOwnProperty("expressions")) { - if (!Array.isArray(message.expressions)) - return "expressions: array expected"; - for (var i = 0; i < message.expressions.length; ++i) { - var error = $root.google.analytics.data.v1alpha.FunnelFilterExpression.verify(message.expressions[i]); + var properties = {}; + if (message.eventParameterName != null && message.hasOwnProperty("eventParameterName")) { + properties.oneParameter = 1; + if (!$util.isString(message.eventParameterName)) + return "eventParameterName: string expected"; + } + if (message.itemParameterName != null && message.hasOwnProperty("itemParameterName")) { + if (properties.oneParameter === 1) + return "oneParameter: multiple values"; + properties.oneParameter = 1; + if (!$util.isString(message.itemParameterName)) + return "itemParameterName: string expected"; + } + if (message.stringFilter != null && message.hasOwnProperty("stringFilter")) { + properties.oneFilter = 1; + { + var error = $root.google.analytics.data.v1alpha.StringFilter.verify(message.stringFilter); if (error) - return "expressions." + error; + return "stringFilter." + error; + } + } + if (message.inListFilter != null && message.hasOwnProperty("inListFilter")) { + if (properties.oneFilter === 1) + return "oneFilter: multiple values"; + properties.oneFilter = 1; + { + var error = $root.google.analytics.data.v1alpha.InListFilter.verify(message.inListFilter); + if (error) + return "inListFilter." + error; + } + } + if (message.numericFilter != null && message.hasOwnProperty("numericFilter")) { + if (properties.oneFilter === 1) + return "oneFilter: multiple values"; + properties.oneFilter = 1; + { + var error = $root.google.analytics.data.v1alpha.NumericFilter.verify(message.numericFilter); + if (error) + return "numericFilter." + error; + } + } + if (message.betweenFilter != null && message.hasOwnProperty("betweenFilter")) { + if (properties.oneFilter === 1) + return "oneFilter: multiple values"; + properties.oneFilter = 1; + { + var error = $root.google.analytics.data.v1alpha.BetweenFilter.verify(message.betweenFilter); + if (error) + return "betweenFilter." + error; } } return null; }; /** - * Creates a FunnelFilterExpressionList message from a plain object. Also converts values to their respective internal types. + * Creates a FunnelParameterFilter message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.FunnelFilterExpressionList + * @memberof google.analytics.data.v1alpha.FunnelParameterFilter * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.FunnelFilterExpressionList} FunnelFilterExpressionList + * @returns {google.analytics.data.v1alpha.FunnelParameterFilter} FunnelParameterFilter */ - FunnelFilterExpressionList.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.FunnelFilterExpressionList) + FunnelParameterFilter.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.FunnelParameterFilter) return object; - var message = new $root.google.analytics.data.v1alpha.FunnelFilterExpressionList(); - if (object.expressions) { - if (!Array.isArray(object.expressions)) - throw TypeError(".google.analytics.data.v1alpha.FunnelFilterExpressionList.expressions: array expected"); - message.expressions = []; - for (var i = 0; i < object.expressions.length; ++i) { - if (typeof object.expressions[i] !== "object") - throw TypeError(".google.analytics.data.v1alpha.FunnelFilterExpressionList.expressions: object expected"); - message.expressions[i] = $root.google.analytics.data.v1alpha.FunnelFilterExpression.fromObject(object.expressions[i]); - } + var message = new $root.google.analytics.data.v1alpha.FunnelParameterFilter(); + if (object.eventParameterName != null) + message.eventParameterName = String(object.eventParameterName); + if (object.itemParameterName != null) + message.itemParameterName = String(object.itemParameterName); + if (object.stringFilter != null) { + if (typeof object.stringFilter !== "object") + throw TypeError(".google.analytics.data.v1alpha.FunnelParameterFilter.stringFilter: object expected"); + message.stringFilter = $root.google.analytics.data.v1alpha.StringFilter.fromObject(object.stringFilter); + } + if (object.inListFilter != null) { + if (typeof object.inListFilter !== "object") + throw TypeError(".google.analytics.data.v1alpha.FunnelParameterFilter.inListFilter: object expected"); + message.inListFilter = $root.google.analytics.data.v1alpha.InListFilter.fromObject(object.inListFilter); + } + if (object.numericFilter != null) { + if (typeof object.numericFilter !== "object") + throw TypeError(".google.analytics.data.v1alpha.FunnelParameterFilter.numericFilter: object expected"); + message.numericFilter = $root.google.analytics.data.v1alpha.NumericFilter.fromObject(object.numericFilter); + } + if (object.betweenFilter != null) { + if (typeof object.betweenFilter !== "object") + throw TypeError(".google.analytics.data.v1alpha.FunnelParameterFilter.betweenFilter: object expected"); + message.betweenFilter = $root.google.analytics.data.v1alpha.BetweenFilter.fromObject(object.betweenFilter); } return message; }; /** - * Creates a plain object from a FunnelFilterExpressionList message. Also converts values to other types if specified. + * Creates a plain object from a FunnelParameterFilter message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.FunnelFilterExpressionList + * @memberof google.analytics.data.v1alpha.FunnelParameterFilter * @static - * @param {google.analytics.data.v1alpha.FunnelFilterExpressionList} message FunnelFilterExpressionList + * @param {google.analytics.data.v1alpha.FunnelParameterFilter} message FunnelParameterFilter * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - FunnelFilterExpressionList.toObject = function toObject(message, options) { + FunnelParameterFilter.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.arrays || options.defaults) - object.expressions = []; - if (message.expressions && message.expressions.length) { - object.expressions = []; - for (var j = 0; j < message.expressions.length; ++j) - object.expressions[j] = $root.google.analytics.data.v1alpha.FunnelFilterExpression.toObject(message.expressions[j], options); + if (message.eventParameterName != null && message.hasOwnProperty("eventParameterName")) { + object.eventParameterName = message.eventParameterName; + if (options.oneofs) + object.oneParameter = "eventParameterName"; + } + if (message.itemParameterName != null && message.hasOwnProperty("itemParameterName")) { + object.itemParameterName = message.itemParameterName; + if (options.oneofs) + object.oneParameter = "itemParameterName"; + } + if (message.stringFilter != null && message.hasOwnProperty("stringFilter")) { + object.stringFilter = $root.google.analytics.data.v1alpha.StringFilter.toObject(message.stringFilter, options); + if (options.oneofs) + object.oneFilter = "stringFilter"; + } + if (message.inListFilter != null && message.hasOwnProperty("inListFilter")) { + object.inListFilter = $root.google.analytics.data.v1alpha.InListFilter.toObject(message.inListFilter, options); + if (options.oneofs) + object.oneFilter = "inListFilter"; + } + if (message.numericFilter != null && message.hasOwnProperty("numericFilter")) { + object.numericFilter = $root.google.analytics.data.v1alpha.NumericFilter.toObject(message.numericFilter, options); + if (options.oneofs) + object.oneFilter = "numericFilter"; + } + if (message.betweenFilter != null && message.hasOwnProperty("betweenFilter")) { + object.betweenFilter = $root.google.analytics.data.v1alpha.BetweenFilter.toObject(message.betweenFilter, options); + if (options.oneofs) + object.oneFilter = "betweenFilter"; } return object; }; /** - * Converts this FunnelFilterExpressionList to JSON. + * Converts this FunnelParameterFilter to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.FunnelFilterExpressionList + * @memberof google.analytics.data.v1alpha.FunnelParameterFilter * @instance * @returns {Object.} JSON object */ - FunnelFilterExpressionList.prototype.toJSON = function toJSON() { + FunnelParameterFilter.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for FunnelFilterExpressionList + * Gets the default type url for FunnelParameterFilter * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.FunnelFilterExpressionList + * @memberof google.analytics.data.v1alpha.FunnelParameterFilter * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - FunnelFilterExpressionList.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + FunnelParameterFilter.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.analytics.data.v1alpha.FunnelFilterExpressionList"; + return typeUrlPrefix + "/google.analytics.data.v1alpha.FunnelParameterFilter"; }; - return FunnelFilterExpressionList; + return FunnelParameterFilter; })(); - v1alpha.FunnelFieldFilter = (function() { - - /** - * Properties of a FunnelFieldFilter. - * @memberof google.analytics.data.v1alpha - * @interface IFunnelFieldFilter - * @property {string|null} [fieldName] FunnelFieldFilter fieldName - * @property {google.analytics.data.v1alpha.IStringFilter|null} [stringFilter] FunnelFieldFilter stringFilter - * @property {google.analytics.data.v1alpha.IInListFilter|null} [inListFilter] FunnelFieldFilter inListFilter - * @property {google.analytics.data.v1alpha.INumericFilter|null} [numericFilter] FunnelFieldFilter numericFilter - * @property {google.analytics.data.v1alpha.IBetweenFilter|null} [betweenFilter] FunnelFieldFilter betweenFilter - */ - - /** - * Constructs a new FunnelFieldFilter. - * @memberof google.analytics.data.v1alpha - * @classdesc Represents a FunnelFieldFilter. - * @implements IFunnelFieldFilter - * @constructor - * @param {google.analytics.data.v1alpha.IFunnelFieldFilter=} [properties] Properties to set - */ - function FunnelFieldFilter(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]]; - } - - /** - * FunnelFieldFilter fieldName. - * @member {string} fieldName - * @memberof google.analytics.data.v1alpha.FunnelFieldFilter - * @instance - */ - FunnelFieldFilter.prototype.fieldName = ""; - - /** - * FunnelFieldFilter stringFilter. - * @member {google.analytics.data.v1alpha.IStringFilter|null|undefined} stringFilter - * @memberof google.analytics.data.v1alpha.FunnelFieldFilter - * @instance - */ - FunnelFieldFilter.prototype.stringFilter = null; - - /** - * FunnelFieldFilter inListFilter. - * @member {google.analytics.data.v1alpha.IInListFilter|null|undefined} inListFilter - * @memberof google.analytics.data.v1alpha.FunnelFieldFilter - * @instance - */ - FunnelFieldFilter.prototype.inListFilter = null; - - /** - * FunnelFieldFilter numericFilter. - * @member {google.analytics.data.v1alpha.INumericFilter|null|undefined} numericFilter - * @memberof google.analytics.data.v1alpha.FunnelFieldFilter - * @instance - */ - FunnelFieldFilter.prototype.numericFilter = null; - + v1alpha.FunnelResponseMetadata = (function() { + /** - * FunnelFieldFilter betweenFilter. - * @member {google.analytics.data.v1alpha.IBetweenFilter|null|undefined} betweenFilter - * @memberof google.analytics.data.v1alpha.FunnelFieldFilter - * @instance + * Properties of a FunnelResponseMetadata. + * @memberof google.analytics.data.v1alpha + * @interface IFunnelResponseMetadata + * @property {Array.|null} [samplingMetadatas] FunnelResponseMetadata samplingMetadatas */ - FunnelFieldFilter.prototype.betweenFilter = null; - // OneOf field names bound to virtual getters and setters - var $oneOfFields; + /** + * Constructs a new FunnelResponseMetadata. + * @memberof google.analytics.data.v1alpha + * @classdesc Represents a FunnelResponseMetadata. + * @implements IFunnelResponseMetadata + * @constructor + * @param {google.analytics.data.v1alpha.IFunnelResponseMetadata=} [properties] Properties to set + */ + function FunnelResponseMetadata(properties) { + this.samplingMetadatas = []; + 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]]; + } /** - * FunnelFieldFilter oneFilter. - * @member {"stringFilter"|"inListFilter"|"numericFilter"|"betweenFilter"|undefined} oneFilter - * @memberof google.analytics.data.v1alpha.FunnelFieldFilter + * FunnelResponseMetadata samplingMetadatas. + * @member {Array.} samplingMetadatas + * @memberof google.analytics.data.v1alpha.FunnelResponseMetadata * @instance */ - Object.defineProperty(FunnelFieldFilter.prototype, "oneFilter", { - get: $util.oneOfGetter($oneOfFields = ["stringFilter", "inListFilter", "numericFilter", "betweenFilter"]), - set: $util.oneOfSetter($oneOfFields) - }); + FunnelResponseMetadata.prototype.samplingMetadatas = $util.emptyArray; /** - * Creates a new FunnelFieldFilter instance using the specified properties. + * Creates a new FunnelResponseMetadata instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.FunnelFieldFilter + * @memberof google.analytics.data.v1alpha.FunnelResponseMetadata * @static - * @param {google.analytics.data.v1alpha.IFunnelFieldFilter=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.FunnelFieldFilter} FunnelFieldFilter instance + * @param {google.analytics.data.v1alpha.IFunnelResponseMetadata=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.FunnelResponseMetadata} FunnelResponseMetadata instance */ - FunnelFieldFilter.create = function create(properties) { - return new FunnelFieldFilter(properties); + FunnelResponseMetadata.create = function create(properties) { + return new FunnelResponseMetadata(properties); }; /** - * Encodes the specified FunnelFieldFilter message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelFieldFilter.verify|verify} messages. + * Encodes the specified FunnelResponseMetadata message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelResponseMetadata.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.FunnelFieldFilter + * @memberof google.analytics.data.v1alpha.FunnelResponseMetadata * @static - * @param {google.analytics.data.v1alpha.IFunnelFieldFilter} message FunnelFieldFilter message or plain object to encode + * @param {google.analytics.data.v1alpha.IFunnelResponseMetadata} message FunnelResponseMetadata message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - FunnelFieldFilter.encode = function encode(message, writer) { + FunnelResponseMetadata.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.fieldName != null && Object.hasOwnProperty.call(message, "fieldName")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.fieldName); - if (message.stringFilter != null && Object.hasOwnProperty.call(message, "stringFilter")) - $root.google.analytics.data.v1alpha.StringFilter.encode(message.stringFilter, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); - if (message.inListFilter != null && Object.hasOwnProperty.call(message, "inListFilter")) - $root.google.analytics.data.v1alpha.InListFilter.encode(message.inListFilter, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); - if (message.numericFilter != null && Object.hasOwnProperty.call(message, "numericFilter")) - $root.google.analytics.data.v1alpha.NumericFilter.encode(message.numericFilter, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); - if (message.betweenFilter != null && Object.hasOwnProperty.call(message, "betweenFilter")) - $root.google.analytics.data.v1alpha.BetweenFilter.encode(message.betweenFilter, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); + if (message.samplingMetadatas != null && message.samplingMetadatas.length) + for (var i = 0; i < message.samplingMetadatas.length; ++i) + $root.google.analytics.data.v1alpha.SamplingMetadata.encode(message.samplingMetadatas[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); return writer; }; /** - * Encodes the specified FunnelFieldFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelFieldFilter.verify|verify} messages. + * Encodes the specified FunnelResponseMetadata message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelResponseMetadata.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.FunnelFieldFilter + * @memberof google.analytics.data.v1alpha.FunnelResponseMetadata * @static - * @param {google.analytics.data.v1alpha.IFunnelFieldFilter} message FunnelFieldFilter message or plain object to encode + * @param {google.analytics.data.v1alpha.IFunnelResponseMetadata} message FunnelResponseMetadata message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - FunnelFieldFilter.encodeDelimited = function encodeDelimited(message, writer) { + FunnelResponseMetadata.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a FunnelFieldFilter message from the specified reader or buffer. + * Decodes a FunnelResponseMetadata message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.FunnelFieldFilter + * @memberof google.analytics.data.v1alpha.FunnelResponseMetadata * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.FunnelFieldFilter} FunnelFieldFilter + * @returns {google.analytics.data.v1alpha.FunnelResponseMetadata} FunnelResponseMetadata * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - FunnelFieldFilter.decode = function decode(reader, length, error) { + FunnelResponseMetadata.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.FunnelFieldFilter(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.FunnelResponseMetadata(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { case 1: { - message.fieldName = reader.string(); - break; - } - case 4: { - message.stringFilter = $root.google.analytics.data.v1alpha.StringFilter.decode(reader, reader.uint32()); - break; - } - case 5: { - message.inListFilter = $root.google.analytics.data.v1alpha.InListFilter.decode(reader, reader.uint32()); - break; - } - case 6: { - message.numericFilter = $root.google.analytics.data.v1alpha.NumericFilter.decode(reader, reader.uint32()); - break; - } - case 7: { - message.betweenFilter = $root.google.analytics.data.v1alpha.BetweenFilter.decode(reader, reader.uint32()); + if (!(message.samplingMetadatas && message.samplingMetadatas.length)) + message.samplingMetadatas = []; + message.samplingMetadatas.push($root.google.analytics.data.v1alpha.SamplingMetadata.decode(reader, reader.uint32())); break; } default: @@ -40797,202 +44028,140 @@ }; /** - * Decodes a FunnelFieldFilter message from the specified reader or buffer, length delimited. + * Decodes a FunnelResponseMetadata message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.FunnelFieldFilter + * @memberof google.analytics.data.v1alpha.FunnelResponseMetadata * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.FunnelFieldFilter} FunnelFieldFilter + * @returns {google.analytics.data.v1alpha.FunnelResponseMetadata} FunnelResponseMetadata * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - FunnelFieldFilter.decodeDelimited = function decodeDelimited(reader) { + FunnelResponseMetadata.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a FunnelFieldFilter message. + * Verifies a FunnelResponseMetadata message. * @function verify - * @memberof google.analytics.data.v1alpha.FunnelFieldFilter + * @memberof google.analytics.data.v1alpha.FunnelResponseMetadata * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - FunnelFieldFilter.verify = function verify(message) { + FunnelResponseMetadata.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - var properties = {}; - if (message.fieldName != null && message.hasOwnProperty("fieldName")) - if (!$util.isString(message.fieldName)) - return "fieldName: string expected"; - if (message.stringFilter != null && message.hasOwnProperty("stringFilter")) { - properties.oneFilter = 1; - { - var error = $root.google.analytics.data.v1alpha.StringFilter.verify(message.stringFilter); - if (error) - return "stringFilter." + error; - } - } - if (message.inListFilter != null && message.hasOwnProperty("inListFilter")) { - if (properties.oneFilter === 1) - return "oneFilter: multiple values"; - properties.oneFilter = 1; - { - var error = $root.google.analytics.data.v1alpha.InListFilter.verify(message.inListFilter); - if (error) - return "inListFilter." + error; - } - } - if (message.numericFilter != null && message.hasOwnProperty("numericFilter")) { - if (properties.oneFilter === 1) - return "oneFilter: multiple values"; - properties.oneFilter = 1; - { - var error = $root.google.analytics.data.v1alpha.NumericFilter.verify(message.numericFilter); - if (error) - return "numericFilter." + error; - } - } - if (message.betweenFilter != null && message.hasOwnProperty("betweenFilter")) { - if (properties.oneFilter === 1) - return "oneFilter: multiple values"; - properties.oneFilter = 1; - { - var error = $root.google.analytics.data.v1alpha.BetweenFilter.verify(message.betweenFilter); + if (message.samplingMetadatas != null && message.hasOwnProperty("samplingMetadatas")) { + if (!Array.isArray(message.samplingMetadatas)) + return "samplingMetadatas: array expected"; + for (var i = 0; i < message.samplingMetadatas.length; ++i) { + var error = $root.google.analytics.data.v1alpha.SamplingMetadata.verify(message.samplingMetadatas[i]); if (error) - return "betweenFilter." + error; + return "samplingMetadatas." + error; } } return null; }; /** - * Creates a FunnelFieldFilter message from a plain object. Also converts values to their respective internal types. + * Creates a FunnelResponseMetadata message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.FunnelFieldFilter + * @memberof google.analytics.data.v1alpha.FunnelResponseMetadata * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.FunnelFieldFilter} FunnelFieldFilter + * @returns {google.analytics.data.v1alpha.FunnelResponseMetadata} FunnelResponseMetadata */ - FunnelFieldFilter.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.FunnelFieldFilter) + FunnelResponseMetadata.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.FunnelResponseMetadata) return object; - var message = new $root.google.analytics.data.v1alpha.FunnelFieldFilter(); - if (object.fieldName != null) - message.fieldName = String(object.fieldName); - if (object.stringFilter != null) { - if (typeof object.stringFilter !== "object") - throw TypeError(".google.analytics.data.v1alpha.FunnelFieldFilter.stringFilter: object expected"); - message.stringFilter = $root.google.analytics.data.v1alpha.StringFilter.fromObject(object.stringFilter); - } - if (object.inListFilter != null) { - if (typeof object.inListFilter !== "object") - throw TypeError(".google.analytics.data.v1alpha.FunnelFieldFilter.inListFilter: object expected"); - message.inListFilter = $root.google.analytics.data.v1alpha.InListFilter.fromObject(object.inListFilter); - } - if (object.numericFilter != null) { - if (typeof object.numericFilter !== "object") - throw TypeError(".google.analytics.data.v1alpha.FunnelFieldFilter.numericFilter: object expected"); - message.numericFilter = $root.google.analytics.data.v1alpha.NumericFilter.fromObject(object.numericFilter); - } - if (object.betweenFilter != null) { - if (typeof object.betweenFilter !== "object") - throw TypeError(".google.analytics.data.v1alpha.FunnelFieldFilter.betweenFilter: object expected"); - message.betweenFilter = $root.google.analytics.data.v1alpha.BetweenFilter.fromObject(object.betweenFilter); + var message = new $root.google.analytics.data.v1alpha.FunnelResponseMetadata(); + if (object.samplingMetadatas) { + if (!Array.isArray(object.samplingMetadatas)) + throw TypeError(".google.analytics.data.v1alpha.FunnelResponseMetadata.samplingMetadatas: array expected"); + message.samplingMetadatas = []; + for (var i = 0; i < object.samplingMetadatas.length; ++i) { + if (typeof object.samplingMetadatas[i] !== "object") + throw TypeError(".google.analytics.data.v1alpha.FunnelResponseMetadata.samplingMetadatas: object expected"); + message.samplingMetadatas[i] = $root.google.analytics.data.v1alpha.SamplingMetadata.fromObject(object.samplingMetadatas[i]); + } } return message; }; /** - * Creates a plain object from a FunnelFieldFilter message. Also converts values to other types if specified. + * Creates a plain object from a FunnelResponseMetadata message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.FunnelFieldFilter + * @memberof google.analytics.data.v1alpha.FunnelResponseMetadata * @static - * @param {google.analytics.data.v1alpha.FunnelFieldFilter} message FunnelFieldFilter + * @param {google.analytics.data.v1alpha.FunnelResponseMetadata} message FunnelResponseMetadata * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - FunnelFieldFilter.toObject = function toObject(message, options) { + FunnelResponseMetadata.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.defaults) - object.fieldName = ""; - if (message.fieldName != null && message.hasOwnProperty("fieldName")) - object.fieldName = message.fieldName; - if (message.stringFilter != null && message.hasOwnProperty("stringFilter")) { - object.stringFilter = $root.google.analytics.data.v1alpha.StringFilter.toObject(message.stringFilter, options); - if (options.oneofs) - object.oneFilter = "stringFilter"; - } - if (message.inListFilter != null && message.hasOwnProperty("inListFilter")) { - object.inListFilter = $root.google.analytics.data.v1alpha.InListFilter.toObject(message.inListFilter, options); - if (options.oneofs) - object.oneFilter = "inListFilter"; - } - if (message.numericFilter != null && message.hasOwnProperty("numericFilter")) { - object.numericFilter = $root.google.analytics.data.v1alpha.NumericFilter.toObject(message.numericFilter, options); - if (options.oneofs) - object.oneFilter = "numericFilter"; - } - if (message.betweenFilter != null && message.hasOwnProperty("betweenFilter")) { - object.betweenFilter = $root.google.analytics.data.v1alpha.BetweenFilter.toObject(message.betweenFilter, options); - if (options.oneofs) - object.oneFilter = "betweenFilter"; + if (options.arrays || options.defaults) + object.samplingMetadatas = []; + if (message.samplingMetadatas && message.samplingMetadatas.length) { + object.samplingMetadatas = []; + for (var j = 0; j < message.samplingMetadatas.length; ++j) + object.samplingMetadatas[j] = $root.google.analytics.data.v1alpha.SamplingMetadata.toObject(message.samplingMetadatas[j], options); } return object; }; /** - * Converts this FunnelFieldFilter to JSON. + * Converts this FunnelResponseMetadata to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.FunnelFieldFilter + * @memberof google.analytics.data.v1alpha.FunnelResponseMetadata * @instance * @returns {Object.} JSON object */ - FunnelFieldFilter.prototype.toJSON = function toJSON() { + FunnelResponseMetadata.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for FunnelFieldFilter + * Gets the default type url for FunnelResponseMetadata * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.FunnelFieldFilter + * @memberof google.analytics.data.v1alpha.FunnelResponseMetadata * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - FunnelFieldFilter.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + FunnelResponseMetadata.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.analytics.data.v1alpha.FunnelFieldFilter"; + return typeUrlPrefix + "/google.analytics.data.v1alpha.FunnelResponseMetadata"; }; - return FunnelFieldFilter; + return FunnelResponseMetadata; })(); - v1alpha.FunnelEventFilter = (function() { + v1alpha.SamplingMetadata = (function() { /** - * Properties of a FunnelEventFilter. + * Properties of a SamplingMetadata. * @memberof google.analytics.data.v1alpha - * @interface IFunnelEventFilter - * @property {string|null} [eventName] FunnelEventFilter eventName - * @property {google.analytics.data.v1alpha.IFunnelParameterFilterExpression|null} [funnelParameterFilterExpression] FunnelEventFilter funnelParameterFilterExpression + * @interface ISamplingMetadata + * @property {number|Long|null} [samplesReadCount] SamplingMetadata samplesReadCount + * @property {number|Long|null} [samplingSpaceSize] SamplingMetadata samplingSpaceSize */ /** - * Constructs a new FunnelEventFilter. + * Constructs a new SamplingMetadata. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a FunnelEventFilter. - * @implements IFunnelEventFilter + * @classdesc Represents a SamplingMetadata. + * @implements ISamplingMetadata * @constructor - * @param {google.analytics.data.v1alpha.IFunnelEventFilter=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.ISamplingMetadata=} [properties] Properties to set */ - function FunnelEventFilter(properties) { + function SamplingMetadata(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -41000,106 +44169,91 @@ } /** - * FunnelEventFilter eventName. - * @member {string|null|undefined} eventName - * @memberof google.analytics.data.v1alpha.FunnelEventFilter + * SamplingMetadata samplesReadCount. + * @member {number|Long} samplesReadCount + * @memberof google.analytics.data.v1alpha.SamplingMetadata * @instance */ - FunnelEventFilter.prototype.eventName = null; + SamplingMetadata.prototype.samplesReadCount = $util.Long ? $util.Long.fromBits(0,0,false) : 0; /** - * FunnelEventFilter funnelParameterFilterExpression. - * @member {google.analytics.data.v1alpha.IFunnelParameterFilterExpression|null|undefined} funnelParameterFilterExpression - * @memberof google.analytics.data.v1alpha.FunnelEventFilter + * SamplingMetadata samplingSpaceSize. + * @member {number|Long} samplingSpaceSize + * @memberof google.analytics.data.v1alpha.SamplingMetadata * @instance */ - FunnelEventFilter.prototype.funnelParameterFilterExpression = null; - - // OneOf field names bound to virtual getters and setters - var $oneOfFields; - - // Virtual OneOf for proto3 optional field - Object.defineProperty(FunnelEventFilter.prototype, "_eventName", { - get: $util.oneOfGetter($oneOfFields = ["eventName"]), - set: $util.oneOfSetter($oneOfFields) - }); - - // Virtual OneOf for proto3 optional field - Object.defineProperty(FunnelEventFilter.prototype, "_funnelParameterFilterExpression", { - get: $util.oneOfGetter($oneOfFields = ["funnelParameterFilterExpression"]), - set: $util.oneOfSetter($oneOfFields) - }); + SamplingMetadata.prototype.samplingSpaceSize = $util.Long ? $util.Long.fromBits(0,0,false) : 0; /** - * Creates a new FunnelEventFilter instance using the specified properties. + * Creates a new SamplingMetadata instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.FunnelEventFilter + * @memberof google.analytics.data.v1alpha.SamplingMetadata * @static - * @param {google.analytics.data.v1alpha.IFunnelEventFilter=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.FunnelEventFilter} FunnelEventFilter instance + * @param {google.analytics.data.v1alpha.ISamplingMetadata=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.SamplingMetadata} SamplingMetadata instance */ - FunnelEventFilter.create = function create(properties) { - return new FunnelEventFilter(properties); + SamplingMetadata.create = function create(properties) { + return new SamplingMetadata(properties); }; /** - * Encodes the specified FunnelEventFilter message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelEventFilter.verify|verify} messages. + * Encodes the specified SamplingMetadata message. Does not implicitly {@link google.analytics.data.v1alpha.SamplingMetadata.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.FunnelEventFilter + * @memberof google.analytics.data.v1alpha.SamplingMetadata * @static - * @param {google.analytics.data.v1alpha.IFunnelEventFilter} message FunnelEventFilter message or plain object to encode + * @param {google.analytics.data.v1alpha.ISamplingMetadata} message SamplingMetadata message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - FunnelEventFilter.encode = function encode(message, writer) { + SamplingMetadata.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.eventName != null && Object.hasOwnProperty.call(message, "eventName")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.eventName); - if (message.funnelParameterFilterExpression != null && Object.hasOwnProperty.call(message, "funnelParameterFilterExpression")) - $root.google.analytics.data.v1alpha.FunnelParameterFilterExpression.encode(message.funnelParameterFilterExpression, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.samplesReadCount != null && Object.hasOwnProperty.call(message, "samplesReadCount")) + writer.uint32(/* id 1, wireType 0 =*/8).int64(message.samplesReadCount); + if (message.samplingSpaceSize != null && Object.hasOwnProperty.call(message, "samplingSpaceSize")) + writer.uint32(/* id 2, wireType 0 =*/16).int64(message.samplingSpaceSize); return writer; }; /** - * Encodes the specified FunnelEventFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelEventFilter.verify|verify} messages. + * Encodes the specified SamplingMetadata message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SamplingMetadata.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.FunnelEventFilter + * @memberof google.analytics.data.v1alpha.SamplingMetadata * @static - * @param {google.analytics.data.v1alpha.IFunnelEventFilter} message FunnelEventFilter message or plain object to encode + * @param {google.analytics.data.v1alpha.ISamplingMetadata} message SamplingMetadata message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - FunnelEventFilter.encodeDelimited = function encodeDelimited(message, writer) { + SamplingMetadata.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a FunnelEventFilter message from the specified reader or buffer. + * Decodes a SamplingMetadata message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.FunnelEventFilter + * @memberof google.analytics.data.v1alpha.SamplingMetadata * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.FunnelEventFilter} FunnelEventFilter + * @returns {google.analytics.data.v1alpha.SamplingMetadata} SamplingMetadata * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - FunnelEventFilter.decode = function decode(reader, length, error) { + SamplingMetadata.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.FunnelEventFilter(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.SamplingMetadata(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { case 1: { - message.eventName = reader.string(); + message.samplesReadCount = reader.int64(); break; } case 2: { - message.funnelParameterFilterExpression = $root.google.analytics.data.v1alpha.FunnelParameterFilterExpression.decode(reader, reader.uint32()); + message.samplingSpaceSize = reader.int64(); break; } default: @@ -41111,147 +44265,251 @@ }; /** - * Decodes a FunnelEventFilter message from the specified reader or buffer, length delimited. + * Decodes a SamplingMetadata message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.FunnelEventFilter + * @memberof google.analytics.data.v1alpha.SamplingMetadata * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.FunnelEventFilter} FunnelEventFilter + * @returns {google.analytics.data.v1alpha.SamplingMetadata} SamplingMetadata * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - FunnelEventFilter.decodeDelimited = function decodeDelimited(reader) { + SamplingMetadata.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a FunnelEventFilter message. + * Verifies a SamplingMetadata message. * @function verify - * @memberof google.analytics.data.v1alpha.FunnelEventFilter + * @memberof google.analytics.data.v1alpha.SamplingMetadata * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - FunnelEventFilter.verify = function verify(message) { + SamplingMetadata.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - var properties = {}; - if (message.eventName != null && message.hasOwnProperty("eventName")) { - properties._eventName = 1; - if (!$util.isString(message.eventName)) - return "eventName: string expected"; - } - if (message.funnelParameterFilterExpression != null && message.hasOwnProperty("funnelParameterFilterExpression")) { - properties._funnelParameterFilterExpression = 1; - { - var error = $root.google.analytics.data.v1alpha.FunnelParameterFilterExpression.verify(message.funnelParameterFilterExpression); - if (error) - return "funnelParameterFilterExpression." + error; - } - } + if (message.samplesReadCount != null && message.hasOwnProperty("samplesReadCount")) + if (!$util.isInteger(message.samplesReadCount) && !(message.samplesReadCount && $util.isInteger(message.samplesReadCount.low) && $util.isInteger(message.samplesReadCount.high))) + return "samplesReadCount: integer|Long expected"; + if (message.samplingSpaceSize != null && message.hasOwnProperty("samplingSpaceSize")) + if (!$util.isInteger(message.samplingSpaceSize) && !(message.samplingSpaceSize && $util.isInteger(message.samplingSpaceSize.low) && $util.isInteger(message.samplingSpaceSize.high))) + return "samplingSpaceSize: integer|Long expected"; return null; }; /** - * Creates a FunnelEventFilter message from a plain object. Also converts values to their respective internal types. + * Creates a SamplingMetadata message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.FunnelEventFilter + * @memberof google.analytics.data.v1alpha.SamplingMetadata * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.FunnelEventFilter} FunnelEventFilter + * @returns {google.analytics.data.v1alpha.SamplingMetadata} SamplingMetadata */ - FunnelEventFilter.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.FunnelEventFilter) + SamplingMetadata.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.SamplingMetadata) return object; - var message = new $root.google.analytics.data.v1alpha.FunnelEventFilter(); - if (object.eventName != null) - message.eventName = String(object.eventName); - if (object.funnelParameterFilterExpression != null) { - if (typeof object.funnelParameterFilterExpression !== "object") - throw TypeError(".google.analytics.data.v1alpha.FunnelEventFilter.funnelParameterFilterExpression: object expected"); - message.funnelParameterFilterExpression = $root.google.analytics.data.v1alpha.FunnelParameterFilterExpression.fromObject(object.funnelParameterFilterExpression); - } + var message = new $root.google.analytics.data.v1alpha.SamplingMetadata(); + if (object.samplesReadCount != null) + if ($util.Long) + (message.samplesReadCount = $util.Long.fromValue(object.samplesReadCount)).unsigned = false; + else if (typeof object.samplesReadCount === "string") + message.samplesReadCount = parseInt(object.samplesReadCount, 10); + else if (typeof object.samplesReadCount === "number") + message.samplesReadCount = object.samplesReadCount; + else if (typeof object.samplesReadCount === "object") + message.samplesReadCount = new $util.LongBits(object.samplesReadCount.low >>> 0, object.samplesReadCount.high >>> 0).toNumber(); + if (object.samplingSpaceSize != null) + if ($util.Long) + (message.samplingSpaceSize = $util.Long.fromValue(object.samplingSpaceSize)).unsigned = false; + else if (typeof object.samplingSpaceSize === "string") + message.samplingSpaceSize = parseInt(object.samplingSpaceSize, 10); + else if (typeof object.samplingSpaceSize === "number") + message.samplingSpaceSize = object.samplingSpaceSize; + else if (typeof object.samplingSpaceSize === "object") + message.samplingSpaceSize = new $util.LongBits(object.samplingSpaceSize.low >>> 0, object.samplingSpaceSize.high >>> 0).toNumber(); return message; }; /** - * Creates a plain object from a FunnelEventFilter message. Also converts values to other types if specified. + * Creates a plain object from a SamplingMetadata message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.FunnelEventFilter + * @memberof google.analytics.data.v1alpha.SamplingMetadata * @static - * @param {google.analytics.data.v1alpha.FunnelEventFilter} message FunnelEventFilter + * @param {google.analytics.data.v1alpha.SamplingMetadata} message SamplingMetadata * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - FunnelEventFilter.toObject = function toObject(message, options) { + SamplingMetadata.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (message.eventName != null && message.hasOwnProperty("eventName")) { - object.eventName = message.eventName; - if (options.oneofs) - object._eventName = "eventName"; - } - if (message.funnelParameterFilterExpression != null && message.hasOwnProperty("funnelParameterFilterExpression")) { - object.funnelParameterFilterExpression = $root.google.analytics.data.v1alpha.FunnelParameterFilterExpression.toObject(message.funnelParameterFilterExpression, options); - if (options.oneofs) - object._funnelParameterFilterExpression = "funnelParameterFilterExpression"; + if (options.defaults) { + if ($util.Long) { + var long = new $util.Long(0, 0, false); + object.samplesReadCount = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.samplesReadCount = options.longs === String ? "0" : 0; + if ($util.Long) { + var long = new $util.Long(0, 0, false); + object.samplingSpaceSize = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.samplingSpaceSize = options.longs === String ? "0" : 0; } + if (message.samplesReadCount != null && message.hasOwnProperty("samplesReadCount")) + if (typeof message.samplesReadCount === "number") + object.samplesReadCount = options.longs === String ? String(message.samplesReadCount) : message.samplesReadCount; + else + object.samplesReadCount = options.longs === String ? $util.Long.prototype.toString.call(message.samplesReadCount) : options.longs === Number ? new $util.LongBits(message.samplesReadCount.low >>> 0, message.samplesReadCount.high >>> 0).toNumber() : message.samplesReadCount; + if (message.samplingSpaceSize != null && message.hasOwnProperty("samplingSpaceSize")) + if (typeof message.samplingSpaceSize === "number") + object.samplingSpaceSize = options.longs === String ? String(message.samplingSpaceSize) : message.samplingSpaceSize; + else + object.samplingSpaceSize = options.longs === String ? $util.Long.prototype.toString.call(message.samplingSpaceSize) : options.longs === Number ? new $util.LongBits(message.samplingSpaceSize.low >>> 0, message.samplingSpaceSize.high >>> 0).toNumber() : message.samplingSpaceSize; return object; }; /** - * Converts this FunnelEventFilter to JSON. + * Converts this SamplingMetadata to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.FunnelEventFilter + * @memberof google.analytics.data.v1alpha.SamplingMetadata * @instance * @returns {Object.} JSON object */ - FunnelEventFilter.prototype.toJSON = function toJSON() { + SamplingMetadata.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - /** - * Gets the default type url for FunnelEventFilter - * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.FunnelEventFilter - * @static - * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns {string} The default type url - */ - FunnelEventFilter.getTypeUrl = function getTypeUrl(typeUrlPrefix) { - if (typeUrlPrefix === undefined) { - typeUrlPrefix = "type.googleapis.com"; - } - return typeUrlPrefix + "/google.analytics.data.v1alpha.FunnelEventFilter"; - }; + /** + * Gets the default type url for SamplingMetadata + * @function getTypeUrl + * @memberof google.analytics.data.v1alpha.SamplingMetadata + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + SamplingMetadata.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.analytics.data.v1alpha.SamplingMetadata"; + }; + + return SamplingMetadata; + })(); + + /** + * MetricAggregation enum. + * @name google.analytics.data.v1alpha.MetricAggregation + * @enum {number} + * @property {number} METRIC_AGGREGATION_UNSPECIFIED=0 METRIC_AGGREGATION_UNSPECIFIED value + * @property {number} TOTAL=1 TOTAL value + * @property {number} MINIMUM=5 MINIMUM value + * @property {number} MAXIMUM=6 MAXIMUM value + * @property {number} COUNT=4 COUNT value + */ + v1alpha.MetricAggregation = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "METRIC_AGGREGATION_UNSPECIFIED"] = 0; + values[valuesById[1] = "TOTAL"] = 1; + values[valuesById[5] = "MINIMUM"] = 5; + values[valuesById[6] = "MAXIMUM"] = 6; + values[valuesById[4] = "COUNT"] = 4; + return values; + })(); + + /** + * MetricType enum. + * @name google.analytics.data.v1alpha.MetricType + * @enum {number} + * @property {number} METRIC_TYPE_UNSPECIFIED=0 METRIC_TYPE_UNSPECIFIED value + * @property {number} TYPE_INTEGER=1 TYPE_INTEGER value + * @property {number} TYPE_FLOAT=2 TYPE_FLOAT value + * @property {number} TYPE_SECONDS=4 TYPE_SECONDS value + * @property {number} TYPE_MILLISECONDS=5 TYPE_MILLISECONDS value + * @property {number} TYPE_MINUTES=6 TYPE_MINUTES value + * @property {number} TYPE_HOURS=7 TYPE_HOURS value + * @property {number} TYPE_STANDARD=8 TYPE_STANDARD value + * @property {number} TYPE_CURRENCY=9 TYPE_CURRENCY value + * @property {number} TYPE_FEET=10 TYPE_FEET value + * @property {number} TYPE_MILES=11 TYPE_MILES value + * @property {number} TYPE_METERS=12 TYPE_METERS value + * @property {number} TYPE_KILOMETERS=13 TYPE_KILOMETERS value + */ + v1alpha.MetricType = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "METRIC_TYPE_UNSPECIFIED"] = 0; + values[valuesById[1] = "TYPE_INTEGER"] = 1; + values[valuesById[2] = "TYPE_FLOAT"] = 2; + values[valuesById[4] = "TYPE_SECONDS"] = 4; + values[valuesById[5] = "TYPE_MILLISECONDS"] = 5; + values[valuesById[6] = "TYPE_MINUTES"] = 6; + values[valuesById[7] = "TYPE_HOURS"] = 7; + values[valuesById[8] = "TYPE_STANDARD"] = 8; + values[valuesById[9] = "TYPE_CURRENCY"] = 9; + values[valuesById[10] = "TYPE_FEET"] = 10; + values[valuesById[11] = "TYPE_MILES"] = 11; + values[valuesById[12] = "TYPE_METERS"] = 12; + values[valuesById[13] = "TYPE_KILOMETERS"] = 13; + return values; + })(); - return FunnelEventFilter; + /** + * RestrictedMetricType enum. + * @name google.analytics.data.v1alpha.RestrictedMetricType + * @enum {number} + * @property {number} RESTRICTED_METRIC_TYPE_UNSPECIFIED=0 RESTRICTED_METRIC_TYPE_UNSPECIFIED value + * @property {number} COST_DATA=1 COST_DATA value + * @property {number} REVENUE_DATA=2 REVENUE_DATA value + */ + v1alpha.RestrictedMetricType = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "RESTRICTED_METRIC_TYPE_UNSPECIFIED"] = 0; + values[valuesById[1] = "COST_DATA"] = 1; + values[valuesById[2] = "REVENUE_DATA"] = 2; + return values; })(); - v1alpha.FunnelParameterFilterExpression = (function() { + /** + * SamplingLevel enum. + * @name google.analytics.data.v1alpha.SamplingLevel + * @enum {number} + * @property {number} SAMPLING_LEVEL_UNSPECIFIED=0 SAMPLING_LEVEL_UNSPECIFIED value + * @property {number} LOW=1 LOW value + * @property {number} MEDIUM=2 MEDIUM value + * @property {number} UNSAMPLED=3 UNSAMPLED value + */ + v1alpha.SamplingLevel = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "SAMPLING_LEVEL_UNSPECIFIED"] = 0; + values[valuesById[1] = "LOW"] = 1; + values[valuesById[2] = "MEDIUM"] = 2; + values[valuesById[3] = "UNSAMPLED"] = 3; + return values; + })(); + + v1alpha.ConversionSpec = (function() { /** - * Properties of a FunnelParameterFilterExpression. + * Properties of a ConversionSpec. * @memberof google.analytics.data.v1alpha - * @interface IFunnelParameterFilterExpression - * @property {google.analytics.data.v1alpha.IFunnelParameterFilterExpressionList|null} [andGroup] FunnelParameterFilterExpression andGroup - * @property {google.analytics.data.v1alpha.IFunnelParameterFilterExpressionList|null} [orGroup] FunnelParameterFilterExpression orGroup - * @property {google.analytics.data.v1alpha.IFunnelParameterFilterExpression|null} [notExpression] FunnelParameterFilterExpression notExpression - * @property {google.analytics.data.v1alpha.IFunnelParameterFilter|null} [funnelParameterFilter] FunnelParameterFilterExpression funnelParameterFilter + * @interface IConversionSpec + * @property {Array.|null} [conversionActions] ConversionSpec conversionActions + * @property {google.analytics.data.v1alpha.ConversionSpec.AttributionModel|null} [attributionModel] ConversionSpec attributionModel */ /** - * Constructs a new FunnelParameterFilterExpression. + * Constructs a new ConversionSpec. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a FunnelParameterFilterExpression. - * @implements IFunnelParameterFilterExpression + * @classdesc Represents a ConversionSpec. + * @implements IConversionSpec * @constructor - * @param {google.analytics.data.v1alpha.IFunnelParameterFilterExpression=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IConversionSpec=} [properties] Properties to set */ - function FunnelParameterFilterExpression(properties) { + function ConversionSpec(properties) { + this.conversionActions = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -41259,133 +44517,94 @@ } /** - * FunnelParameterFilterExpression andGroup. - * @member {google.analytics.data.v1alpha.IFunnelParameterFilterExpressionList|null|undefined} andGroup - * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpression - * @instance - */ - FunnelParameterFilterExpression.prototype.andGroup = null; - - /** - * FunnelParameterFilterExpression orGroup. - * @member {google.analytics.data.v1alpha.IFunnelParameterFilterExpressionList|null|undefined} orGroup - * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpression - * @instance - */ - FunnelParameterFilterExpression.prototype.orGroup = null; - - /** - * FunnelParameterFilterExpression notExpression. - * @member {google.analytics.data.v1alpha.IFunnelParameterFilterExpression|null|undefined} notExpression - * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpression - * @instance - */ - FunnelParameterFilterExpression.prototype.notExpression = null; - - /** - * FunnelParameterFilterExpression funnelParameterFilter. - * @member {google.analytics.data.v1alpha.IFunnelParameterFilter|null|undefined} funnelParameterFilter - * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpression + * ConversionSpec conversionActions. + * @member {Array.} conversionActions + * @memberof google.analytics.data.v1alpha.ConversionSpec * @instance */ - FunnelParameterFilterExpression.prototype.funnelParameterFilter = null; - - // OneOf field names bound to virtual getters and setters - var $oneOfFields; + ConversionSpec.prototype.conversionActions = $util.emptyArray; /** - * FunnelParameterFilterExpression expr. - * @member {"andGroup"|"orGroup"|"notExpression"|"funnelParameterFilter"|undefined} expr - * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpression + * ConversionSpec attributionModel. + * @member {google.analytics.data.v1alpha.ConversionSpec.AttributionModel} attributionModel + * @memberof google.analytics.data.v1alpha.ConversionSpec * @instance */ - Object.defineProperty(FunnelParameterFilterExpression.prototype, "expr", { - get: $util.oneOfGetter($oneOfFields = ["andGroup", "orGroup", "notExpression", "funnelParameterFilter"]), - set: $util.oneOfSetter($oneOfFields) - }); + ConversionSpec.prototype.attributionModel = 0; /** - * Creates a new FunnelParameterFilterExpression instance using the specified properties. + * Creates a new ConversionSpec instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpression + * @memberof google.analytics.data.v1alpha.ConversionSpec * @static - * @param {google.analytics.data.v1alpha.IFunnelParameterFilterExpression=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.FunnelParameterFilterExpression} FunnelParameterFilterExpression instance + * @param {google.analytics.data.v1alpha.IConversionSpec=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.ConversionSpec} ConversionSpec instance */ - FunnelParameterFilterExpression.create = function create(properties) { - return new FunnelParameterFilterExpression(properties); + ConversionSpec.create = function create(properties) { + return new ConversionSpec(properties); }; /** - * Encodes the specified FunnelParameterFilterExpression message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelParameterFilterExpression.verify|verify} messages. + * Encodes the specified ConversionSpec message. Does not implicitly {@link google.analytics.data.v1alpha.ConversionSpec.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpression + * @memberof google.analytics.data.v1alpha.ConversionSpec * @static - * @param {google.analytics.data.v1alpha.IFunnelParameterFilterExpression} message FunnelParameterFilterExpression message or plain object to encode + * @param {google.analytics.data.v1alpha.IConversionSpec} message ConversionSpec message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - FunnelParameterFilterExpression.encode = function encode(message, writer) { + ConversionSpec.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.andGroup != null && Object.hasOwnProperty.call(message, "andGroup")) - $root.google.analytics.data.v1alpha.FunnelParameterFilterExpressionList.encode(message.andGroup, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.orGroup != null && Object.hasOwnProperty.call(message, "orGroup")) - $root.google.analytics.data.v1alpha.FunnelParameterFilterExpressionList.encode(message.orGroup, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.notExpression != null && Object.hasOwnProperty.call(message, "notExpression")) - $root.google.analytics.data.v1alpha.FunnelParameterFilterExpression.encode(message.notExpression, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); - if (message.funnelParameterFilter != null && Object.hasOwnProperty.call(message, "funnelParameterFilter")) - $root.google.analytics.data.v1alpha.FunnelParameterFilter.encode(message.funnelParameterFilter, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.conversionActions != null && message.conversionActions.length) + for (var i = 0; i < message.conversionActions.length; ++i) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.conversionActions[i]); + if (message.attributionModel != null && Object.hasOwnProperty.call(message, "attributionModel")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.attributionModel); return writer; }; /** - * Encodes the specified FunnelParameterFilterExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelParameterFilterExpression.verify|verify} messages. + * Encodes the specified ConversionSpec message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.ConversionSpec.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpression + * @memberof google.analytics.data.v1alpha.ConversionSpec * @static - * @param {google.analytics.data.v1alpha.IFunnelParameterFilterExpression} message FunnelParameterFilterExpression message or plain object to encode + * @param {google.analytics.data.v1alpha.IConversionSpec} message ConversionSpec message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - FunnelParameterFilterExpression.encodeDelimited = function encodeDelimited(message, writer) { + ConversionSpec.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a FunnelParameterFilterExpression message from the specified reader or buffer. + * Decodes a ConversionSpec message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpression + * @memberof google.analytics.data.v1alpha.ConversionSpec * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.FunnelParameterFilterExpression} FunnelParameterFilterExpression + * @returns {google.analytics.data.v1alpha.ConversionSpec} ConversionSpec * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - FunnelParameterFilterExpression.decode = function decode(reader, length, error) { + ConversionSpec.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.FunnelParameterFilterExpression(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.ConversionSpec(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { case 1: { - message.andGroup = $root.google.analytics.data.v1alpha.FunnelParameterFilterExpressionList.decode(reader, reader.uint32()); + if (!(message.conversionActions && message.conversionActions.length)) + message.conversionActions = []; + message.conversionActions.push(reader.string()); break; } case 2: { - message.orGroup = $root.google.analytics.data.v1alpha.FunnelParameterFilterExpressionList.decode(reader, reader.uint32()); - break; - } - case 3: { - message.notExpression = $root.google.analytics.data.v1alpha.FunnelParameterFilterExpression.decode(reader, reader.uint32()); - break; - } - case 4: { - message.funnelParameterFilter = $root.google.analytics.data.v1alpha.FunnelParameterFilter.decode(reader, reader.uint32()); + message.attributionModel = reader.int32(); break; } default: @@ -41397,193 +44616,191 @@ }; /** - * Decodes a FunnelParameterFilterExpression message from the specified reader or buffer, length delimited. + * Decodes a ConversionSpec message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpression + * @memberof google.analytics.data.v1alpha.ConversionSpec * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.FunnelParameterFilterExpression} FunnelParameterFilterExpression + * @returns {google.analytics.data.v1alpha.ConversionSpec} ConversionSpec * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - FunnelParameterFilterExpression.decodeDelimited = function decodeDelimited(reader) { + ConversionSpec.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a FunnelParameterFilterExpression message. + * Verifies a ConversionSpec message. * @function verify - * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpression + * @memberof google.analytics.data.v1alpha.ConversionSpec * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - FunnelParameterFilterExpression.verify = function verify(message) { + ConversionSpec.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - var properties = {}; - if (message.andGroup != null && message.hasOwnProperty("andGroup")) { - properties.expr = 1; - { - var error = $root.google.analytics.data.v1alpha.FunnelParameterFilterExpressionList.verify(message.andGroup); - if (error) - return "andGroup." + error; - } - } - if (message.orGroup != null && message.hasOwnProperty("orGroup")) { - if (properties.expr === 1) - return "expr: multiple values"; - properties.expr = 1; - { - var error = $root.google.analytics.data.v1alpha.FunnelParameterFilterExpressionList.verify(message.orGroup); - if (error) - return "orGroup." + error; - } - } - if (message.notExpression != null && message.hasOwnProperty("notExpression")) { - if (properties.expr === 1) - return "expr: multiple values"; - properties.expr = 1; - { - var error = $root.google.analytics.data.v1alpha.FunnelParameterFilterExpression.verify(message.notExpression); - if (error) - return "notExpression." + error; - } - } - if (message.funnelParameterFilter != null && message.hasOwnProperty("funnelParameterFilter")) { - if (properties.expr === 1) - return "expr: multiple values"; - properties.expr = 1; - { - var error = $root.google.analytics.data.v1alpha.FunnelParameterFilter.verify(message.funnelParameterFilter); - if (error) - return "funnelParameterFilter." + error; - } - } - return null; - }; - - /** - * Creates a FunnelParameterFilterExpression message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpression - * @static - * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.FunnelParameterFilterExpression} FunnelParameterFilterExpression - */ - FunnelParameterFilterExpression.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.FunnelParameterFilterExpression) - return object; - var message = new $root.google.analytics.data.v1alpha.FunnelParameterFilterExpression(); - if (object.andGroup != null) { - if (typeof object.andGroup !== "object") - throw TypeError(".google.analytics.data.v1alpha.FunnelParameterFilterExpression.andGroup: object expected"); - message.andGroup = $root.google.analytics.data.v1alpha.FunnelParameterFilterExpressionList.fromObject(object.andGroup); - } - if (object.orGroup != null) { - if (typeof object.orGroup !== "object") - throw TypeError(".google.analytics.data.v1alpha.FunnelParameterFilterExpression.orGroup: object expected"); - message.orGroup = $root.google.analytics.data.v1alpha.FunnelParameterFilterExpressionList.fromObject(object.orGroup); - } - if (object.notExpression != null) { - if (typeof object.notExpression !== "object") - throw TypeError(".google.analytics.data.v1alpha.FunnelParameterFilterExpression.notExpression: object expected"); - message.notExpression = $root.google.analytics.data.v1alpha.FunnelParameterFilterExpression.fromObject(object.notExpression); - } - if (object.funnelParameterFilter != null) { - if (typeof object.funnelParameterFilter !== "object") - throw TypeError(".google.analytics.data.v1alpha.FunnelParameterFilterExpression.funnelParameterFilter: object expected"); - message.funnelParameterFilter = $root.google.analytics.data.v1alpha.FunnelParameterFilter.fromObject(object.funnelParameterFilter); + if (message.conversionActions != null && message.hasOwnProperty("conversionActions")) { + if (!Array.isArray(message.conversionActions)) + return "conversionActions: array expected"; + for (var i = 0; i < message.conversionActions.length; ++i) + if (!$util.isString(message.conversionActions[i])) + return "conversionActions: string[] expected"; + } + if (message.attributionModel != null && message.hasOwnProperty("attributionModel")) + switch (message.attributionModel) { + default: + return "attributionModel: enum value expected"; + case 0: + case 1: + case 2: + break; + } + return null; + }; + + /** + * Creates a ConversionSpec message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1alpha.ConversionSpec + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1alpha.ConversionSpec} ConversionSpec + */ + ConversionSpec.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.ConversionSpec) + return object; + var message = new $root.google.analytics.data.v1alpha.ConversionSpec(); + if (object.conversionActions) { + if (!Array.isArray(object.conversionActions)) + throw TypeError(".google.analytics.data.v1alpha.ConversionSpec.conversionActions: array expected"); + message.conversionActions = []; + for (var i = 0; i < object.conversionActions.length; ++i) + message.conversionActions[i] = String(object.conversionActions[i]); + } + switch (object.attributionModel) { + default: + if (typeof object.attributionModel === "number") { + message.attributionModel = object.attributionModel; + break; + } + break; + case "ATTRIBUTION_MODEL_UNSPECIFIED": + case 0: + message.attributionModel = 0; + break; + case "DATA_DRIVEN": + case 1: + message.attributionModel = 1; + break; + case "LAST_CLICK": + case 2: + message.attributionModel = 2; + break; } return message; }; /** - * Creates a plain object from a FunnelParameterFilterExpression message. Also converts values to other types if specified. + * Creates a plain object from a ConversionSpec message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpression + * @memberof google.analytics.data.v1alpha.ConversionSpec * @static - * @param {google.analytics.data.v1alpha.FunnelParameterFilterExpression} message FunnelParameterFilterExpression + * @param {google.analytics.data.v1alpha.ConversionSpec} message ConversionSpec * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - FunnelParameterFilterExpression.toObject = function toObject(message, options) { + ConversionSpec.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (message.andGroup != null && message.hasOwnProperty("andGroup")) { - object.andGroup = $root.google.analytics.data.v1alpha.FunnelParameterFilterExpressionList.toObject(message.andGroup, options); - if (options.oneofs) - object.expr = "andGroup"; - } - if (message.orGroup != null && message.hasOwnProperty("orGroup")) { - object.orGroup = $root.google.analytics.data.v1alpha.FunnelParameterFilterExpressionList.toObject(message.orGroup, options); - if (options.oneofs) - object.expr = "orGroup"; - } - if (message.notExpression != null && message.hasOwnProperty("notExpression")) { - object.notExpression = $root.google.analytics.data.v1alpha.FunnelParameterFilterExpression.toObject(message.notExpression, options); - if (options.oneofs) - object.expr = "notExpression"; - } - if (message.funnelParameterFilter != null && message.hasOwnProperty("funnelParameterFilter")) { - object.funnelParameterFilter = $root.google.analytics.data.v1alpha.FunnelParameterFilter.toObject(message.funnelParameterFilter, options); - if (options.oneofs) - object.expr = "funnelParameterFilter"; - } + if (options.arrays || options.defaults) + object.conversionActions = []; + if (options.defaults) + object.attributionModel = options.enums === String ? "ATTRIBUTION_MODEL_UNSPECIFIED" : 0; + if (message.conversionActions && message.conversionActions.length) { + object.conversionActions = []; + for (var j = 0; j < message.conversionActions.length; ++j) + object.conversionActions[j] = message.conversionActions[j]; + } + if (message.attributionModel != null && message.hasOwnProperty("attributionModel")) + object.attributionModel = options.enums === String ? $root.google.analytics.data.v1alpha.ConversionSpec.AttributionModel[message.attributionModel] === undefined ? message.attributionModel : $root.google.analytics.data.v1alpha.ConversionSpec.AttributionModel[message.attributionModel] : message.attributionModel; return object; }; /** - * Converts this FunnelParameterFilterExpression to JSON. + * Converts this ConversionSpec to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpression + * @memberof google.analytics.data.v1alpha.ConversionSpec * @instance * @returns {Object.} JSON object */ - FunnelParameterFilterExpression.prototype.toJSON = function toJSON() { + ConversionSpec.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for FunnelParameterFilterExpression + * Gets the default type url for ConversionSpec * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpression + * @memberof google.analytics.data.v1alpha.ConversionSpec * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - FunnelParameterFilterExpression.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + ConversionSpec.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.analytics.data.v1alpha.FunnelParameterFilterExpression"; + return typeUrlPrefix + "/google.analytics.data.v1alpha.ConversionSpec"; }; - return FunnelParameterFilterExpression; + /** + * AttributionModel enum. + * @name google.analytics.data.v1alpha.ConversionSpec.AttributionModel + * @enum {number} + * @property {number} ATTRIBUTION_MODEL_UNSPECIFIED=0 ATTRIBUTION_MODEL_UNSPECIFIED value + * @property {number} DATA_DRIVEN=1 DATA_DRIVEN value + * @property {number} LAST_CLICK=2 LAST_CLICK value + */ + ConversionSpec.AttributionModel = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "ATTRIBUTION_MODEL_UNSPECIFIED"] = 0; + values[valuesById[1] = "DATA_DRIVEN"] = 1; + values[valuesById[2] = "LAST_CLICK"] = 2; + return values; + })(); + + return ConversionSpec; })(); - v1alpha.FunnelParameterFilterExpressionList = (function() { + v1alpha.DimensionMetadata = (function() { /** - * Properties of a FunnelParameterFilterExpressionList. + * Properties of a DimensionMetadata. * @memberof google.analytics.data.v1alpha - * @interface IFunnelParameterFilterExpressionList - * @property {Array.|null} [expressions] FunnelParameterFilterExpressionList expressions + * @interface IDimensionMetadata + * @property {string|null} [apiName] DimensionMetadata apiName + * @property {string|null} [uiName] DimensionMetadata uiName + * @property {string|null} [description] DimensionMetadata description + * @property {Array.|null} [deprecatedApiNames] DimensionMetadata deprecatedApiNames + * @property {boolean|null} [customDefinition] DimensionMetadata customDefinition + * @property {string|null} [category] DimensionMetadata category + * @property {Array.|null} [sections] DimensionMetadata sections */ /** - * Constructs a new FunnelParameterFilterExpressionList. + * Constructs a new DimensionMetadata. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a FunnelParameterFilterExpressionList. - * @implements IFunnelParameterFilterExpressionList + * @classdesc Represents a DimensionMetadata. + * @implements IDimensionMetadata * @constructor - * @param {google.analytics.data.v1alpha.IFunnelParameterFilterExpressionList=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IDimensionMetadata=} [properties] Properties to set */ - function FunnelParameterFilterExpressionList(properties) { - this.expressions = []; + function DimensionMetadata(properties) { + this.deprecatedApiNames = []; + this.sections = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -41591,80 +44808,175 @@ } /** - * FunnelParameterFilterExpressionList expressions. - * @member {Array.} expressions - * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpressionList + * DimensionMetadata apiName. + * @member {string} apiName + * @memberof google.analytics.data.v1alpha.DimensionMetadata * @instance */ - FunnelParameterFilterExpressionList.prototype.expressions = $util.emptyArray; + DimensionMetadata.prototype.apiName = ""; /** - * Creates a new FunnelParameterFilterExpressionList instance using the specified properties. + * DimensionMetadata uiName. + * @member {string} uiName + * @memberof google.analytics.data.v1alpha.DimensionMetadata + * @instance + */ + DimensionMetadata.prototype.uiName = ""; + + /** + * DimensionMetadata description. + * @member {string} description + * @memberof google.analytics.data.v1alpha.DimensionMetadata + * @instance + */ + DimensionMetadata.prototype.description = ""; + + /** + * DimensionMetadata deprecatedApiNames. + * @member {Array.} deprecatedApiNames + * @memberof google.analytics.data.v1alpha.DimensionMetadata + * @instance + */ + DimensionMetadata.prototype.deprecatedApiNames = $util.emptyArray; + + /** + * DimensionMetadata customDefinition. + * @member {boolean} customDefinition + * @memberof google.analytics.data.v1alpha.DimensionMetadata + * @instance + */ + DimensionMetadata.prototype.customDefinition = false; + + /** + * DimensionMetadata category. + * @member {string} category + * @memberof google.analytics.data.v1alpha.DimensionMetadata + * @instance + */ + DimensionMetadata.prototype.category = ""; + + /** + * DimensionMetadata sections. + * @member {Array.} sections + * @memberof google.analytics.data.v1alpha.DimensionMetadata + * @instance + */ + DimensionMetadata.prototype.sections = $util.emptyArray; + + /** + * Creates a new DimensionMetadata instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpressionList + * @memberof google.analytics.data.v1alpha.DimensionMetadata * @static - * @param {google.analytics.data.v1alpha.IFunnelParameterFilterExpressionList=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.FunnelParameterFilterExpressionList} FunnelParameterFilterExpressionList instance + * @param {google.analytics.data.v1alpha.IDimensionMetadata=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.DimensionMetadata} DimensionMetadata instance */ - FunnelParameterFilterExpressionList.create = function create(properties) { - return new FunnelParameterFilterExpressionList(properties); + DimensionMetadata.create = function create(properties) { + return new DimensionMetadata(properties); }; /** - * Encodes the specified FunnelParameterFilterExpressionList message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelParameterFilterExpressionList.verify|verify} messages. + * Encodes the specified DimensionMetadata message. Does not implicitly {@link google.analytics.data.v1alpha.DimensionMetadata.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpressionList + * @memberof google.analytics.data.v1alpha.DimensionMetadata * @static - * @param {google.analytics.data.v1alpha.IFunnelParameterFilterExpressionList} message FunnelParameterFilterExpressionList message or plain object to encode + * @param {google.analytics.data.v1alpha.IDimensionMetadata} message DimensionMetadata message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - FunnelParameterFilterExpressionList.encode = function encode(message, writer) { + DimensionMetadata.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.expressions != null && message.expressions.length) - for (var i = 0; i < message.expressions.length; ++i) - $root.google.analytics.data.v1alpha.FunnelParameterFilterExpression.encode(message.expressions[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.apiName != null && Object.hasOwnProperty.call(message, "apiName")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.apiName); + if (message.uiName != null && Object.hasOwnProperty.call(message, "uiName")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.uiName); + if (message.description != null && Object.hasOwnProperty.call(message, "description")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.description); + if (message.deprecatedApiNames != null && message.deprecatedApiNames.length) + for (var i = 0; i < message.deprecatedApiNames.length; ++i) + writer.uint32(/* id 4, wireType 2 =*/34).string(message.deprecatedApiNames[i]); + if (message.customDefinition != null && Object.hasOwnProperty.call(message, "customDefinition")) + writer.uint32(/* id 5, wireType 0 =*/40).bool(message.customDefinition); + if (message.category != null && Object.hasOwnProperty.call(message, "category")) + writer.uint32(/* id 6, wireType 2 =*/50).string(message.category); + if (message.sections != null && message.sections.length) { + writer.uint32(/* id 7, wireType 2 =*/58).fork(); + for (var i = 0; i < message.sections.length; ++i) + writer.int32(message.sections[i]); + writer.ldelim(); + } return writer; }; /** - * Encodes the specified FunnelParameterFilterExpressionList message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelParameterFilterExpressionList.verify|verify} messages. + * Encodes the specified DimensionMetadata message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.DimensionMetadata.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpressionList + * @memberof google.analytics.data.v1alpha.DimensionMetadata * @static - * @param {google.analytics.data.v1alpha.IFunnelParameterFilterExpressionList} message FunnelParameterFilterExpressionList message or plain object to encode + * @param {google.analytics.data.v1alpha.IDimensionMetadata} message DimensionMetadata message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - FunnelParameterFilterExpressionList.encodeDelimited = function encodeDelimited(message, writer) { + DimensionMetadata.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a FunnelParameterFilterExpressionList message from the specified reader or buffer. + * Decodes a DimensionMetadata message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpressionList + * @memberof google.analytics.data.v1alpha.DimensionMetadata * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.FunnelParameterFilterExpressionList} FunnelParameterFilterExpressionList + * @returns {google.analytics.data.v1alpha.DimensionMetadata} DimensionMetadata * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - FunnelParameterFilterExpressionList.decode = function decode(reader, length, error) { + DimensionMetadata.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.FunnelParameterFilterExpressionList(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.DimensionMetadata(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { case 1: { - if (!(message.expressions && message.expressions.length)) - message.expressions = []; - message.expressions.push($root.google.analytics.data.v1alpha.FunnelParameterFilterExpression.decode(reader, reader.uint32())); + message.apiName = reader.string(); + break; + } + case 2: { + message.uiName = reader.string(); + break; + } + case 3: { + message.description = reader.string(); + break; + } + case 4: { + if (!(message.deprecatedApiNames && message.deprecatedApiNames.length)) + message.deprecatedApiNames = []; + message.deprecatedApiNames.push(reader.string()); + break; + } + case 5: { + message.customDefinition = reader.bool(); + break; + } + case 6: { + message.category = reader.string(); + break; + } + case 7: { + if (!(message.sections && message.sections.length)) + message.sections = []; + if ((tag & 7) === 2) { + var end2 = reader.uint32() + reader.pos; + while (reader.pos < end2) + message.sections.push(reader.int32()); + } else + message.sections.push(reader.int32()); break; } default: @@ -41676,144 +44988,233 @@ }; /** - * Decodes a FunnelParameterFilterExpressionList message from the specified reader or buffer, length delimited. + * Decodes a DimensionMetadata message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpressionList + * @memberof google.analytics.data.v1alpha.DimensionMetadata * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.FunnelParameterFilterExpressionList} FunnelParameterFilterExpressionList + * @returns {google.analytics.data.v1alpha.DimensionMetadata} DimensionMetadata * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - FunnelParameterFilterExpressionList.decodeDelimited = function decodeDelimited(reader) { + DimensionMetadata.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a FunnelParameterFilterExpressionList message. + * Verifies a DimensionMetadata message. * @function verify - * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpressionList + * @memberof google.analytics.data.v1alpha.DimensionMetadata * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - FunnelParameterFilterExpressionList.verify = function verify(message) { + DimensionMetadata.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.expressions != null && message.hasOwnProperty("expressions")) { - if (!Array.isArray(message.expressions)) - return "expressions: array expected"; - for (var i = 0; i < message.expressions.length; ++i) { - var error = $root.google.analytics.data.v1alpha.FunnelParameterFilterExpression.verify(message.expressions[i]); - if (error) - return "expressions." + error; - } + if (message.apiName != null && message.hasOwnProperty("apiName")) + if (!$util.isString(message.apiName)) + return "apiName: string expected"; + if (message.uiName != null && message.hasOwnProperty("uiName")) + if (!$util.isString(message.uiName)) + return "uiName: string expected"; + if (message.description != null && message.hasOwnProperty("description")) + if (!$util.isString(message.description)) + return "description: string expected"; + if (message.deprecatedApiNames != null && message.hasOwnProperty("deprecatedApiNames")) { + if (!Array.isArray(message.deprecatedApiNames)) + return "deprecatedApiNames: array expected"; + for (var i = 0; i < message.deprecatedApiNames.length; ++i) + if (!$util.isString(message.deprecatedApiNames[i])) + return "deprecatedApiNames: string[] expected"; + } + if (message.customDefinition != null && message.hasOwnProperty("customDefinition")) + if (typeof message.customDefinition !== "boolean") + return "customDefinition: boolean expected"; + if (message.category != null && message.hasOwnProperty("category")) + if (!$util.isString(message.category)) + return "category: string expected"; + if (message.sections != null && message.hasOwnProperty("sections")) { + if (!Array.isArray(message.sections)) + return "sections: array expected"; + for (var i = 0; i < message.sections.length; ++i) + switch (message.sections[i]) { + default: + return "sections: enum value[] expected"; + case 0: + case 1: + case 2: + break; + } } return null; }; /** - * Creates a FunnelParameterFilterExpressionList message from a plain object. Also converts values to their respective internal types. + * Creates a DimensionMetadata message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpressionList + * @memberof google.analytics.data.v1alpha.DimensionMetadata * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.FunnelParameterFilterExpressionList} FunnelParameterFilterExpressionList + * @returns {google.analytics.data.v1alpha.DimensionMetadata} DimensionMetadata */ - FunnelParameterFilterExpressionList.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.FunnelParameterFilterExpressionList) + DimensionMetadata.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.DimensionMetadata) return object; - var message = new $root.google.analytics.data.v1alpha.FunnelParameterFilterExpressionList(); - if (object.expressions) { - if (!Array.isArray(object.expressions)) - throw TypeError(".google.analytics.data.v1alpha.FunnelParameterFilterExpressionList.expressions: array expected"); - message.expressions = []; - for (var i = 0; i < object.expressions.length; ++i) { - if (typeof object.expressions[i] !== "object") - throw TypeError(".google.analytics.data.v1alpha.FunnelParameterFilterExpressionList.expressions: object expected"); - message.expressions[i] = $root.google.analytics.data.v1alpha.FunnelParameterFilterExpression.fromObject(object.expressions[i]); - } + var message = new $root.google.analytics.data.v1alpha.DimensionMetadata(); + if (object.apiName != null) + message.apiName = String(object.apiName); + if (object.uiName != null) + message.uiName = String(object.uiName); + if (object.description != null) + message.description = String(object.description); + if (object.deprecatedApiNames) { + if (!Array.isArray(object.deprecatedApiNames)) + throw TypeError(".google.analytics.data.v1alpha.DimensionMetadata.deprecatedApiNames: array expected"); + message.deprecatedApiNames = []; + for (var i = 0; i < object.deprecatedApiNames.length; ++i) + message.deprecatedApiNames[i] = String(object.deprecatedApiNames[i]); + } + if (object.customDefinition != null) + message.customDefinition = Boolean(object.customDefinition); + if (object.category != null) + message.category = String(object.category); + if (object.sections) { + if (!Array.isArray(object.sections)) + throw TypeError(".google.analytics.data.v1alpha.DimensionMetadata.sections: array expected"); + message.sections = []; + for (var i = 0; i < object.sections.length; ++i) + switch (object.sections[i]) { + default: + if (typeof object.sections[i] === "number") { + message.sections[i] = object.sections[i]; + break; + } + case "SECTION_UNSPECIFIED": + case 0: + message.sections[i] = 0; + break; + case "SECTION_REPORT": + case 1: + message.sections[i] = 1; + break; + case "SECTION_ADVERTISING": + case 2: + message.sections[i] = 2; + break; + } } return message; }; /** - * Creates a plain object from a FunnelParameterFilterExpressionList message. Also converts values to other types if specified. + * Creates a plain object from a DimensionMetadata message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpressionList + * @memberof google.analytics.data.v1alpha.DimensionMetadata * @static - * @param {google.analytics.data.v1alpha.FunnelParameterFilterExpressionList} message FunnelParameterFilterExpressionList + * @param {google.analytics.data.v1alpha.DimensionMetadata} message DimensionMetadata * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - FunnelParameterFilterExpressionList.toObject = function toObject(message, options) { + DimensionMetadata.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.arrays || options.defaults) - object.expressions = []; - if (message.expressions && message.expressions.length) { - object.expressions = []; - for (var j = 0; j < message.expressions.length; ++j) - object.expressions[j] = $root.google.analytics.data.v1alpha.FunnelParameterFilterExpression.toObject(message.expressions[j], options); + if (options.arrays || options.defaults) { + object.deprecatedApiNames = []; + object.sections = []; + } + if (options.defaults) { + object.apiName = ""; + object.uiName = ""; + object.description = ""; + object.customDefinition = false; + object.category = ""; + } + if (message.apiName != null && message.hasOwnProperty("apiName")) + object.apiName = message.apiName; + if (message.uiName != null && message.hasOwnProperty("uiName")) + object.uiName = message.uiName; + if (message.description != null && message.hasOwnProperty("description")) + object.description = message.description; + if (message.deprecatedApiNames && message.deprecatedApiNames.length) { + object.deprecatedApiNames = []; + for (var j = 0; j < message.deprecatedApiNames.length; ++j) + object.deprecatedApiNames[j] = message.deprecatedApiNames[j]; + } + if (message.customDefinition != null && message.hasOwnProperty("customDefinition")) + object.customDefinition = message.customDefinition; + if (message.category != null && message.hasOwnProperty("category")) + object.category = message.category; + if (message.sections && message.sections.length) { + object.sections = []; + for (var j = 0; j < message.sections.length; ++j) + object.sections[j] = options.enums === String ? $root.google.analytics.data.v1alpha.Section[message.sections[j]] === undefined ? message.sections[j] : $root.google.analytics.data.v1alpha.Section[message.sections[j]] : message.sections[j]; } return object; }; /** - * Converts this FunnelParameterFilterExpressionList to JSON. + * Converts this DimensionMetadata to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpressionList + * @memberof google.analytics.data.v1alpha.DimensionMetadata * @instance * @returns {Object.} JSON object */ - FunnelParameterFilterExpressionList.prototype.toJSON = function toJSON() { + DimensionMetadata.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for FunnelParameterFilterExpressionList + * Gets the default type url for DimensionMetadata * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpressionList + * @memberof google.analytics.data.v1alpha.DimensionMetadata * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - FunnelParameterFilterExpressionList.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + DimensionMetadata.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.analytics.data.v1alpha.FunnelParameterFilterExpressionList"; + return typeUrlPrefix + "/google.analytics.data.v1alpha.DimensionMetadata"; }; - return FunnelParameterFilterExpressionList; + return DimensionMetadata; })(); - v1alpha.FunnelParameterFilter = (function() { + v1alpha.MetricMetadata = (function() { /** - * Properties of a FunnelParameterFilter. + * Properties of a MetricMetadata. * @memberof google.analytics.data.v1alpha - * @interface IFunnelParameterFilter - * @property {string|null} [eventParameterName] FunnelParameterFilter eventParameterName - * @property {string|null} [itemParameterName] FunnelParameterFilter itemParameterName - * @property {google.analytics.data.v1alpha.IStringFilter|null} [stringFilter] FunnelParameterFilter stringFilter - * @property {google.analytics.data.v1alpha.IInListFilter|null} [inListFilter] FunnelParameterFilter inListFilter - * @property {google.analytics.data.v1alpha.INumericFilter|null} [numericFilter] FunnelParameterFilter numericFilter - * @property {google.analytics.data.v1alpha.IBetweenFilter|null} [betweenFilter] FunnelParameterFilter betweenFilter + * @interface IMetricMetadata + * @property {string|null} [apiName] MetricMetadata apiName + * @property {string|null} [uiName] MetricMetadata uiName + * @property {string|null} [description] MetricMetadata description + * @property {Array.|null} [deprecatedApiNames] MetricMetadata deprecatedApiNames + * @property {google.analytics.data.v1alpha.MetricType|null} [type] MetricMetadata type + * @property {string|null} [expression] MetricMetadata expression + * @property {boolean|null} [customDefinition] MetricMetadata customDefinition + * @property {Array.|null} [blockedReasons] MetricMetadata blockedReasons + * @property {string|null} [category] MetricMetadata category + * @property {Array.|null} [sections] MetricMetadata sections */ /** - * Constructs a new FunnelParameterFilter. + * Constructs a new MetricMetadata. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a FunnelParameterFilter. - * @implements IFunnelParameterFilter + * @classdesc Represents a MetricMetadata. + * @implements IMetricMetadata * @constructor - * @param {google.analytics.data.v1alpha.IFunnelParameterFilter=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IMetricMetadata=} [properties] Properties to set */ - function FunnelParameterFilter(properties) { + function MetricMetadata(properties) { + this.deprecatedApiNames = []; + this.blockedReasons = []; + this.sections = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -41821,172 +45222,228 @@ } /** - * FunnelParameterFilter eventParameterName. - * @member {string|null|undefined} eventParameterName - * @memberof google.analytics.data.v1alpha.FunnelParameterFilter + * MetricMetadata apiName. + * @member {string} apiName + * @memberof google.analytics.data.v1alpha.MetricMetadata * @instance */ - FunnelParameterFilter.prototype.eventParameterName = null; + MetricMetadata.prototype.apiName = ""; /** - * FunnelParameterFilter itemParameterName. - * @member {string|null|undefined} itemParameterName - * @memberof google.analytics.data.v1alpha.FunnelParameterFilter + * MetricMetadata uiName. + * @member {string} uiName + * @memberof google.analytics.data.v1alpha.MetricMetadata * @instance */ - FunnelParameterFilter.prototype.itemParameterName = null; + MetricMetadata.prototype.uiName = ""; /** - * FunnelParameterFilter stringFilter. - * @member {google.analytics.data.v1alpha.IStringFilter|null|undefined} stringFilter - * @memberof google.analytics.data.v1alpha.FunnelParameterFilter + * MetricMetadata description. + * @member {string} description + * @memberof google.analytics.data.v1alpha.MetricMetadata * @instance */ - FunnelParameterFilter.prototype.stringFilter = null; + MetricMetadata.prototype.description = ""; /** - * FunnelParameterFilter inListFilter. - * @member {google.analytics.data.v1alpha.IInListFilter|null|undefined} inListFilter - * @memberof google.analytics.data.v1alpha.FunnelParameterFilter + * MetricMetadata deprecatedApiNames. + * @member {Array.} deprecatedApiNames + * @memberof google.analytics.data.v1alpha.MetricMetadata * @instance */ - FunnelParameterFilter.prototype.inListFilter = null; + MetricMetadata.prototype.deprecatedApiNames = $util.emptyArray; /** - * FunnelParameterFilter numericFilter. - * @member {google.analytics.data.v1alpha.INumericFilter|null|undefined} numericFilter - * @memberof google.analytics.data.v1alpha.FunnelParameterFilter + * MetricMetadata type. + * @member {google.analytics.data.v1alpha.MetricType} type + * @memberof google.analytics.data.v1alpha.MetricMetadata * @instance */ - FunnelParameterFilter.prototype.numericFilter = null; + MetricMetadata.prototype.type = 0; /** - * FunnelParameterFilter betweenFilter. - * @member {google.analytics.data.v1alpha.IBetweenFilter|null|undefined} betweenFilter - * @memberof google.analytics.data.v1alpha.FunnelParameterFilter + * MetricMetadata expression. + * @member {string} expression + * @memberof google.analytics.data.v1alpha.MetricMetadata * @instance */ - FunnelParameterFilter.prototype.betweenFilter = null; + MetricMetadata.prototype.expression = ""; - // OneOf field names bound to virtual getters and setters - var $oneOfFields; + /** + * MetricMetadata customDefinition. + * @member {boolean} customDefinition + * @memberof google.analytics.data.v1alpha.MetricMetadata + * @instance + */ + MetricMetadata.prototype.customDefinition = false; /** - * FunnelParameterFilter oneParameter. - * @member {"eventParameterName"|"itemParameterName"|undefined} oneParameter - * @memberof google.analytics.data.v1alpha.FunnelParameterFilter + * MetricMetadata blockedReasons. + * @member {Array.} blockedReasons + * @memberof google.analytics.data.v1alpha.MetricMetadata * @instance */ - Object.defineProperty(FunnelParameterFilter.prototype, "oneParameter", { - get: $util.oneOfGetter($oneOfFields = ["eventParameterName", "itemParameterName"]), - set: $util.oneOfSetter($oneOfFields) - }); + MetricMetadata.prototype.blockedReasons = $util.emptyArray; /** - * FunnelParameterFilter oneFilter. - * @member {"stringFilter"|"inListFilter"|"numericFilter"|"betweenFilter"|undefined} oneFilter - * @memberof google.analytics.data.v1alpha.FunnelParameterFilter + * MetricMetadata category. + * @member {string} category + * @memberof google.analytics.data.v1alpha.MetricMetadata * @instance */ - Object.defineProperty(FunnelParameterFilter.prototype, "oneFilter", { - get: $util.oneOfGetter($oneOfFields = ["stringFilter", "inListFilter", "numericFilter", "betweenFilter"]), - set: $util.oneOfSetter($oneOfFields) - }); + MetricMetadata.prototype.category = ""; /** - * Creates a new FunnelParameterFilter instance using the specified properties. + * MetricMetadata sections. + * @member {Array.} sections + * @memberof google.analytics.data.v1alpha.MetricMetadata + * @instance + */ + MetricMetadata.prototype.sections = $util.emptyArray; + + /** + * Creates a new MetricMetadata instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.FunnelParameterFilter + * @memberof google.analytics.data.v1alpha.MetricMetadata * @static - * @param {google.analytics.data.v1alpha.IFunnelParameterFilter=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.FunnelParameterFilter} FunnelParameterFilter instance + * @param {google.analytics.data.v1alpha.IMetricMetadata=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.MetricMetadata} MetricMetadata instance */ - FunnelParameterFilter.create = function create(properties) { - return new FunnelParameterFilter(properties); + MetricMetadata.create = function create(properties) { + return new MetricMetadata(properties); }; /** - * Encodes the specified FunnelParameterFilter message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelParameterFilter.verify|verify} messages. + * Encodes the specified MetricMetadata message. Does not implicitly {@link google.analytics.data.v1alpha.MetricMetadata.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.FunnelParameterFilter + * @memberof google.analytics.data.v1alpha.MetricMetadata * @static - * @param {google.analytics.data.v1alpha.IFunnelParameterFilter} message FunnelParameterFilter message or plain object to encode + * @param {google.analytics.data.v1alpha.IMetricMetadata} message MetricMetadata message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - FunnelParameterFilter.encode = function encode(message, writer) { + MetricMetadata.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.eventParameterName != null && Object.hasOwnProperty.call(message, "eventParameterName")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.eventParameterName); - if (message.itemParameterName != null && Object.hasOwnProperty.call(message, "itemParameterName")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.itemParameterName); - if (message.stringFilter != null && Object.hasOwnProperty.call(message, "stringFilter")) - $root.google.analytics.data.v1alpha.StringFilter.encode(message.stringFilter, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); - if (message.inListFilter != null && Object.hasOwnProperty.call(message, "inListFilter")) - $root.google.analytics.data.v1alpha.InListFilter.encode(message.inListFilter, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); - if (message.numericFilter != null && Object.hasOwnProperty.call(message, "numericFilter")) - $root.google.analytics.data.v1alpha.NumericFilter.encode(message.numericFilter, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); - if (message.betweenFilter != null && Object.hasOwnProperty.call(message, "betweenFilter")) - $root.google.analytics.data.v1alpha.BetweenFilter.encode(message.betweenFilter, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); + if (message.apiName != null && Object.hasOwnProperty.call(message, "apiName")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.apiName); + if (message.uiName != null && Object.hasOwnProperty.call(message, "uiName")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.uiName); + if (message.description != null && Object.hasOwnProperty.call(message, "description")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.description); + if (message.deprecatedApiNames != null && message.deprecatedApiNames.length) + for (var i = 0; i < message.deprecatedApiNames.length; ++i) + writer.uint32(/* id 4, wireType 2 =*/34).string(message.deprecatedApiNames[i]); + if (message.type != null && Object.hasOwnProperty.call(message, "type")) + writer.uint32(/* id 5, wireType 0 =*/40).int32(message.type); + if (message.expression != null && Object.hasOwnProperty.call(message, "expression")) + writer.uint32(/* id 6, wireType 2 =*/50).string(message.expression); + if (message.customDefinition != null && Object.hasOwnProperty.call(message, "customDefinition")) + writer.uint32(/* id 7, wireType 0 =*/56).bool(message.customDefinition); + if (message.blockedReasons != null && message.blockedReasons.length) { + writer.uint32(/* id 8, wireType 2 =*/66).fork(); + for (var i = 0; i < message.blockedReasons.length; ++i) + writer.int32(message.blockedReasons[i]); + writer.ldelim(); + } + if (message.category != null && Object.hasOwnProperty.call(message, "category")) + writer.uint32(/* id 9, wireType 2 =*/74).string(message.category); + if (message.sections != null && message.sections.length) { + writer.uint32(/* id 10, wireType 2 =*/82).fork(); + for (var i = 0; i < message.sections.length; ++i) + writer.int32(message.sections[i]); + writer.ldelim(); + } return writer; }; /** - * Encodes the specified FunnelParameterFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelParameterFilter.verify|verify} messages. + * Encodes the specified MetricMetadata message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.MetricMetadata.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.FunnelParameterFilter + * @memberof google.analytics.data.v1alpha.MetricMetadata * @static - * @param {google.analytics.data.v1alpha.IFunnelParameterFilter} message FunnelParameterFilter message or plain object to encode + * @param {google.analytics.data.v1alpha.IMetricMetadata} message MetricMetadata message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - FunnelParameterFilter.encodeDelimited = function encodeDelimited(message, writer) { + MetricMetadata.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a FunnelParameterFilter message from the specified reader or buffer. + * Decodes a MetricMetadata message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.FunnelParameterFilter + * @memberof google.analytics.data.v1alpha.MetricMetadata * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.FunnelParameterFilter} FunnelParameterFilter + * @returns {google.analytics.data.v1alpha.MetricMetadata} MetricMetadata * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - FunnelParameterFilter.decode = function decode(reader, length, error) { + MetricMetadata.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.FunnelParameterFilter(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.MetricMetadata(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { case 1: { - message.eventParameterName = reader.string(); + message.apiName = reader.string(); break; } case 2: { - message.itemParameterName = reader.string(); + message.uiName = reader.string(); + break; + } + case 3: { + message.description = reader.string(); break; } case 4: { - message.stringFilter = $root.google.analytics.data.v1alpha.StringFilter.decode(reader, reader.uint32()); + if (!(message.deprecatedApiNames && message.deprecatedApiNames.length)) + message.deprecatedApiNames = []; + message.deprecatedApiNames.push(reader.string()); break; } case 5: { - message.inListFilter = $root.google.analytics.data.v1alpha.InListFilter.decode(reader, reader.uint32()); + message.type = reader.int32(); break; } case 6: { - message.numericFilter = $root.google.analytics.data.v1alpha.NumericFilter.decode(reader, reader.uint32()); + message.expression = reader.string(); break; } case 7: { - message.betweenFilter = $root.google.analytics.data.v1alpha.BetweenFilter.decode(reader, reader.uint32()); + message.customDefinition = reader.bool(); + break; + } + case 8: { + if (!(message.blockedReasons && message.blockedReasons.length)) + message.blockedReasons = []; + if ((tag & 7) === 2) { + var end2 = reader.uint32() + reader.pos; + while (reader.pos < end2) + message.blockedReasons.push(reader.int32()); + } else + message.blockedReasons.push(reader.int32()); + break; + } + case 9: { + message.category = reader.string(); + break; + } + case 10: { + if (!(message.sections && message.sections.length)) + message.sections = []; + if ((tag & 7) === 2) { + var end2 = reader.uint32() + reader.pos; + while (reader.pos < end2) + message.sections.push(reader.int32()); + } else + message.sections.push(reader.int32()); break; } default: @@ -41998,219 +45455,373 @@ }; /** - * Decodes a FunnelParameterFilter message from the specified reader or buffer, length delimited. + * Decodes a MetricMetadata message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.FunnelParameterFilter + * @memberof google.analytics.data.v1alpha.MetricMetadata * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.FunnelParameterFilter} FunnelParameterFilter + * @returns {google.analytics.data.v1alpha.MetricMetadata} MetricMetadata * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - FunnelParameterFilter.decodeDelimited = function decodeDelimited(reader) { + MetricMetadata.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a FunnelParameterFilter message. + * Verifies a MetricMetadata message. * @function verify - * @memberof google.analytics.data.v1alpha.FunnelParameterFilter + * @memberof google.analytics.data.v1alpha.MetricMetadata * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - FunnelParameterFilter.verify = function verify(message) { + MetricMetadata.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - var properties = {}; - if (message.eventParameterName != null && message.hasOwnProperty("eventParameterName")) { - properties.oneParameter = 1; - if (!$util.isString(message.eventParameterName)) - return "eventParameterName: string expected"; - } - if (message.itemParameterName != null && message.hasOwnProperty("itemParameterName")) { - if (properties.oneParameter === 1) - return "oneParameter: multiple values"; - properties.oneParameter = 1; - if (!$util.isString(message.itemParameterName)) - return "itemParameterName: string expected"; - } - if (message.stringFilter != null && message.hasOwnProperty("stringFilter")) { - properties.oneFilter = 1; - { - var error = $root.google.analytics.data.v1alpha.StringFilter.verify(message.stringFilter); - if (error) - return "stringFilter." + error; - } - } - if (message.inListFilter != null && message.hasOwnProperty("inListFilter")) { - if (properties.oneFilter === 1) - return "oneFilter: multiple values"; - properties.oneFilter = 1; - { - var error = $root.google.analytics.data.v1alpha.InListFilter.verify(message.inListFilter); - if (error) - return "inListFilter." + error; - } + if (message.apiName != null && message.hasOwnProperty("apiName")) + if (!$util.isString(message.apiName)) + return "apiName: string expected"; + if (message.uiName != null && message.hasOwnProperty("uiName")) + if (!$util.isString(message.uiName)) + return "uiName: string expected"; + if (message.description != null && message.hasOwnProperty("description")) + if (!$util.isString(message.description)) + return "description: string expected"; + if (message.deprecatedApiNames != null && message.hasOwnProperty("deprecatedApiNames")) { + if (!Array.isArray(message.deprecatedApiNames)) + return "deprecatedApiNames: array expected"; + for (var i = 0; i < message.deprecatedApiNames.length; ++i) + if (!$util.isString(message.deprecatedApiNames[i])) + return "deprecatedApiNames: string[] expected"; } - if (message.numericFilter != null && message.hasOwnProperty("numericFilter")) { - if (properties.oneFilter === 1) - return "oneFilter: multiple values"; - properties.oneFilter = 1; - { - var error = $root.google.analytics.data.v1alpha.NumericFilter.verify(message.numericFilter); - if (error) - return "numericFilter." + error; + if (message.type != null && message.hasOwnProperty("type")) + switch (message.type) { + default: + return "type: enum value expected"; + case 0: + case 1: + case 2: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + break; } + if (message.expression != null && message.hasOwnProperty("expression")) + if (!$util.isString(message.expression)) + return "expression: string expected"; + if (message.customDefinition != null && message.hasOwnProperty("customDefinition")) + if (typeof message.customDefinition !== "boolean") + return "customDefinition: boolean expected"; + if (message.blockedReasons != null && message.hasOwnProperty("blockedReasons")) { + if (!Array.isArray(message.blockedReasons)) + return "blockedReasons: array expected"; + for (var i = 0; i < message.blockedReasons.length; ++i) + switch (message.blockedReasons[i]) { + default: + return "blockedReasons: enum value[] expected"; + case 0: + case 1: + case 2: + break; + } } - if (message.betweenFilter != null && message.hasOwnProperty("betweenFilter")) { - if (properties.oneFilter === 1) - return "oneFilter: multiple values"; - properties.oneFilter = 1; - { - var error = $root.google.analytics.data.v1alpha.BetweenFilter.verify(message.betweenFilter); - if (error) - return "betweenFilter." + error; - } + if (message.category != null && message.hasOwnProperty("category")) + if (!$util.isString(message.category)) + return "category: string expected"; + if (message.sections != null && message.hasOwnProperty("sections")) { + if (!Array.isArray(message.sections)) + return "sections: array expected"; + for (var i = 0; i < message.sections.length; ++i) + switch (message.sections[i]) { + default: + return "sections: enum value[] expected"; + case 0: + case 1: + case 2: + break; + } } return null; }; /** - * Creates a FunnelParameterFilter message from a plain object. Also converts values to their respective internal types. + * Creates a MetricMetadata message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.FunnelParameterFilter + * @memberof google.analytics.data.v1alpha.MetricMetadata * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.FunnelParameterFilter} FunnelParameterFilter + * @returns {google.analytics.data.v1alpha.MetricMetadata} MetricMetadata */ - FunnelParameterFilter.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.FunnelParameterFilter) + MetricMetadata.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.MetricMetadata) return object; - var message = new $root.google.analytics.data.v1alpha.FunnelParameterFilter(); - if (object.eventParameterName != null) - message.eventParameterName = String(object.eventParameterName); - if (object.itemParameterName != null) - message.itemParameterName = String(object.itemParameterName); - if (object.stringFilter != null) { - if (typeof object.stringFilter !== "object") - throw TypeError(".google.analytics.data.v1alpha.FunnelParameterFilter.stringFilter: object expected"); - message.stringFilter = $root.google.analytics.data.v1alpha.StringFilter.fromObject(object.stringFilter); + var message = new $root.google.analytics.data.v1alpha.MetricMetadata(); + if (object.apiName != null) + message.apiName = String(object.apiName); + if (object.uiName != null) + message.uiName = String(object.uiName); + if (object.description != null) + message.description = String(object.description); + if (object.deprecatedApiNames) { + if (!Array.isArray(object.deprecatedApiNames)) + throw TypeError(".google.analytics.data.v1alpha.MetricMetadata.deprecatedApiNames: array expected"); + message.deprecatedApiNames = []; + for (var i = 0; i < object.deprecatedApiNames.length; ++i) + message.deprecatedApiNames[i] = String(object.deprecatedApiNames[i]); } - if (object.inListFilter != null) { - if (typeof object.inListFilter !== "object") - throw TypeError(".google.analytics.data.v1alpha.FunnelParameterFilter.inListFilter: object expected"); - message.inListFilter = $root.google.analytics.data.v1alpha.InListFilter.fromObject(object.inListFilter); + switch (object.type) { + default: + if (typeof object.type === "number") { + message.type = object.type; + break; + } + break; + case "METRIC_TYPE_UNSPECIFIED": + case 0: + message.type = 0; + break; + case "TYPE_INTEGER": + case 1: + message.type = 1; + break; + case "TYPE_FLOAT": + case 2: + message.type = 2; + break; + case "TYPE_SECONDS": + case 4: + message.type = 4; + break; + case "TYPE_MILLISECONDS": + case 5: + message.type = 5; + break; + case "TYPE_MINUTES": + case 6: + message.type = 6; + break; + case "TYPE_HOURS": + case 7: + message.type = 7; + break; + case "TYPE_STANDARD": + case 8: + message.type = 8; + break; + case "TYPE_CURRENCY": + case 9: + message.type = 9; + break; + case "TYPE_FEET": + case 10: + message.type = 10; + break; + case "TYPE_MILES": + case 11: + message.type = 11; + break; + case "TYPE_METERS": + case 12: + message.type = 12; + break; + case "TYPE_KILOMETERS": + case 13: + message.type = 13; + break; } - if (object.numericFilter != null) { - if (typeof object.numericFilter !== "object") - throw TypeError(".google.analytics.data.v1alpha.FunnelParameterFilter.numericFilter: object expected"); - message.numericFilter = $root.google.analytics.data.v1alpha.NumericFilter.fromObject(object.numericFilter); + if (object.expression != null) + message.expression = String(object.expression); + if (object.customDefinition != null) + message.customDefinition = Boolean(object.customDefinition); + if (object.blockedReasons) { + if (!Array.isArray(object.blockedReasons)) + throw TypeError(".google.analytics.data.v1alpha.MetricMetadata.blockedReasons: array expected"); + message.blockedReasons = []; + for (var i = 0; i < object.blockedReasons.length; ++i) + switch (object.blockedReasons[i]) { + default: + if (typeof object.blockedReasons[i] === "number") { + message.blockedReasons[i] = object.blockedReasons[i]; + break; + } + case "BLOCKED_REASON_UNSPECIFIED": + case 0: + message.blockedReasons[i] = 0; + break; + case "NO_REVENUE_METRICS": + case 1: + message.blockedReasons[i] = 1; + break; + case "NO_COST_METRICS": + case 2: + message.blockedReasons[i] = 2; + break; + } } - if (object.betweenFilter != null) { - if (typeof object.betweenFilter !== "object") - throw TypeError(".google.analytics.data.v1alpha.FunnelParameterFilter.betweenFilter: object expected"); - message.betweenFilter = $root.google.analytics.data.v1alpha.BetweenFilter.fromObject(object.betweenFilter); + if (object.category != null) + message.category = String(object.category); + if (object.sections) { + if (!Array.isArray(object.sections)) + throw TypeError(".google.analytics.data.v1alpha.MetricMetadata.sections: array expected"); + message.sections = []; + for (var i = 0; i < object.sections.length; ++i) + switch (object.sections[i]) { + default: + if (typeof object.sections[i] === "number") { + message.sections[i] = object.sections[i]; + break; + } + case "SECTION_UNSPECIFIED": + case 0: + message.sections[i] = 0; + break; + case "SECTION_REPORT": + case 1: + message.sections[i] = 1; + break; + case "SECTION_ADVERTISING": + case 2: + message.sections[i] = 2; + break; + } } return message; }; /** - * Creates a plain object from a FunnelParameterFilter message. Also converts values to other types if specified. + * Creates a plain object from a MetricMetadata message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.FunnelParameterFilter + * @memberof google.analytics.data.v1alpha.MetricMetadata * @static - * @param {google.analytics.data.v1alpha.FunnelParameterFilter} message FunnelParameterFilter + * @param {google.analytics.data.v1alpha.MetricMetadata} message MetricMetadata * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - FunnelParameterFilter.toObject = function toObject(message, options) { + MetricMetadata.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (message.eventParameterName != null && message.hasOwnProperty("eventParameterName")) { - object.eventParameterName = message.eventParameterName; - if (options.oneofs) - object.oneParameter = "eventParameterName"; - } - if (message.itemParameterName != null && message.hasOwnProperty("itemParameterName")) { - object.itemParameterName = message.itemParameterName; - if (options.oneofs) - object.oneParameter = "itemParameterName"; + if (options.arrays || options.defaults) { + object.deprecatedApiNames = []; + object.blockedReasons = []; + object.sections = []; } - if (message.stringFilter != null && message.hasOwnProperty("stringFilter")) { - object.stringFilter = $root.google.analytics.data.v1alpha.StringFilter.toObject(message.stringFilter, options); - if (options.oneofs) - object.oneFilter = "stringFilter"; + if (options.defaults) { + object.apiName = ""; + object.uiName = ""; + object.description = ""; + object.type = options.enums === String ? "METRIC_TYPE_UNSPECIFIED" : 0; + object.expression = ""; + object.customDefinition = false; + object.category = ""; } - if (message.inListFilter != null && message.hasOwnProperty("inListFilter")) { - object.inListFilter = $root.google.analytics.data.v1alpha.InListFilter.toObject(message.inListFilter, options); - if (options.oneofs) - object.oneFilter = "inListFilter"; + if (message.apiName != null && message.hasOwnProperty("apiName")) + object.apiName = message.apiName; + if (message.uiName != null && message.hasOwnProperty("uiName")) + object.uiName = message.uiName; + if (message.description != null && message.hasOwnProperty("description")) + object.description = message.description; + if (message.deprecatedApiNames && message.deprecatedApiNames.length) { + object.deprecatedApiNames = []; + for (var j = 0; j < message.deprecatedApiNames.length; ++j) + object.deprecatedApiNames[j] = message.deprecatedApiNames[j]; } - if (message.numericFilter != null && message.hasOwnProperty("numericFilter")) { - object.numericFilter = $root.google.analytics.data.v1alpha.NumericFilter.toObject(message.numericFilter, options); - if (options.oneofs) - object.oneFilter = "numericFilter"; + if (message.type != null && message.hasOwnProperty("type")) + object.type = options.enums === String ? $root.google.analytics.data.v1alpha.MetricType[message.type] === undefined ? message.type : $root.google.analytics.data.v1alpha.MetricType[message.type] : message.type; + if (message.expression != null && message.hasOwnProperty("expression")) + object.expression = message.expression; + if (message.customDefinition != null && message.hasOwnProperty("customDefinition")) + object.customDefinition = message.customDefinition; + if (message.blockedReasons && message.blockedReasons.length) { + object.blockedReasons = []; + for (var j = 0; j < message.blockedReasons.length; ++j) + object.blockedReasons[j] = options.enums === String ? $root.google.analytics.data.v1alpha.MetricMetadata.BlockedReason[message.blockedReasons[j]] === undefined ? message.blockedReasons[j] : $root.google.analytics.data.v1alpha.MetricMetadata.BlockedReason[message.blockedReasons[j]] : message.blockedReasons[j]; } - if (message.betweenFilter != null && message.hasOwnProperty("betweenFilter")) { - object.betweenFilter = $root.google.analytics.data.v1alpha.BetweenFilter.toObject(message.betweenFilter, options); - if (options.oneofs) - object.oneFilter = "betweenFilter"; + if (message.category != null && message.hasOwnProperty("category")) + object.category = message.category; + if (message.sections && message.sections.length) { + object.sections = []; + for (var j = 0; j < message.sections.length; ++j) + object.sections[j] = options.enums === String ? $root.google.analytics.data.v1alpha.Section[message.sections[j]] === undefined ? message.sections[j] : $root.google.analytics.data.v1alpha.Section[message.sections[j]] : message.sections[j]; } return object; }; /** - * Converts this FunnelParameterFilter to JSON. + * Converts this MetricMetadata to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.FunnelParameterFilter + * @memberof google.analytics.data.v1alpha.MetricMetadata * @instance * @returns {Object.} JSON object */ - FunnelParameterFilter.prototype.toJSON = function toJSON() { + MetricMetadata.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for FunnelParameterFilter + * Gets the default type url for MetricMetadata * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.FunnelParameterFilter + * @memberof google.analytics.data.v1alpha.MetricMetadata * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - FunnelParameterFilter.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + MetricMetadata.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.analytics.data.v1alpha.FunnelParameterFilter"; + return typeUrlPrefix + "/google.analytics.data.v1alpha.MetricMetadata"; }; - return FunnelParameterFilter; + /** + * BlockedReason enum. + * @name google.analytics.data.v1alpha.MetricMetadata.BlockedReason + * @enum {number} + * @property {number} BLOCKED_REASON_UNSPECIFIED=0 BLOCKED_REASON_UNSPECIFIED value + * @property {number} NO_REVENUE_METRICS=1 NO_REVENUE_METRICS value + * @property {number} NO_COST_METRICS=2 NO_COST_METRICS value + */ + MetricMetadata.BlockedReason = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "BLOCKED_REASON_UNSPECIFIED"] = 0; + values[valuesById[1] = "NO_REVENUE_METRICS"] = 1; + values[valuesById[2] = "NO_COST_METRICS"] = 2; + return values; + })(); + + return MetricMetadata; })(); - v1alpha.FunnelResponseMetadata = (function() { + v1alpha.ComparisonMetadata = (function() { /** - * Properties of a FunnelResponseMetadata. + * Properties of a ComparisonMetadata. * @memberof google.analytics.data.v1alpha - * @interface IFunnelResponseMetadata - * @property {Array.|null} [samplingMetadatas] FunnelResponseMetadata samplingMetadatas + * @interface IComparisonMetadata + * @property {string|null} [apiName] ComparisonMetadata apiName + * @property {string|null} [uiName] ComparisonMetadata uiName + * @property {string|null} [description] ComparisonMetadata description */ /** - * Constructs a new FunnelResponseMetadata. + * Constructs a new ComparisonMetadata. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a FunnelResponseMetadata. - * @implements IFunnelResponseMetadata + * @classdesc Represents a ComparisonMetadata. + * @implements IComparisonMetadata * @constructor - * @param {google.analytics.data.v1alpha.IFunnelResponseMetadata=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IComparisonMetadata=} [properties] Properties to set */ - function FunnelResponseMetadata(properties) { - this.samplingMetadatas = []; + function ComparisonMetadata(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -42218,80 +45829,105 @@ } /** - * FunnelResponseMetadata samplingMetadatas. - * @member {Array.} samplingMetadatas - * @memberof google.analytics.data.v1alpha.FunnelResponseMetadata + * ComparisonMetadata apiName. + * @member {string} apiName + * @memberof google.analytics.data.v1alpha.ComparisonMetadata * @instance */ - FunnelResponseMetadata.prototype.samplingMetadatas = $util.emptyArray; + ComparisonMetadata.prototype.apiName = ""; /** - * Creates a new FunnelResponseMetadata instance using the specified properties. + * ComparisonMetadata uiName. + * @member {string} uiName + * @memberof google.analytics.data.v1alpha.ComparisonMetadata + * @instance + */ + ComparisonMetadata.prototype.uiName = ""; + + /** + * ComparisonMetadata description. + * @member {string} description + * @memberof google.analytics.data.v1alpha.ComparisonMetadata + * @instance + */ + ComparisonMetadata.prototype.description = ""; + + /** + * Creates a new ComparisonMetadata instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.FunnelResponseMetadata + * @memberof google.analytics.data.v1alpha.ComparisonMetadata * @static - * @param {google.analytics.data.v1alpha.IFunnelResponseMetadata=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.FunnelResponseMetadata} FunnelResponseMetadata instance + * @param {google.analytics.data.v1alpha.IComparisonMetadata=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.ComparisonMetadata} ComparisonMetadata instance */ - FunnelResponseMetadata.create = function create(properties) { - return new FunnelResponseMetadata(properties); + ComparisonMetadata.create = function create(properties) { + return new ComparisonMetadata(properties); }; /** - * Encodes the specified FunnelResponseMetadata message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelResponseMetadata.verify|verify} messages. + * Encodes the specified ComparisonMetadata message. Does not implicitly {@link google.analytics.data.v1alpha.ComparisonMetadata.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.FunnelResponseMetadata + * @memberof google.analytics.data.v1alpha.ComparisonMetadata * @static - * @param {google.analytics.data.v1alpha.IFunnelResponseMetadata} message FunnelResponseMetadata message or plain object to encode + * @param {google.analytics.data.v1alpha.IComparisonMetadata} message ComparisonMetadata message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - FunnelResponseMetadata.encode = function encode(message, writer) { + ComparisonMetadata.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.samplingMetadatas != null && message.samplingMetadatas.length) - for (var i = 0; i < message.samplingMetadatas.length; ++i) - $root.google.analytics.data.v1alpha.SamplingMetadata.encode(message.samplingMetadatas[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.apiName != null && Object.hasOwnProperty.call(message, "apiName")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.apiName); + if (message.uiName != null && Object.hasOwnProperty.call(message, "uiName")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.uiName); + if (message.description != null && Object.hasOwnProperty.call(message, "description")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.description); return writer; }; /** - * Encodes the specified FunnelResponseMetadata message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelResponseMetadata.verify|verify} messages. + * Encodes the specified ComparisonMetadata message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.ComparisonMetadata.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.FunnelResponseMetadata + * @memberof google.analytics.data.v1alpha.ComparisonMetadata * @static - * @param {google.analytics.data.v1alpha.IFunnelResponseMetadata} message FunnelResponseMetadata message or plain object to encode + * @param {google.analytics.data.v1alpha.IComparisonMetadata} message ComparisonMetadata message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - FunnelResponseMetadata.encodeDelimited = function encodeDelimited(message, writer) { + ComparisonMetadata.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a FunnelResponseMetadata message from the specified reader or buffer. + * Decodes a ComparisonMetadata message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.FunnelResponseMetadata + * @memberof google.analytics.data.v1alpha.ComparisonMetadata * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.FunnelResponseMetadata} FunnelResponseMetadata + * @returns {google.analytics.data.v1alpha.ComparisonMetadata} ComparisonMetadata * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - FunnelResponseMetadata.decode = function decode(reader, length, error) { + ComparisonMetadata.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.FunnelResponseMetadata(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.ComparisonMetadata(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { case 1: { - if (!(message.samplingMetadatas && message.samplingMetadatas.length)) - message.samplingMetadatas = []; - message.samplingMetadatas.push($root.google.analytics.data.v1alpha.SamplingMetadata.decode(reader, reader.uint32())); + message.apiName = reader.string(); + break; + } + case 2: { + message.uiName = reader.string(); + break; + } + case 3: { + message.description = reader.string(); break; } default: @@ -42303,140 +45939,140 @@ }; /** - * Decodes a FunnelResponseMetadata message from the specified reader or buffer, length delimited. + * Decodes a ComparisonMetadata message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.FunnelResponseMetadata + * @memberof google.analytics.data.v1alpha.ComparisonMetadata * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.FunnelResponseMetadata} FunnelResponseMetadata + * @returns {google.analytics.data.v1alpha.ComparisonMetadata} ComparisonMetadata * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - FunnelResponseMetadata.decodeDelimited = function decodeDelimited(reader) { + ComparisonMetadata.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a FunnelResponseMetadata message. + * Verifies a ComparisonMetadata message. * @function verify - * @memberof google.analytics.data.v1alpha.FunnelResponseMetadata + * @memberof google.analytics.data.v1alpha.ComparisonMetadata * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - FunnelResponseMetadata.verify = function verify(message) { + ComparisonMetadata.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.samplingMetadatas != null && message.hasOwnProperty("samplingMetadatas")) { - if (!Array.isArray(message.samplingMetadatas)) - return "samplingMetadatas: array expected"; - for (var i = 0; i < message.samplingMetadatas.length; ++i) { - var error = $root.google.analytics.data.v1alpha.SamplingMetadata.verify(message.samplingMetadatas[i]); - if (error) - return "samplingMetadatas." + error; - } - } + if (message.apiName != null && message.hasOwnProperty("apiName")) + if (!$util.isString(message.apiName)) + return "apiName: string expected"; + if (message.uiName != null && message.hasOwnProperty("uiName")) + if (!$util.isString(message.uiName)) + return "uiName: string expected"; + if (message.description != null && message.hasOwnProperty("description")) + if (!$util.isString(message.description)) + return "description: string expected"; return null; }; /** - * Creates a FunnelResponseMetadata message from a plain object. Also converts values to their respective internal types. + * Creates a ComparisonMetadata message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.FunnelResponseMetadata + * @memberof google.analytics.data.v1alpha.ComparisonMetadata * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.FunnelResponseMetadata} FunnelResponseMetadata - */ - FunnelResponseMetadata.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.FunnelResponseMetadata) + * @returns {google.analytics.data.v1alpha.ComparisonMetadata} ComparisonMetadata + */ + ComparisonMetadata.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.ComparisonMetadata) return object; - var message = new $root.google.analytics.data.v1alpha.FunnelResponseMetadata(); - if (object.samplingMetadatas) { - if (!Array.isArray(object.samplingMetadatas)) - throw TypeError(".google.analytics.data.v1alpha.FunnelResponseMetadata.samplingMetadatas: array expected"); - message.samplingMetadatas = []; - for (var i = 0; i < object.samplingMetadatas.length; ++i) { - if (typeof object.samplingMetadatas[i] !== "object") - throw TypeError(".google.analytics.data.v1alpha.FunnelResponseMetadata.samplingMetadatas: object expected"); - message.samplingMetadatas[i] = $root.google.analytics.data.v1alpha.SamplingMetadata.fromObject(object.samplingMetadatas[i]); - } - } + var message = new $root.google.analytics.data.v1alpha.ComparisonMetadata(); + if (object.apiName != null) + message.apiName = String(object.apiName); + if (object.uiName != null) + message.uiName = String(object.uiName); + if (object.description != null) + message.description = String(object.description); return message; }; /** - * Creates a plain object from a FunnelResponseMetadata message. Also converts values to other types if specified. + * Creates a plain object from a ComparisonMetadata message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.FunnelResponseMetadata + * @memberof google.analytics.data.v1alpha.ComparisonMetadata * @static - * @param {google.analytics.data.v1alpha.FunnelResponseMetadata} message FunnelResponseMetadata + * @param {google.analytics.data.v1alpha.ComparisonMetadata} message ComparisonMetadata * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - FunnelResponseMetadata.toObject = function toObject(message, options) { + ComparisonMetadata.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.arrays || options.defaults) - object.samplingMetadatas = []; - if (message.samplingMetadatas && message.samplingMetadatas.length) { - object.samplingMetadatas = []; - for (var j = 0; j < message.samplingMetadatas.length; ++j) - object.samplingMetadatas[j] = $root.google.analytics.data.v1alpha.SamplingMetadata.toObject(message.samplingMetadatas[j], options); + if (options.defaults) { + object.apiName = ""; + object.uiName = ""; + object.description = ""; } + if (message.apiName != null && message.hasOwnProperty("apiName")) + object.apiName = message.apiName; + if (message.uiName != null && message.hasOwnProperty("uiName")) + object.uiName = message.uiName; + if (message.description != null && message.hasOwnProperty("description")) + object.description = message.description; return object; }; /** - * Converts this FunnelResponseMetadata to JSON. + * Converts this ComparisonMetadata to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.FunnelResponseMetadata + * @memberof google.analytics.data.v1alpha.ComparisonMetadata * @instance * @returns {Object.} JSON object */ - FunnelResponseMetadata.prototype.toJSON = function toJSON() { + ComparisonMetadata.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for FunnelResponseMetadata + * Gets the default type url for ComparisonMetadata * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.FunnelResponseMetadata + * @memberof google.analytics.data.v1alpha.ComparisonMetadata * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - FunnelResponseMetadata.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + ComparisonMetadata.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.analytics.data.v1alpha.FunnelResponseMetadata"; + return typeUrlPrefix + "/google.analytics.data.v1alpha.ComparisonMetadata"; }; - return FunnelResponseMetadata; + return ComparisonMetadata; })(); - v1alpha.SamplingMetadata = (function() { + v1alpha.ConversionMetadata = (function() { /** - * Properties of a SamplingMetadata. + * Properties of a ConversionMetadata. * @memberof google.analytics.data.v1alpha - * @interface ISamplingMetadata - * @property {number|Long|null} [samplesReadCount] SamplingMetadata samplesReadCount - * @property {number|Long|null} [samplingSpaceSize] SamplingMetadata samplingSpaceSize + * @interface IConversionMetadata + * @property {string|null} [conversionAction] ConversionMetadata conversionAction + * @property {string|null} [displayName] ConversionMetadata displayName */ /** - * Constructs a new SamplingMetadata. + * Constructs a new ConversionMetadata. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a SamplingMetadata. - * @implements ISamplingMetadata + * @classdesc Represents a ConversionMetadata. + * @implements IConversionMetadata * @constructor - * @param {google.analytics.data.v1alpha.ISamplingMetadata=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IConversionMetadata=} [properties] Properties to set */ - function SamplingMetadata(properties) { + function ConversionMetadata(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -42444,91 +46080,91 @@ } /** - * SamplingMetadata samplesReadCount. - * @member {number|Long} samplesReadCount - * @memberof google.analytics.data.v1alpha.SamplingMetadata + * ConversionMetadata conversionAction. + * @member {string} conversionAction + * @memberof google.analytics.data.v1alpha.ConversionMetadata * @instance */ - SamplingMetadata.prototype.samplesReadCount = $util.Long ? $util.Long.fromBits(0,0,false) : 0; + ConversionMetadata.prototype.conversionAction = ""; /** - * SamplingMetadata samplingSpaceSize. - * @member {number|Long} samplingSpaceSize - * @memberof google.analytics.data.v1alpha.SamplingMetadata + * ConversionMetadata displayName. + * @member {string} displayName + * @memberof google.analytics.data.v1alpha.ConversionMetadata * @instance */ - SamplingMetadata.prototype.samplingSpaceSize = $util.Long ? $util.Long.fromBits(0,0,false) : 0; + ConversionMetadata.prototype.displayName = ""; /** - * Creates a new SamplingMetadata instance using the specified properties. + * Creates a new ConversionMetadata instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.SamplingMetadata + * @memberof google.analytics.data.v1alpha.ConversionMetadata * @static - * @param {google.analytics.data.v1alpha.ISamplingMetadata=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.SamplingMetadata} SamplingMetadata instance + * @param {google.analytics.data.v1alpha.IConversionMetadata=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.ConversionMetadata} ConversionMetadata instance */ - SamplingMetadata.create = function create(properties) { - return new SamplingMetadata(properties); + ConversionMetadata.create = function create(properties) { + return new ConversionMetadata(properties); }; /** - * Encodes the specified SamplingMetadata message. Does not implicitly {@link google.analytics.data.v1alpha.SamplingMetadata.verify|verify} messages. + * Encodes the specified ConversionMetadata message. Does not implicitly {@link google.analytics.data.v1alpha.ConversionMetadata.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.SamplingMetadata + * @memberof google.analytics.data.v1alpha.ConversionMetadata * @static - * @param {google.analytics.data.v1alpha.ISamplingMetadata} message SamplingMetadata message or plain object to encode + * @param {google.analytics.data.v1alpha.IConversionMetadata} message ConversionMetadata message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SamplingMetadata.encode = function encode(message, writer) { + ConversionMetadata.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.samplesReadCount != null && Object.hasOwnProperty.call(message, "samplesReadCount")) - writer.uint32(/* id 1, wireType 0 =*/8).int64(message.samplesReadCount); - if (message.samplingSpaceSize != null && Object.hasOwnProperty.call(message, "samplingSpaceSize")) - writer.uint32(/* id 2, wireType 0 =*/16).int64(message.samplingSpaceSize); + if (message.conversionAction != null && Object.hasOwnProperty.call(message, "conversionAction")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.conversionAction); + if (message.displayName != null && Object.hasOwnProperty.call(message, "displayName")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.displayName); return writer; }; /** - * Encodes the specified SamplingMetadata message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SamplingMetadata.verify|verify} messages. + * Encodes the specified ConversionMetadata message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.ConversionMetadata.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.SamplingMetadata + * @memberof google.analytics.data.v1alpha.ConversionMetadata * @static - * @param {google.analytics.data.v1alpha.ISamplingMetadata} message SamplingMetadata message or plain object to encode + * @param {google.analytics.data.v1alpha.IConversionMetadata} message ConversionMetadata message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SamplingMetadata.encodeDelimited = function encodeDelimited(message, writer) { + ConversionMetadata.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a SamplingMetadata message from the specified reader or buffer. + * Decodes a ConversionMetadata message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.SamplingMetadata + * @memberof google.analytics.data.v1alpha.ConversionMetadata * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.SamplingMetadata} SamplingMetadata + * @returns {google.analytics.data.v1alpha.ConversionMetadata} ConversionMetadata * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SamplingMetadata.decode = function decode(reader, length, error) { + ConversionMetadata.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.SamplingMetadata(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.ConversionMetadata(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { case 1: { - message.samplesReadCount = reader.int64(); + message.conversionAction = reader.string(); break; } case 2: { - message.samplingSpaceSize = reader.int64(); + message.displayName = reader.string(); break; } default: @@ -42540,229 +46176,111 @@ }; /** - * Decodes a SamplingMetadata message from the specified reader or buffer, length delimited. + * Decodes a ConversionMetadata message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.SamplingMetadata + * @memberof google.analytics.data.v1alpha.ConversionMetadata * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.SamplingMetadata} SamplingMetadata + * @returns {google.analytics.data.v1alpha.ConversionMetadata} ConversionMetadata * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SamplingMetadata.decodeDelimited = function decodeDelimited(reader) { + ConversionMetadata.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a SamplingMetadata message. + * Verifies a ConversionMetadata message. * @function verify - * @memberof google.analytics.data.v1alpha.SamplingMetadata + * @memberof google.analytics.data.v1alpha.ConversionMetadata * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SamplingMetadata.verify = function verify(message) { + ConversionMetadata.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.samplesReadCount != null && message.hasOwnProperty("samplesReadCount")) - if (!$util.isInteger(message.samplesReadCount) && !(message.samplesReadCount && $util.isInteger(message.samplesReadCount.low) && $util.isInteger(message.samplesReadCount.high))) - return "samplesReadCount: integer|Long expected"; - if (message.samplingSpaceSize != null && message.hasOwnProperty("samplingSpaceSize")) - if (!$util.isInteger(message.samplingSpaceSize) && !(message.samplingSpaceSize && $util.isInteger(message.samplingSpaceSize.low) && $util.isInteger(message.samplingSpaceSize.high))) - return "samplingSpaceSize: integer|Long expected"; + if (message.conversionAction != null && message.hasOwnProperty("conversionAction")) + if (!$util.isString(message.conversionAction)) + return "conversionAction: string expected"; + if (message.displayName != null && message.hasOwnProperty("displayName")) + if (!$util.isString(message.displayName)) + return "displayName: string expected"; return null; }; /** - * Creates a SamplingMetadata message from a plain object. Also converts values to their respective internal types. + * Creates a ConversionMetadata message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.SamplingMetadata + * @memberof google.analytics.data.v1alpha.ConversionMetadata * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.SamplingMetadata} SamplingMetadata + * @returns {google.analytics.data.v1alpha.ConversionMetadata} ConversionMetadata */ - SamplingMetadata.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.SamplingMetadata) + ConversionMetadata.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.ConversionMetadata) return object; - var message = new $root.google.analytics.data.v1alpha.SamplingMetadata(); - if (object.samplesReadCount != null) - if ($util.Long) - (message.samplesReadCount = $util.Long.fromValue(object.samplesReadCount)).unsigned = false; - else if (typeof object.samplesReadCount === "string") - message.samplesReadCount = parseInt(object.samplesReadCount, 10); - else if (typeof object.samplesReadCount === "number") - message.samplesReadCount = object.samplesReadCount; - else if (typeof object.samplesReadCount === "object") - message.samplesReadCount = new $util.LongBits(object.samplesReadCount.low >>> 0, object.samplesReadCount.high >>> 0).toNumber(); - if (object.samplingSpaceSize != null) - if ($util.Long) - (message.samplingSpaceSize = $util.Long.fromValue(object.samplingSpaceSize)).unsigned = false; - else if (typeof object.samplingSpaceSize === "string") - message.samplingSpaceSize = parseInt(object.samplingSpaceSize, 10); - else if (typeof object.samplingSpaceSize === "number") - message.samplingSpaceSize = object.samplingSpaceSize; - else if (typeof object.samplingSpaceSize === "object") - message.samplingSpaceSize = new $util.LongBits(object.samplingSpaceSize.low >>> 0, object.samplingSpaceSize.high >>> 0).toNumber(); + var message = new $root.google.analytics.data.v1alpha.ConversionMetadata(); + if (object.conversionAction != null) + message.conversionAction = String(object.conversionAction); + if (object.displayName != null) + message.displayName = String(object.displayName); return message; }; /** - * Creates a plain object from a SamplingMetadata message. Also converts values to other types if specified. + * Creates a plain object from a ConversionMetadata message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.SamplingMetadata + * @memberof google.analytics.data.v1alpha.ConversionMetadata * @static - * @param {google.analytics.data.v1alpha.SamplingMetadata} message SamplingMetadata + * @param {google.analytics.data.v1alpha.ConversionMetadata} message ConversionMetadata * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SamplingMetadata.toObject = function toObject(message, options) { + ConversionMetadata.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; if (options.defaults) { - if ($util.Long) { - var long = new $util.Long(0, 0, false); - object.samplesReadCount = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; - } else - object.samplesReadCount = options.longs === String ? "0" : 0; - if ($util.Long) { - var long = new $util.Long(0, 0, false); - object.samplingSpaceSize = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; - } else - object.samplingSpaceSize = options.longs === String ? "0" : 0; + object.conversionAction = ""; + object.displayName = ""; } - if (message.samplesReadCount != null && message.hasOwnProperty("samplesReadCount")) - if (typeof message.samplesReadCount === "number") - object.samplesReadCount = options.longs === String ? String(message.samplesReadCount) : message.samplesReadCount; - else - object.samplesReadCount = options.longs === String ? $util.Long.prototype.toString.call(message.samplesReadCount) : options.longs === Number ? new $util.LongBits(message.samplesReadCount.low >>> 0, message.samplesReadCount.high >>> 0).toNumber() : message.samplesReadCount; - if (message.samplingSpaceSize != null && message.hasOwnProperty("samplingSpaceSize")) - if (typeof message.samplingSpaceSize === "number") - object.samplingSpaceSize = options.longs === String ? String(message.samplingSpaceSize) : message.samplingSpaceSize; - else - object.samplingSpaceSize = options.longs === String ? $util.Long.prototype.toString.call(message.samplingSpaceSize) : options.longs === Number ? new $util.LongBits(message.samplingSpaceSize.low >>> 0, message.samplingSpaceSize.high >>> 0).toNumber() : message.samplingSpaceSize; + if (message.conversionAction != null && message.hasOwnProperty("conversionAction")) + object.conversionAction = message.conversionAction; + if (message.displayName != null && message.hasOwnProperty("displayName")) + object.displayName = message.displayName; return object; }; /** - * Converts this SamplingMetadata to JSON. + * Converts this ConversionMetadata to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.SamplingMetadata + * @memberof google.analytics.data.v1alpha.ConversionMetadata * @instance * @returns {Object.} JSON object */ - SamplingMetadata.prototype.toJSON = function toJSON() { + ConversionMetadata.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for SamplingMetadata + * Gets the default type url for ConversionMetadata * @function getTypeUrl - * @memberof google.analytics.data.v1alpha.SamplingMetadata + * @memberof google.analytics.data.v1alpha.ConversionMetadata * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - SamplingMetadata.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + ConversionMetadata.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.analytics.data.v1alpha.SamplingMetadata"; + return typeUrlPrefix + "/google.analytics.data.v1alpha.ConversionMetadata"; }; - return SamplingMetadata; - })(); - - /** - * MetricAggregation enum. - * @name google.analytics.data.v1alpha.MetricAggregation - * @enum {number} - * @property {number} METRIC_AGGREGATION_UNSPECIFIED=0 METRIC_AGGREGATION_UNSPECIFIED value - * @property {number} TOTAL=1 TOTAL value - * @property {number} MINIMUM=5 MINIMUM value - * @property {number} MAXIMUM=6 MAXIMUM value - * @property {number} COUNT=4 COUNT value - */ - v1alpha.MetricAggregation = (function() { - var valuesById = {}, values = Object.create(valuesById); - values[valuesById[0] = "METRIC_AGGREGATION_UNSPECIFIED"] = 0; - values[valuesById[1] = "TOTAL"] = 1; - values[valuesById[5] = "MINIMUM"] = 5; - values[valuesById[6] = "MAXIMUM"] = 6; - values[valuesById[4] = "COUNT"] = 4; - return values; - })(); - - /** - * MetricType enum. - * @name google.analytics.data.v1alpha.MetricType - * @enum {number} - * @property {number} METRIC_TYPE_UNSPECIFIED=0 METRIC_TYPE_UNSPECIFIED value - * @property {number} TYPE_INTEGER=1 TYPE_INTEGER value - * @property {number} TYPE_FLOAT=2 TYPE_FLOAT value - * @property {number} TYPE_SECONDS=4 TYPE_SECONDS value - * @property {number} TYPE_MILLISECONDS=5 TYPE_MILLISECONDS value - * @property {number} TYPE_MINUTES=6 TYPE_MINUTES value - * @property {number} TYPE_HOURS=7 TYPE_HOURS value - * @property {number} TYPE_STANDARD=8 TYPE_STANDARD value - * @property {number} TYPE_CURRENCY=9 TYPE_CURRENCY value - * @property {number} TYPE_FEET=10 TYPE_FEET value - * @property {number} TYPE_MILES=11 TYPE_MILES value - * @property {number} TYPE_METERS=12 TYPE_METERS value - * @property {number} TYPE_KILOMETERS=13 TYPE_KILOMETERS value - */ - v1alpha.MetricType = (function() { - var valuesById = {}, values = Object.create(valuesById); - values[valuesById[0] = "METRIC_TYPE_UNSPECIFIED"] = 0; - values[valuesById[1] = "TYPE_INTEGER"] = 1; - values[valuesById[2] = "TYPE_FLOAT"] = 2; - values[valuesById[4] = "TYPE_SECONDS"] = 4; - values[valuesById[5] = "TYPE_MILLISECONDS"] = 5; - values[valuesById[6] = "TYPE_MINUTES"] = 6; - values[valuesById[7] = "TYPE_HOURS"] = 7; - values[valuesById[8] = "TYPE_STANDARD"] = 8; - values[valuesById[9] = "TYPE_CURRENCY"] = 9; - values[valuesById[10] = "TYPE_FEET"] = 10; - values[valuesById[11] = "TYPE_MILES"] = 11; - values[valuesById[12] = "TYPE_METERS"] = 12; - values[valuesById[13] = "TYPE_KILOMETERS"] = 13; - return values; - })(); - - /** - * RestrictedMetricType enum. - * @name google.analytics.data.v1alpha.RestrictedMetricType - * @enum {number} - * @property {number} RESTRICTED_METRIC_TYPE_UNSPECIFIED=0 RESTRICTED_METRIC_TYPE_UNSPECIFIED value - * @property {number} COST_DATA=1 COST_DATA value - * @property {number} REVENUE_DATA=2 REVENUE_DATA value - */ - v1alpha.RestrictedMetricType = (function() { - var valuesById = {}, values = Object.create(valuesById); - values[valuesById[0] = "RESTRICTED_METRIC_TYPE_UNSPECIFIED"] = 0; - values[valuesById[1] = "COST_DATA"] = 1; - values[valuesById[2] = "REVENUE_DATA"] = 2; - return values; - })(); - - /** - * SamplingLevel enum. - * @name google.analytics.data.v1alpha.SamplingLevel - * @enum {number} - * @property {number} SAMPLING_LEVEL_UNSPECIFIED=0 SAMPLING_LEVEL_UNSPECIFIED value - * @property {number} LOW=1 LOW value - * @property {number} MEDIUM=2 MEDIUM value - * @property {number} UNSAMPLED=3 UNSAMPLED value - */ - v1alpha.SamplingLevel = (function() { - var valuesById = {}, values = Object.create(valuesById); - values[valuesById[0] = "SAMPLING_LEVEL_UNSPECIFIED"] = 0; - values[valuesById[1] = "LOW"] = 1; - values[valuesById[2] = "MEDIUM"] = 2; - values[valuesById[3] = "UNSAMPLED"] = 3; - return values; + return ConversionMetadata; })(); return v1alpha; diff --git a/packages/google-analytics-data/protos/protos.json b/packages/google-analytics-data/protos/protos.json index adcb9024f55d..1fbae0bb7ac9 100644 --- a/packages/google-analytics-data/protos/protos.json +++ b/packages/google-analytics-data/protos/protos.json @@ -1371,7 +1371,7 @@ "AlphaAnalyticsData": { "options": { "(google.api.default_host)": "analyticsdata.googleapis.com", - "(google.api.oauth_scopes)": "https://www.googleapis.com/auth/analytics,https://www.googleapis.com/auth/analytics.readonly,https://www.googleapis.com/auth/drive,https://www.googleapis.com/auth/drive.file,https://www.googleapis.com/auth/spreadsheets" + "(google.api.oauth_scopes)": "https://www.googleapis.com/auth/analytics,https://www.googleapis.com/auth/analytics.readonly" }, "methods": { "RunFunnelReport": { @@ -1438,26 +1438,6 @@ } ] }, - "SheetExportAudienceList": { - "requestType": "SheetExportAudienceListRequest", - "responseType": "SheetExportAudienceListResponse", - "options": { - "(google.api.http).post": "/v1alpha/{name=properties/*/audienceLists/*}:exportSheet", - "(google.api.http).body": "*", - "(google.api.method_signature)": "name" - }, - "parsedOptions": [ - { - "(google.api.http)": { - "post": "/v1alpha/{name=properties/*/audienceLists/*}:exportSheet", - "body": "*" - } - }, - { - "(google.api.method_signature)": "name" - } - ] - }, "GetAudienceList": { "requestType": "GetAudienceListRequest", "responseType": "AudienceList", @@ -1651,6 +1631,40 @@ "(google.api.method_signature)": "parent" } ] + }, + "RunReport": { + "requestType": "RunReportRequest", + "responseType": "RunReportResponse", + "options": { + "(google.api.http).post": "/v1alpha/{property=properties/*}:runReport", + "(google.api.http).body": "*" + }, + "parsedOptions": [ + { + "(google.api.http)": { + "post": "/v1alpha/{property=properties/*}:runReport", + "body": "*" + } + } + ] + }, + "GetMetadata": { + "requestType": "GetMetadataRequest", + "responseType": "Metadata", + "options": { + "(google.api.http).get": "/v1alpha/{name=properties/*/metadata}", + "(google.api.method_signature)": "name" + }, + "parsedOptions": [ + { + "(google.api.http)": { + "get": "/v1alpha/{name=properties/*/metadata}" + } + }, + { + "(google.api.method_signature)": "name" + } + ] } } }, @@ -2174,86 +2188,6 @@ } } }, - "SheetExportAudienceListRequest": { - "fields": { - "name": { - "type": "string", - "id": 1, - "options": { - "(google.api.field_behavior)": "REQUIRED", - "(google.api.resource_reference).type": "analyticsdata.googleapis.com/AudienceList" - } - }, - "offset": { - "type": "int64", - "id": 2, - "options": { - "(google.api.field_behavior)": "OPTIONAL" - } - }, - "limit": { - "type": "int64", - "id": 3, - "options": { - "(google.api.field_behavior)": "OPTIONAL" - } - } - } - }, - "SheetExportAudienceListResponse": { - "oneofs": { - "_spreadsheetUri": { - "oneof": [ - "spreadsheetUri" - ] - }, - "_spreadsheetId": { - "oneof": [ - "spreadsheetId" - ] - }, - "_rowCount": { - "oneof": [ - "rowCount" - ] - }, - "_audienceList": { - "oneof": [ - "audienceList" - ] - } - }, - "fields": { - "spreadsheetUri": { - "type": "string", - "id": 1, - "options": { - "proto3_optional": true - } - }, - "spreadsheetId": { - "type": "string", - "id": 2, - "options": { - "proto3_optional": true - } - }, - "rowCount": { - "type": "int32", - "id": 3, - "options": { - "proto3_optional": true - } - }, - "audienceList": { - "type": "AudienceList", - "id": 4, - "options": { - "proto3_optional": true - } - } - } - }, "AudienceRow": { "fields": { "dimensionValues": { @@ -2773,6 +2707,236 @@ } } }, + "RunReportRequest": { + "fields": { + "property": { + "type": "string", + "id": 1, + "options": { + "(google.api.field_behavior)": "REQUIRED" + } + }, + "dimensions": { + "rule": "repeated", + "type": "Dimension", + "id": 2, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + }, + "metrics": { + "rule": "repeated", + "type": "Metric", + "id": 3, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + }, + "dateRanges": { + "rule": "repeated", + "type": "DateRange", + "id": 4, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + }, + "dimensionFilter": { + "type": "FilterExpression", + "id": 5, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + }, + "metricFilter": { + "type": "FilterExpression", + "id": 6, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + }, + "offset": { + "type": "int64", + "id": 7, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + }, + "limit": { + "type": "int64", + "id": 8, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + }, + "metricAggregations": { + "rule": "repeated", + "type": "MetricAggregation", + "id": 9, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + }, + "orderBys": { + "rule": "repeated", + "type": "OrderBy", + "id": 10, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + }, + "currencyCode": { + "type": "string", + "id": 11, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + }, + "cohortSpec": { + "type": "CohortSpec", + "id": 12, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + }, + "keepEmptyRows": { + "type": "bool", + "id": 13, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + }, + "returnPropertyQuota": { + "type": "bool", + "id": 14, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + }, + "comparisons": { + "rule": "repeated", + "type": "Comparison", + "id": 15, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + }, + "conversionSpec": { + "type": "ConversionSpec", + "id": 16, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + } + } + }, + "RunReportResponse": { + "oneofs": { + "_nextPageToken": { + "oneof": [ + "nextPageToken" + ] + } + }, + "fields": { + "dimensionHeaders": { + "rule": "repeated", + "type": "DimensionHeader", + "id": 1 + }, + "metricHeaders": { + "rule": "repeated", + "type": "MetricHeader", + "id": 2 + }, + "rows": { + "rule": "repeated", + "type": "Row", + "id": 3 + }, + "totals": { + "rule": "repeated", + "type": "Row", + "id": 4 + }, + "maximums": { + "rule": "repeated", + "type": "Row", + "id": 5 + }, + "minimums": { + "rule": "repeated", + "type": "Row", + "id": 6 + }, + "rowCount": { + "type": "int32", + "id": 7 + }, + "metadata": { + "type": "ResponseMetaData", + "id": 8 + }, + "propertyQuota": { + "type": "PropertyQuota", + "id": 9 + }, + "kind": { + "type": "string", + "id": 10 + }, + "nextPageToken": { + "type": "string", + "id": 11, + "options": { + "proto3_optional": true + } + } + } + }, + "GetMetadataRequest": { + "fields": { + "name": { + "type": "string", + "id": 1, + "options": { + "(google.api.field_behavior)": "REQUIRED", + "(google.api.resource_reference).type": "analyticsdata.googleapis.com/Metadata" + } + } + } + }, + "Metadata": { + "options": { + "(google.api.resource).type": "analyticsdata.googleapis.com/Metadata", + "(google.api.resource).pattern": "properties/{property}/metadata" + }, + "fields": { + "name": { + "type": "string", + "id": 3 + }, + "dimensions": { + "rule": "repeated", + "type": "DimensionMetadata", + "id": 1 + }, + "metrics": { + "rule": "repeated", + "type": "MetricMetadata", + "id": 2 + }, + "comparisons": { + "rule": "repeated", + "type": "ComparisonMetadata", + "id": 4 + }, + "conversions": { + "rule": "repeated", + "type": "ConversionMetadata", + "id": 5 + } + } + }, "DateRange": { "fields": { "startDate": { @@ -2865,6 +3029,38 @@ } } }, + "Comparison": { + "oneofs": { + "_name": { + "oneof": [ + "name" + ] + }, + "oneComparison": { + "oneof": [ + "dimensionFilter", + "comparison" + ] + } + }, + "fields": { + "name": { + "type": "string", + "id": 1, + "options": { + "proto3_optional": true + } + }, + "dimensionFilter": { + "type": "FilterExpression", + "id": 2 + }, + "comparison": { + "type": "string", + "id": 3 + } + } + }, "FilterExpression": { "oneofs": { "expr": { @@ -3167,6 +3363,13 @@ } } }, + "Section": { + "values": { + "SECTION_UNSPECIFIED": 0, + "SECTION_REPORT": 1, + "SECTION_ADVERTISING": 2 + } + }, "ResponseMetaData": { "oneofs": { "_schemaRestrictionResponse": { @@ -3239,6 +3442,10 @@ "rule": "repeated", "type": "SamplingMetadata", "id": 9 + }, + "section": { + "type": "Section", + "id": 10 } }, "nested": { @@ -4222,6 +4429,146 @@ "MEDIUM": 2, "UNSAMPLED": 3 } + }, + "ConversionSpec": { + "fields": { + "conversionActions": { + "rule": "repeated", + "type": "string", + "id": 1 + }, + "attributionModel": { + "type": "AttributionModel", + "id": 2 + } + }, + "nested": { + "AttributionModel": { + "values": { + "ATTRIBUTION_MODEL_UNSPECIFIED": 0, + "DATA_DRIVEN": 1, + "LAST_CLICK": 2 + } + } + } + }, + "DimensionMetadata": { + "fields": { + "apiName": { + "type": "string", + "id": 1 + }, + "uiName": { + "type": "string", + "id": 2 + }, + "description": { + "type": "string", + "id": 3 + }, + "deprecatedApiNames": { + "rule": "repeated", + "type": "string", + "id": 4 + }, + "customDefinition": { + "type": "bool", + "id": 5 + }, + "category": { + "type": "string", + "id": 6 + }, + "sections": { + "rule": "repeated", + "type": "Section", + "id": 7 + } + } + }, + "MetricMetadata": { + "fields": { + "apiName": { + "type": "string", + "id": 1 + }, + "uiName": { + "type": "string", + "id": 2 + }, + "description": { + "type": "string", + "id": 3 + }, + "deprecatedApiNames": { + "rule": "repeated", + "type": "string", + "id": 4 + }, + "type": { + "type": "MetricType", + "id": 5 + }, + "expression": { + "type": "string", + "id": 6 + }, + "customDefinition": { + "type": "bool", + "id": 7 + }, + "blockedReasons": { + "rule": "repeated", + "type": "BlockedReason", + "id": 8 + }, + "category": { + "type": "string", + "id": 9 + }, + "sections": { + "rule": "repeated", + "type": "Section", + "id": 10 + } + }, + "nested": { + "BlockedReason": { + "values": { + "BLOCKED_REASON_UNSPECIFIED": 0, + "NO_REVENUE_METRICS": 1, + "NO_COST_METRICS": 2 + } + } + } + }, + "ComparisonMetadata": { + "fields": { + "apiName": { + "type": "string", + "id": 1 + }, + "uiName": { + "type": "string", + "id": 2 + }, + "description": { + "type": "string", + "id": 3 + } + } + }, + "ConversionMetadata": { + "fields": { + "conversionAction": { + "type": "string", + "id": 1 + }, + "displayName": { + "type": "string", + "id": 2 + } + } } } }, diff --git a/packages/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.get_metadata.js b/packages/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.get_metadata.js new file mode 100644 index 000000000000..141b5dbb8310 --- /dev/null +++ b/packages/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.get_metadata.js @@ -0,0 +1,69 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + + + +'use strict'; + +function main(name) { + // [START analyticsdata_v1alpha_generated_AlphaAnalyticsData_GetMetadata_async] + /** + * This snippet has been automatically generated and should be regarded as a code template only. + * It will require modifications to work. + * It may require correct/in-range values for request initialization. + * TODO(developer): Uncomment these variables before running the sample. + */ + /** + * Required. The resource name of the metadata to retrieve. This name field is + * specified in the URL path and not URL parameters. Property is a numeric + * Google Analytics property identifier. To learn more, see where to find + * your Property + * ID (https://developers.google.com/analytics/devguides/reporting/data/v1/property-id). + * Example: properties/1234/metadata + * Set the Property ID to 0 for dimensions and metrics common to all + * properties. In this special mode, this method will not return custom + * dimensions and metrics. + */ + // const name = 'abc123' + + // Imports the Data library + const {AlphaAnalyticsDataClient} = require('@google-analytics/data').v1alpha; + + // Instantiates a client + const dataClient = new AlphaAnalyticsDataClient(); + + async function callGetMetadata() { + // Construct request + const request = { + name, + }; + + // Run request + const response = await dataClient.getMetadata(request); + console.log(response); + } + + callGetMetadata(); + // [END analyticsdata_v1alpha_generated_AlphaAnalyticsData_GetMetadata_async] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/packages/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.run_report.js b/packages/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.run_report.js new file mode 100644 index 000000000000..8f7ec38b2119 --- /dev/null +++ b/packages/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.run_report.js @@ -0,0 +1,172 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + + + +'use strict'; + +function main(property) { + // [START analyticsdata_v1alpha_generated_AlphaAnalyticsData_RunReport_async] + /** + * This snippet has been automatically generated and should be regarded as a code template only. + * It will require modifications to work. + * It may require correct/in-range values for request initialization. + * TODO(developer): Uncomment these variables before running the sample. + */ + /** + * Required. A Google Analytics property identifier whose events are tracked. + * Specified in the URL path and not the body. To learn more, see where to + * find your Property + * ID (https://developers.google.com/analytics/devguides/reporting/data/v1/property-id). + * Within a batch request, this property should either be unspecified or + * consistent with the batch-level property. + * Example: properties/1234 + */ + // const property = 'abc123' + /** + * Optional. The dimensions requested and displayed. + */ + // const dimensions = [1,2,3,4] + /** + * Optional. The metrics requested and displayed. + */ + // const metrics = [1,2,3,4] + /** + * Optional. Date ranges of data to read. If multiple date ranges are + * requested, each response row will contain a zero based date range index. If + * two date ranges overlap, the event data for the overlapping days is + * included in the response rows for both date ranges. In a cohort request, + * this `dateRanges` must be unspecified. + */ + // const dateRanges = [1,2,3,4] + /** + * Optional. Dimension filters let you ask for only specific dimension values + * in the report. To learn more, see Fundamentals of Dimension + * Filters (https://developers.google.com/analytics/devguides/reporting/data/v1/basics#dimension_filters) + * for examples. Metrics cannot be used in this filter. + */ + // const dimensionFilter = {} + /** + * Optional. The filter clause of metrics. Applied after aggregating the + * report's rows, similar to SQL having-clause. Dimensions cannot be used in + * this filter. + */ + // const metricFilter = {} + /** + * Optional. The row count of the start row. The first row is counted as row + * 0. + * When paging, the first request does not specify offset; or equivalently, + * sets offset to 0; the first request returns the first `limit` of rows. The + * second request sets offset to the `limit` of the first request; the second + * request returns the second `limit` of rows. + * To learn more about this pagination parameter, see + * Pagination (https://developers.google.com/analytics/devguides/reporting/data/v1/basics#pagination). + */ + // const offset = 1234 + /** + * Optional. The maximum number of rows to return. If unspecified, 10,000 rows + * are returned. The API returns a maximum of 250,000 rows per request, no + * matter how many you ask for. `limit` must be positive. + * The API can also return fewer rows than the requested `limit`, if there + * aren't as many dimension values as the `limit`. For instance, there are + * fewer than 300 possible values for the dimension `country`, so when + * reporting on only `country`, you can't get more than 300 rows, even if you + * set `limit` to a higher value. + * To learn more about this pagination parameter, see + * Pagination (https://developers.google.com/analytics/devguides/reporting/data/v1/basics#pagination). + */ + // const limit = 1234 + /** + * Optional. Aggregation of metrics. Aggregated metric values will be shown in + * rows where the dimension_values are set to "RESERVED_(MetricAggregation)". + * Aggregates including both comparisons and multiple date ranges will + * be aggregated based on the date ranges. + */ + // const metricAggregations = [1,2,3,4] + /** + * Optional. Specifies how rows are ordered in the response. + * Requests including both comparisons and multiple date ranges will + * have order bys applied on the comparisons. + */ + // const orderBys = [1,2,3,4] + /** + * Optional. A currency code in ISO4217 format, such as "AED", "USD", "JPY". + * If the field is empty, the report uses the property's default currency. + */ + // const currencyCode = 'abc123' + /** + * Optional. Cohort group associated with this request. If there is a cohort + * group in the request the 'cohort' dimension must be present. + */ + // const cohortSpec = {} + /** + * Optional. If false or unspecified, each row with all metrics equal to 0 + * will not be returned. If true, these rows will be returned if they are not + * separately removed by a filter. + * Regardless of this `keep_empty_rows` setting, only data recorded by the + * Google Analytics property can be displayed in a report. + * For example if a property never logs a `purchase` event, then a query for + * the `eventName` dimension and `eventCount` metric will not have a row + * eventName: "purchase" and eventCount: 0. + */ + // const keepEmptyRows = true + /** + * Optional. Toggles whether to return the current state of this Google + * Analytics property's quota. Quota is returned in + * PropertyQuota (#PropertyQuota). + */ + // const returnPropertyQuota = true + /** + * Optional. The configuration of comparisons requested and displayed. The + * request only requires a comparisons field in order to receive a comparison + * column in the response. + */ + // const comparisons = [1,2,3,4] + /** + * Optional. Controls conversion reporting. This field is optional. If this + * field is set or any conversion metrics are requested, the report will be a + * conversion report. + */ + // const conversionSpec = {} + + // Imports the Data library + const {AlphaAnalyticsDataClient} = require('@google-analytics/data').v1alpha; + + // Instantiates a client + const dataClient = new AlphaAnalyticsDataClient(); + + async function callRunReport() { + // Construct request + const request = { + property, + }; + + // Run request + const response = await dataClient.runReport(request); + console.log(response); + } + + callRunReport(); + // [END analyticsdata_v1alpha_generated_AlphaAnalyticsData_RunReport_async] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/packages/google-analytics-data/samples/generated/v1alpha/snippet_metadata_google.analytics.data.v1alpha.json b/packages/google-analytics-data/samples/generated/v1alpha/snippet_metadata_google.analytics.data.v1alpha.json index 92dbb6896d17..b45ca265fd75 100644 --- a/packages/google-analytics-data/samples/generated/v1alpha/snippet_metadata_google.analytics.data.v1alpha.json +++ b/packages/google-analytics-data/samples/generated/v1alpha/snippet_metadata_google.analytics.data.v1alpha.json @@ -179,54 +179,6 @@ } } }, - { - "regionTag": "analyticsdata_v1alpha_generated_AlphaAnalyticsData_SheetExportAudienceList_async", - "title": "AlphaAnalyticsData sheetExportAudienceList Sample", - "origin": "API_DEFINITION", - "description": " Exports an audience list of users to a Google Sheet. After creating an audience, the users are not immediately available for listing. First, a request to `CreateAudienceList` is necessary to create an audience list of users, and then second, this method is used to export those users in the audience list to a Google Sheet. See [Creating an Audience List](https://developers.google.com/analytics/devguides/reporting/data/v1/audience-list-basics) for an introduction to Audience Lists with examples. Audiences in Google Analytics 4 allow you to segment your users in the ways that are important to your business. To learn more, see https://support.google.com/analytics/answer/9267572. This method is introduced at alpha stability with the intention of gathering feedback on syntax and capabilities before entering beta. To give your feedback on this API, complete the [Google Analytics Audience Export API Feedback](https://forms.gle/EeA5u5LW6PEggtCEA) form.", - "canonical": true, - "file": "alpha_analytics_data.sheet_export_audience_list.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 75, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "SheetExportAudienceList", - "fullName": "google.analytics.data.v1alpha.AlphaAnalyticsData.SheetExportAudienceList", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - }, - { - "name": "offset", - "type": "TYPE_INT64" - }, - { - "name": "limit", - "type": "TYPE_INT64" - } - ], - "resultType": ".google.analytics.data.v1alpha.SheetExportAudienceListResponse", - "client": { - "shortName": "AlphaAnalyticsDataClient", - "fullName": "google.analytics.data.v1alpha.AlphaAnalyticsDataClient" - }, - "method": { - "shortName": "SheetExportAudienceList", - "fullName": "google.analytics.data.v1alpha.AlphaAnalyticsData.SheetExportAudienceList", - "service": { - "shortName": "AlphaAnalyticsData", - "fullName": "google.analytics.data.v1alpha.AlphaAnalyticsData" - } - } - } - }, { "regionTag": "analyticsdata_v1alpha_generated_AlphaAnalyticsData_GetAudienceList_async", "title": "AlphaAnalyticsData getAudienceList Sample", @@ -666,6 +618,146 @@ } } } + }, + { + "regionTag": "analyticsdata_v1alpha_generated_AlphaAnalyticsData_RunReport_async", + "title": "AlphaAnalyticsData runReport Sample", + "origin": "API_DEFINITION", + "description": " Returns a customized report of your Google Analytics event data. Reports contain statistics derived from data collected by the Google Analytics tracking code. The data returned from the API is as a table with columns for the requested dimensions and metrics. Metrics are individual measurements of user activity on your property, such as active users or event count. Dimensions break down metrics across some common criteria, such as country or event name.", + "canonical": true, + "file": "alpha_analytics_data.run_report.js", + "language": "JAVASCRIPT", + "segments": [ + { + "start": 25, + "end": 164, + "type": "FULL" + } + ], + "clientMethod": { + "shortName": "RunReport", + "fullName": "google.analytics.data.v1alpha.AlphaAnalyticsData.RunReport", + "async": true, + "parameters": [ + { + "name": "property", + "type": "TYPE_STRING" + }, + { + "name": "dimensions", + "type": "TYPE_MESSAGE[]" + }, + { + "name": "metrics", + "type": "TYPE_MESSAGE[]" + }, + { + "name": "date_ranges", + "type": "TYPE_MESSAGE[]" + }, + { + "name": "dimension_filter", + "type": ".google.analytics.data.v1alpha.FilterExpression" + }, + { + "name": "metric_filter", + "type": ".google.analytics.data.v1alpha.FilterExpression" + }, + { + "name": "offset", + "type": "TYPE_INT64" + }, + { + "name": "limit", + "type": "TYPE_INT64" + }, + { + "name": "metric_aggregations", + "type": "TYPE_ENUM[]" + }, + { + "name": "order_bys", + "type": "TYPE_MESSAGE[]" + }, + { + "name": "currency_code", + "type": "TYPE_STRING" + }, + { + "name": "cohort_spec", + "type": ".google.analytics.data.v1alpha.CohortSpec" + }, + { + "name": "keep_empty_rows", + "type": "TYPE_BOOL" + }, + { + "name": "return_property_quota", + "type": "TYPE_BOOL" + }, + { + "name": "comparisons", + "type": "TYPE_MESSAGE[]" + }, + { + "name": "conversion_spec", + "type": ".google.analytics.data.v1alpha.ConversionSpec" + } + ], + "resultType": ".google.analytics.data.v1alpha.RunReportResponse", + "client": { + "shortName": "AlphaAnalyticsDataClient", + "fullName": "google.analytics.data.v1alpha.AlphaAnalyticsDataClient" + }, + "method": { + "shortName": "RunReport", + "fullName": "google.analytics.data.v1alpha.AlphaAnalyticsData.RunReport", + "service": { + "shortName": "AlphaAnalyticsData", + "fullName": "google.analytics.data.v1alpha.AlphaAnalyticsData" + } + } + } + }, + { + "regionTag": "analyticsdata_v1alpha_generated_AlphaAnalyticsData_GetMetadata_async", + "title": "AlphaAnalyticsData getMetadata Sample", + "origin": "API_DEFINITION", + "description": " Returns metadata for dimensions and metrics available in reporting methods. Used to explore the dimensions and metrics. In this method, a Google Analytics property identifier is specified in the request, and the metadata response includes Custom dimensions and metrics as well as Universal metadata. For example if a custom metric with parameter name `levels_unlocked` is registered to a property, the Metadata response will contain `customEvent:levels_unlocked`. Universal metadata are dimensions and metrics applicable to any property such as `country` and `totalUsers`.", + "canonical": true, + "file": "alpha_analytics_data.get_metadata.js", + "language": "JAVASCRIPT", + "segments": [ + { + "start": 25, + "end": 61, + "type": "FULL" + } + ], + "clientMethod": { + "shortName": "GetMetadata", + "fullName": "google.analytics.data.v1alpha.AlphaAnalyticsData.GetMetadata", + "async": true, + "parameters": [ + { + "name": "name", + "type": "TYPE_STRING" + } + ], + "resultType": ".google.analytics.data.v1alpha.Metadata", + "client": { + "shortName": "AlphaAnalyticsDataClient", + "fullName": "google.analytics.data.v1alpha.AlphaAnalyticsDataClient" + }, + "method": { + "shortName": "GetMetadata", + "fullName": "google.analytics.data.v1alpha.AlphaAnalyticsData.GetMetadata", + "service": { + "shortName": "AlphaAnalyticsData", + "fullName": "google.analytics.data.v1alpha.AlphaAnalyticsData" + } + } + } } ] } diff --git a/packages/google-analytics-data/src/index.ts b/packages/google-analytics-data/src/index.ts index f43adab04927..2d76b05e1e8e 100644 --- a/packages/google-analytics-data/src/index.ts +++ b/packages/google-analytics-data/src/index.ts @@ -1,4 +1,4 @@ -// Copyright 2026 Google LLC +// Copyright 2025 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/packages/google-analytics-data/src/v1alpha/alpha_analytics_data_client.ts b/packages/google-analytics-data/src/v1alpha/alpha_analytics_data_client.ts index 88250d216971..b2010ffa7be5 100644 --- a/packages/google-analytics-data/src/v1alpha/alpha_analytics_data_client.ts +++ b/packages/google-analytics-data/src/v1alpha/alpha_analytics_data_client.ts @@ -181,6 +181,9 @@ export class AlphaAnalyticsDataClient { audienceListPathTemplate: new this._gaxModule.PathTemplate( 'properties/{property}/audienceLists/{audience_list}' ), + metadataPathTemplate: new this._gaxModule.PathTemplate( + 'properties/{property}/metadata' + ), propertyPathTemplate: new this._gaxModule.PathTemplate( 'properties/{property}' ), @@ -283,7 +286,7 @@ export class AlphaAnalyticsDataClient { // Iterate over each of the methods that the service provides // and create an API call method for each. const alphaAnalyticsDataStubMethods = - ['runFunnelReport', 'createAudienceList', 'queryAudienceList', 'sheetExportAudienceList', 'getAudienceList', 'listAudienceLists', 'createRecurringAudienceList', 'getRecurringAudienceList', 'listRecurringAudienceLists', 'getPropertyQuotasSnapshot', 'createReportTask', 'queryReportTask', 'getReportTask', 'listReportTasks']; + ['runFunnelReport', 'createAudienceList', 'queryAudienceList', 'getAudienceList', 'listAudienceLists', 'createRecurringAudienceList', 'getRecurringAudienceList', 'listRecurringAudienceLists', 'getPropertyQuotasSnapshot', 'createReportTask', 'queryReportTask', 'getReportTask', 'listReportTasks', 'runReport', 'getMetadata']; for (const methodName of alphaAnalyticsDataStubMethods) { const callPromise = this.alphaAnalyticsDataStub.then( stub => (...args: Array<{}>) => { @@ -366,10 +369,7 @@ export class AlphaAnalyticsDataClient { static get scopes() { return [ 'https://www.googleapis.com/auth/analytics', - 'https://www.googleapis.com/auth/analytics.readonly', - 'https://www.googleapis.com/auth/drive', - 'https://www.googleapis.com/auth/drive.file', - 'https://www.googleapis.com/auth/spreadsheets' + 'https://www.googleapis.com/auth/analytics.readonly' ]; } @@ -692,140 +692,6 @@ export class AlphaAnalyticsDataClient { throw error; }); } -/** - * Exports an audience list of users to a Google Sheet. After creating an - * audience, the users are not immediately available for listing. First, a - * request to `CreateAudienceList` is necessary to create an audience list of - * users, and then second, this method is used to export those users in the - * audience list to a Google Sheet. - * - * See [Creating an Audience - * List](https://developers.google.com/analytics/devguides/reporting/data/v1/audience-list-basics) - * for an introduction to Audience Lists with examples. - * - * Audiences in Google Analytics 4 allow you to segment your users in the ways - * that are important to your business. To learn more, see - * https://support.google.com/analytics/answer/9267572. - * - * This method is introduced at alpha stability with the intention of - * gathering feedback on syntax and capabilities before entering beta. To give - * your feedback on this API, complete the - * [Google Analytics Audience Export API - * Feedback](https://forms.gle/EeA5u5LW6PEggtCEA) form. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.name - * Required. The name of the audience list to retrieve users from. - * Format: `properties/{property}/audienceLists/{audience_list}` - * @param {number} [request.offset] - * Optional. The row count of the start row. The first row is counted as row - * 0. - * - * When paging, the first request does not specify offset; or equivalently, - * sets offset to 0; the first request returns the first `limit` of rows. The - * second request sets offset to the `limit` of the first request; the second - * request returns the second `limit` of rows. - * - * To learn more about this pagination parameter, see - * [Pagination](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#pagination). - * @param {number} [request.limit] - * Optional. The number of rows to return. If unspecified, 10,000 rows are - * returned. The API returns a maximum of 250,000 rows per request, no matter - * how many you ask for. `limit` must be positive. - * - * The API can also return fewer rows than the requested `limit`, if there - * aren't as many dimension values as the `limit`. - * - * To learn more about this pagination parameter, see - * [Pagination](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#pagination). - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.analytics.data.v1alpha.SheetExportAudienceListResponse|SheetExportAudienceListResponse}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1alpha/alpha_analytics_data.sheet_export_audience_list.js - * region_tag:analyticsdata_v1alpha_generated_AlphaAnalyticsData_SheetExportAudienceList_async - */ - sheetExportAudienceList( - request?: protos.google.analytics.data.v1alpha.ISheetExportAudienceListRequest, - options?: CallOptions): - Promise<[ - protos.google.analytics.data.v1alpha.ISheetExportAudienceListResponse, - protos.google.analytics.data.v1alpha.ISheetExportAudienceListRequest|undefined, {}|undefined - ]>; - sheetExportAudienceList( - request: protos.google.analytics.data.v1alpha.ISheetExportAudienceListRequest, - options: CallOptions, - callback: Callback< - protos.google.analytics.data.v1alpha.ISheetExportAudienceListResponse, - protos.google.analytics.data.v1alpha.ISheetExportAudienceListRequest|null|undefined, - {}|null|undefined>): void; - sheetExportAudienceList( - request: protos.google.analytics.data.v1alpha.ISheetExportAudienceListRequest, - callback: Callback< - protos.google.analytics.data.v1alpha.ISheetExportAudienceListResponse, - protos.google.analytics.data.v1alpha.ISheetExportAudienceListRequest|null|undefined, - {}|null|undefined>): void; - sheetExportAudienceList( - request?: protos.google.analytics.data.v1alpha.ISheetExportAudienceListRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.analytics.data.v1alpha.ISheetExportAudienceListResponse, - protos.google.analytics.data.v1alpha.ISheetExportAudienceListRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< - protos.google.analytics.data.v1alpha.ISheetExportAudienceListResponse, - protos.google.analytics.data.v1alpha.ISheetExportAudienceListRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.analytics.data.v1alpha.ISheetExportAudienceListResponse, - protos.google.analytics.data.v1alpha.ISheetExportAudienceListRequest|undefined, {}|undefined - ]>|void { - request = request || {}; - let options: CallOptions; - if (typeof optionsOrCallback === 'function' && callback === undefined) { - callback = optionsOrCallback; - options = {}; - } - else { - options = optionsOrCallback as CallOptions; - } - options = options || {}; - options.otherArgs = options.otherArgs || {}; - options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'name': request.name ?? '', - }); - this.initialize().catch(err => {throw err}); - this._log.info('sheetExportAudienceList request %j', request); - const wrappedCallback: Callback< - protos.google.analytics.data.v1alpha.ISheetExportAudienceListResponse, - protos.google.analytics.data.v1alpha.ISheetExportAudienceListRequest|null|undefined, - {}|null|undefined>|undefined = callback - ? (error, response, options, rawResponse) => { - this._log.info('sheetExportAudienceList response %j', response); - callback!(error, response, options, rawResponse); // We verified callback above. - } - : undefined; - return this.innerApiCalls.sheetExportAudienceList(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.analytics.data.v1alpha.ISheetExportAudienceListResponse, - protos.google.analytics.data.v1alpha.ISheetExportAudienceListRequest|undefined, - {}|undefined - ]) => { - this._log.info('sheetExportAudienceList response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); - } - throw error; - }); - } /** * Gets configuration metadata about a specific audience list. This method * can be used to understand an audience list after it has been created. @@ -1470,6 +1336,307 @@ export class AlphaAnalyticsDataClient { throw error; }); } +/** + * Returns a customized report of your Google Analytics event data. Reports + * contain statistics derived from data collected by the Google Analytics + * tracking code. The data returned from the API is as a table with columns + * for the requested dimensions and metrics. Metrics are individual + * measurements of user activity on your property, such as active users or + * event count. Dimensions break down metrics across some common criteria, + * such as country or event name. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.property + * Required. A Google Analytics property identifier whose events are tracked. + * Specified in the URL path and not the body. To learn more, see [where to + * find your Property + * ID](https://developers.google.com/analytics/devguides/reporting/data/v1/property-id). + * Within a batch request, this property should either be unspecified or + * consistent with the batch-level property. + * + * Example: properties/1234 + * @param {number[]} [request.dimensions] + * Optional. The dimensions requested and displayed. + * @param {number[]} [request.metrics] + * Optional. The metrics requested and displayed. + * @param {number[]} [request.dateRanges] + * Optional. Date ranges of data to read. If multiple date ranges are + * requested, each response row will contain a zero based date range index. If + * two date ranges overlap, the event data for the overlapping days is + * included in the response rows for both date ranges. In a cohort request, + * this `dateRanges` must be unspecified. + * @param {google.analytics.data.v1alpha.FilterExpression} [request.dimensionFilter] + * Optional. Dimension filters let you ask for only specific dimension values + * in the report. To learn more, see [Fundamentals of Dimension + * Filters](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#dimension_filters) + * for examples. Metrics cannot be used in this filter. + * @param {google.analytics.data.v1alpha.FilterExpression} [request.metricFilter] + * Optional. The filter clause of metrics. Applied after aggregating the + * report's rows, similar to SQL having-clause. Dimensions cannot be used in + * this filter. + * @param {number} [request.offset] + * Optional. The row count of the start row. The first row is counted as row + * 0. + * + * When paging, the first request does not specify offset; or equivalently, + * sets offset to 0; the first request returns the first `limit` of rows. The + * second request sets offset to the `limit` of the first request; the second + * request returns the second `limit` of rows. + * + * To learn more about this pagination parameter, see + * [Pagination](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#pagination). + * @param {number} [request.limit] + * Optional. The maximum number of rows to return. If unspecified, 10,000 rows + * are returned. The API returns a maximum of 250,000 rows per request, no + * matter how many you ask for. `limit` must be positive. + * + * The API can also return fewer rows than the requested `limit`, if there + * aren't as many dimension values as the `limit`. For instance, there are + * fewer than 300 possible values for the dimension `country`, so when + * reporting on only `country`, you can't get more than 300 rows, even if you + * set `limit` to a higher value. + * + * To learn more about this pagination parameter, see + * [Pagination](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#pagination). + * @param {number[]} [request.metricAggregations] + * Optional. Aggregation of metrics. Aggregated metric values will be shown in + * rows where the dimension_values are set to "RESERVED_(MetricAggregation)". + * Aggregates including both comparisons and multiple date ranges will + * be aggregated based on the date ranges. + * @param {number[]} [request.orderBys] + * Optional. Specifies how rows are ordered in the response. + * Requests including both comparisons and multiple date ranges will + * have order bys applied on the comparisons. + * @param {string} [request.currencyCode] + * Optional. A currency code in ISO4217 format, such as "AED", "USD", "JPY". + * If the field is empty, the report uses the property's default currency. + * @param {google.analytics.data.v1alpha.CohortSpec} [request.cohortSpec] + * Optional. Cohort group associated with this request. If there is a cohort + * group in the request the 'cohort' dimension must be present. + * @param {boolean} [request.keepEmptyRows] + * Optional. If false or unspecified, each row with all metrics equal to 0 + * will not be returned. If true, these rows will be returned if they are not + * separately removed by a filter. + * + * Regardless of this `keep_empty_rows` setting, only data recorded by the + * Google Analytics property can be displayed in a report. + * + * For example if a property never logs a `purchase` event, then a query for + * the `eventName` dimension and `eventCount` metric will not have a row + * eventName: "purchase" and eventCount: 0. + * @param {boolean} [request.returnPropertyQuota] + * Optional. Toggles whether to return the current state of this Google + * Analytics property's quota. Quota is returned in + * [PropertyQuota](#PropertyQuota). + * @param {number[]} [request.comparisons] + * Optional. The configuration of comparisons requested and displayed. The + * request only requires a comparisons field in order to receive a comparison + * column in the response. + * @param {google.analytics.data.v1alpha.ConversionSpec} [request.conversionSpec] + * Optional. Controls conversion reporting. This field is optional. If this + * field is set or any conversion metrics are requested, the report will be a + * conversion report. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.analytics.data.v1alpha.RunReportResponse|RunReportResponse}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1alpha/alpha_analytics_data.run_report.js + * region_tag:analyticsdata_v1alpha_generated_AlphaAnalyticsData_RunReport_async + */ + runReport( + request?: protos.google.analytics.data.v1alpha.IRunReportRequest, + options?: CallOptions): + Promise<[ + protos.google.analytics.data.v1alpha.IRunReportResponse, + protos.google.analytics.data.v1alpha.IRunReportRequest|undefined, {}|undefined + ]>; + runReport( + request: protos.google.analytics.data.v1alpha.IRunReportRequest, + options: CallOptions, + callback: Callback< + protos.google.analytics.data.v1alpha.IRunReportResponse, + protos.google.analytics.data.v1alpha.IRunReportRequest|null|undefined, + {}|null|undefined>): void; + runReport( + request: protos.google.analytics.data.v1alpha.IRunReportRequest, + callback: Callback< + protos.google.analytics.data.v1alpha.IRunReportResponse, + protos.google.analytics.data.v1alpha.IRunReportRequest|null|undefined, + {}|null|undefined>): void; + runReport( + request?: protos.google.analytics.data.v1alpha.IRunReportRequest, + optionsOrCallback?: CallOptions|Callback< + protos.google.analytics.data.v1alpha.IRunReportResponse, + protos.google.analytics.data.v1alpha.IRunReportRequest|null|undefined, + {}|null|undefined>, + callback?: Callback< + protos.google.analytics.data.v1alpha.IRunReportResponse, + protos.google.analytics.data.v1alpha.IRunReportRequest|null|undefined, + {}|null|undefined>): + Promise<[ + protos.google.analytics.data.v1alpha.IRunReportResponse, + protos.google.analytics.data.v1alpha.IRunReportRequest|undefined, {}|undefined + ]>|void { + request = request || {}; + let options: CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } + else { + options = optionsOrCallback as CallOptions; + } + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers[ + 'x-goog-request-params' + ] = this._gaxModule.routingHeader.fromParams({ + 'property': request.property ?? '', + }); + this.initialize().catch(err => {throw err}); + this._log.info('runReport request %j', request); + const wrappedCallback: Callback< + protos.google.analytics.data.v1alpha.IRunReportResponse, + protos.google.analytics.data.v1alpha.IRunReportRequest|null|undefined, + {}|null|undefined>|undefined = callback + ? (error, response, options, rawResponse) => { + this._log.info('runReport response %j', response); + callback!(error, response, options, rawResponse); // We verified callback above. + } + : undefined; + return this.innerApiCalls.runReport(request, options, wrappedCallback) + ?.then(([response, options, rawResponse]: [ + protos.google.analytics.data.v1alpha.IRunReportResponse, + protos.google.analytics.data.v1alpha.IRunReportRequest|undefined, + {}|undefined + ]) => { + this._log.info('runReport response %j', response); + return [response, options, rawResponse]; + }).catch((error: any) => { + if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { + const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + } + throw error; + }); + } +/** + * Returns metadata for dimensions and metrics available in reporting methods. + * Used to explore the dimensions and metrics. In this method, a Google + * Analytics property identifier is specified in the request, and + * the metadata response includes Custom dimensions and metrics as well as + * Universal metadata. + * + * For example if a custom metric with parameter name `levels_unlocked` is + * registered to a property, the Metadata response will contain + * `customEvent:levels_unlocked`. Universal metadata are dimensions and + * metrics applicable to any property such as `country` and `totalUsers`. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.name + * Required. The resource name of the metadata to retrieve. This name field is + * specified in the URL path and not URL parameters. Property is a numeric + * Google Analytics property identifier. To learn more, see [where to find + * your Property + * ID](https://developers.google.com/analytics/devguides/reporting/data/v1/property-id). + * + * Example: properties/1234/metadata + * + * Set the Property ID to 0 for dimensions and metrics common to all + * properties. In this special mode, this method will not return custom + * dimensions and metrics. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.analytics.data.v1alpha.Metadata|Metadata}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1alpha/alpha_analytics_data.get_metadata.js + * region_tag:analyticsdata_v1alpha_generated_AlphaAnalyticsData_GetMetadata_async + */ + getMetadata( + request?: protos.google.analytics.data.v1alpha.IGetMetadataRequest, + options?: CallOptions): + Promise<[ + protos.google.analytics.data.v1alpha.IMetadata, + protos.google.analytics.data.v1alpha.IGetMetadataRequest|undefined, {}|undefined + ]>; + getMetadata( + request: protos.google.analytics.data.v1alpha.IGetMetadataRequest, + options: CallOptions, + callback: Callback< + protos.google.analytics.data.v1alpha.IMetadata, + protos.google.analytics.data.v1alpha.IGetMetadataRequest|null|undefined, + {}|null|undefined>): void; + getMetadata( + request: protos.google.analytics.data.v1alpha.IGetMetadataRequest, + callback: Callback< + protos.google.analytics.data.v1alpha.IMetadata, + protos.google.analytics.data.v1alpha.IGetMetadataRequest|null|undefined, + {}|null|undefined>): void; + getMetadata( + request?: protos.google.analytics.data.v1alpha.IGetMetadataRequest, + optionsOrCallback?: CallOptions|Callback< + protos.google.analytics.data.v1alpha.IMetadata, + protos.google.analytics.data.v1alpha.IGetMetadataRequest|null|undefined, + {}|null|undefined>, + callback?: Callback< + protos.google.analytics.data.v1alpha.IMetadata, + protos.google.analytics.data.v1alpha.IGetMetadataRequest|null|undefined, + {}|null|undefined>): + Promise<[ + protos.google.analytics.data.v1alpha.IMetadata, + protos.google.analytics.data.v1alpha.IGetMetadataRequest|undefined, {}|undefined + ]>|void { + request = request || {}; + let options: CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } + else { + options = optionsOrCallback as CallOptions; + } + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers[ + 'x-goog-request-params' + ] = this._gaxModule.routingHeader.fromParams({ + 'name': request.name ?? '', + }); + this.initialize().catch(err => {throw err}); + this._log.info('getMetadata request %j', request); + const wrappedCallback: Callback< + protos.google.analytics.data.v1alpha.IMetadata, + protos.google.analytics.data.v1alpha.IGetMetadataRequest|null|undefined, + {}|null|undefined>|undefined = callback + ? (error, response, options, rawResponse) => { + this._log.info('getMetadata response %j', response); + callback!(error, response, options, rawResponse); // We verified callback above. + } + : undefined; + return this.innerApiCalls.getMetadata(request, options, wrappedCallback) + ?.then(([response, options, rawResponse]: [ + protos.google.analytics.data.v1alpha.IMetadata, + protos.google.analytics.data.v1alpha.IGetMetadataRequest|undefined, + {}|undefined + ]) => { + this._log.info('getMetadata response %j', response); + return [response, options, rawResponse]; + }).catch((error: any) => { + if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { + const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + } + throw error; + }); + } /** * Creates an audience list for later retrieval. This method quickly returns @@ -2644,6 +2811,29 @@ export class AlphaAnalyticsDataClient { return this.pathTemplates.audienceListPathTemplate.match(audienceListName).audience_list; } + /** + * Return a fully-qualified metadata resource name string. + * + * @param {string} property + * @returns {string} Resource name string. + */ + metadataPath(property:string) { + return this.pathTemplates.metadataPathTemplate.render({ + property: property, + }); + } + + /** + * Parse the property from Metadata resource. + * + * @param {string} metadataName + * A fully-qualified path representing Metadata resource. + * @returns {string} A string representing the property. + */ + matchPropertyFromMetadataName(metadataName: string) { + return this.pathTemplates.metadataPathTemplate.match(metadataName).property; + } + /** * Return a fully-qualified property resource name string. * diff --git a/packages/google-analytics-data/src/v1alpha/alpha_analytics_data_client_config.json b/packages/google-analytics-data/src/v1alpha/alpha_analytics_data_client_config.json index 2fcd35e324d9..56d47db54383 100644 --- a/packages/google-analytics-data/src/v1alpha/alpha_analytics_data_client_config.json +++ b/packages/google-analytics-data/src/v1alpha/alpha_analytics_data_client_config.json @@ -47,11 +47,6 @@ "retry_codes_name": "unknown", "retry_params_name": "01d6d956b4dadd7e38ee9dec12ed8720e6e6f90c" }, - "SheetExportAudienceList": { - "timeout_millis": 60000, - "retry_codes_name": "unknown", - "retry_params_name": "01d6d956b4dadd7e38ee9dec12ed8720e6e6f90c" - }, "GetAudienceList": { "timeout_millis": 60000, "retry_codes_name": "unknown", @@ -101,6 +96,16 @@ "timeout_millis": 60000, "retry_codes_name": "unknown", "retry_params_name": "01d6d956b4dadd7e38ee9dec12ed8720e6e6f90c" + }, + "RunReport": { + "timeout_millis": 60000, + "retry_codes_name": "unknown", + "retry_params_name": "01d6d956b4dadd7e38ee9dec12ed8720e6e6f90c" + }, + "GetMetadata": { + "timeout_millis": 60000, + "retry_codes_name": "unknown", + "retry_params_name": "01d6d956b4dadd7e38ee9dec12ed8720e6e6f90c" } } } diff --git a/packages/google-analytics-data/src/v1alpha/gapic_metadata.json b/packages/google-analytics-data/src/v1alpha/gapic_metadata.json index b686a63cb9c3..d0689e4e3b83 100644 --- a/packages/google-analytics-data/src/v1alpha/gapic_metadata.json +++ b/packages/google-analytics-data/src/v1alpha/gapic_metadata.json @@ -20,11 +20,6 @@ "queryAudienceList" ] }, - "SheetExportAudienceList": { - "methods": [ - "sheetExportAudienceList" - ] - }, "GetAudienceList": { "methods": [ "getAudienceList" @@ -55,6 +50,16 @@ "getReportTask" ] }, + "RunReport": { + "methods": [ + "runReport" + ] + }, + "GetMetadata": { + "methods": [ + "getMetadata" + ] + }, "CreateAudienceList": { "methods": [ "createAudienceList" @@ -101,11 +106,6 @@ "queryAudienceList" ] }, - "SheetExportAudienceList": { - "methods": [ - "sheetExportAudienceList" - ] - }, "GetAudienceList": { "methods": [ "getAudienceList" @@ -136,6 +136,16 @@ "getReportTask" ] }, + "RunReport": { + "methods": [ + "runReport" + ] + }, + "GetMetadata": { + "methods": [ + "getMetadata" + ] + }, "CreateAudienceList": { "methods": [ "createAudienceList" diff --git a/packages/google-analytics-data/system-test/install.ts b/packages/google-analytics-data/system-test/install.ts index 394f3362d203..f66069aa3940 100644 --- a/packages/google-analytics-data/system-test/install.ts +++ b/packages/google-analytics-data/system-test/install.ts @@ -40,7 +40,7 @@ describe('📦 pack-n-play test', () => { packageDir: process.cwd(), sample: { description: 'JavaScript user can use the library', - ts: readFileSync('./system-test/fixtures/sample/src/index.js').toString() + cjs: readFileSync('./system-test/fixtures/sample/src/index.js').toString() } }; await packNTest(options); diff --git a/packages/google-analytics-data/test/gapic_alpha_analytics_data_v1alpha.ts b/packages/google-analytics-data/test/gapic_alpha_analytics_data_v1alpha.ts index 39997012e0ff..13e7fac4efb8 100644 --- a/packages/google-analytics-data/test/gapic_alpha_analytics_data_v1alpha.ts +++ b/packages/google-analytics-data/test/gapic_alpha_analytics_data_v1alpha.ts @@ -491,114 +491,6 @@ describe('v1alpha.AlphaAnalyticsDataClient', () => { }); }); - describe('sheetExportAudienceList', () => { - it('invokes sheetExportAudienceList without error', async () => { - const client = new alphaanalyticsdataModule.v1alpha.AlphaAnalyticsDataClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.analytics.data.v1alpha.SheetExportAudienceListRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.analytics.data.v1alpha.SheetExportAudienceListRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.analytics.data.v1alpha.SheetExportAudienceListResponse() - ); - client.innerApiCalls.sheetExportAudienceList = stubSimpleCall(expectedResponse); - const [response] = await client.sheetExportAudienceList(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.sheetExportAudienceList as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.sheetExportAudienceList as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes sheetExportAudienceList without error using callback', async () => { - const client = new alphaanalyticsdataModule.v1alpha.AlphaAnalyticsDataClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.analytics.data.v1alpha.SheetExportAudienceListRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.analytics.data.v1alpha.SheetExportAudienceListRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.analytics.data.v1alpha.SheetExportAudienceListResponse() - ); - client.innerApiCalls.sheetExportAudienceList = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.sheetExportAudienceList( - request, - (err?: Error|null, result?: protos.google.analytics.data.v1alpha.ISheetExportAudienceListResponse|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.sheetExportAudienceList as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.sheetExportAudienceList as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes sheetExportAudienceList with error', async () => { - const client = new alphaanalyticsdataModule.v1alpha.AlphaAnalyticsDataClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.analytics.data.v1alpha.SheetExportAudienceListRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.analytics.data.v1alpha.SheetExportAudienceListRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.sheetExportAudienceList = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.sheetExportAudienceList(request), expectedError); - const actualRequest = (client.innerApiCalls.sheetExportAudienceList as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.sheetExportAudienceList as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes sheetExportAudienceList with closed client', async () => { - const client = new alphaanalyticsdataModule.v1alpha.AlphaAnalyticsDataClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.analytics.data.v1alpha.SheetExportAudienceListRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.analytics.data.v1alpha.SheetExportAudienceListRequest', ['name']); - request.name = defaultValue1; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.sheetExportAudienceList(request), expectedError); - }); - }); - describe('getAudienceList', () => { it('invokes getAudienceList without error', async () => { const client = new alphaanalyticsdataModule.v1alpha.AlphaAnalyticsDataClient({ @@ -1247,6 +1139,222 @@ describe('v1alpha.AlphaAnalyticsDataClient', () => { }); }); + describe('runReport', () => { + it('invokes runReport without error', async () => { + const client = new alphaanalyticsdataModule.v1alpha.AlphaAnalyticsDataClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.analytics.data.v1alpha.RunReportRequest() + ); + const defaultValue1 = + getTypeDefaultValue('.google.analytics.data.v1alpha.RunReportRequest', ['property']); + request.property = defaultValue1; + const expectedHeaderRequestParams = `property=${defaultValue1 ?? '' }`; + const expectedResponse = generateSampleMessage( + new protos.google.analytics.data.v1alpha.RunReportResponse() + ); + client.innerApiCalls.runReport = stubSimpleCall(expectedResponse); + const [response] = await client.runReport(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.runReport as SinonStub) + .getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = (client.innerApiCalls.runReport as SinonStub) + .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes runReport without error using callback', async () => { + const client = new alphaanalyticsdataModule.v1alpha.AlphaAnalyticsDataClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.analytics.data.v1alpha.RunReportRequest() + ); + const defaultValue1 = + getTypeDefaultValue('.google.analytics.data.v1alpha.RunReportRequest', ['property']); + request.property = defaultValue1; + const expectedHeaderRequestParams = `property=${defaultValue1 ?? '' }`; + const expectedResponse = generateSampleMessage( + new protos.google.analytics.data.v1alpha.RunReportResponse() + ); + client.innerApiCalls.runReport = stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.runReport( + request, + (err?: Error|null, result?: protos.google.analytics.data.v1alpha.IRunReportResponse|null) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.runReport as SinonStub) + .getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = (client.innerApiCalls.runReport as SinonStub) + .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes runReport with error', async () => { + const client = new alphaanalyticsdataModule.v1alpha.AlphaAnalyticsDataClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.analytics.data.v1alpha.RunReportRequest() + ); + const defaultValue1 = + getTypeDefaultValue('.google.analytics.data.v1alpha.RunReportRequest', ['property']); + request.property = defaultValue1; + const expectedHeaderRequestParams = `property=${defaultValue1 ?? '' }`; + const expectedError = new Error('expected'); + client.innerApiCalls.runReport = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.runReport(request), expectedError); + const actualRequest = (client.innerApiCalls.runReport as SinonStub) + .getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = (client.innerApiCalls.runReport as SinonStub) + .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes runReport with closed client', async () => { + const client = new alphaanalyticsdataModule.v1alpha.AlphaAnalyticsDataClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.analytics.data.v1alpha.RunReportRequest() + ); + const defaultValue1 = + getTypeDefaultValue('.google.analytics.data.v1alpha.RunReportRequest', ['property']); + request.property = defaultValue1; + const expectedError = new Error('The client has already been closed.'); + client.close().catch(err => {throw err}); + await assert.rejects(client.runReport(request), expectedError); + }); + }); + + describe('getMetadata', () => { + it('invokes getMetadata without error', async () => { + const client = new alphaanalyticsdataModule.v1alpha.AlphaAnalyticsDataClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.analytics.data.v1alpha.GetMetadataRequest() + ); + const defaultValue1 = + getTypeDefaultValue('.google.analytics.data.v1alpha.GetMetadataRequest', ['name']); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; + const expectedResponse = generateSampleMessage( + new protos.google.analytics.data.v1alpha.Metadata() + ); + client.innerApiCalls.getMetadata = stubSimpleCall(expectedResponse); + const [response] = await client.getMetadata(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.getMetadata as SinonStub) + .getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = (client.innerApiCalls.getMetadata as SinonStub) + .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes getMetadata without error using callback', async () => { + const client = new alphaanalyticsdataModule.v1alpha.AlphaAnalyticsDataClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.analytics.data.v1alpha.GetMetadataRequest() + ); + const defaultValue1 = + getTypeDefaultValue('.google.analytics.data.v1alpha.GetMetadataRequest', ['name']); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; + const expectedResponse = generateSampleMessage( + new protos.google.analytics.data.v1alpha.Metadata() + ); + client.innerApiCalls.getMetadata = stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.getMetadata( + request, + (err?: Error|null, result?: protos.google.analytics.data.v1alpha.IMetadata|null) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.getMetadata as SinonStub) + .getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = (client.innerApiCalls.getMetadata as SinonStub) + .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes getMetadata with error', async () => { + const client = new alphaanalyticsdataModule.v1alpha.AlphaAnalyticsDataClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.analytics.data.v1alpha.GetMetadataRequest() + ); + const defaultValue1 = + getTypeDefaultValue('.google.analytics.data.v1alpha.GetMetadataRequest', ['name']); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; + const expectedError = new Error('expected'); + client.innerApiCalls.getMetadata = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.getMetadata(request), expectedError); + const actualRequest = (client.innerApiCalls.getMetadata as SinonStub) + .getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = (client.innerApiCalls.getMetadata as SinonStub) + .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes getMetadata with closed client', async () => { + const client = new alphaanalyticsdataModule.v1alpha.AlphaAnalyticsDataClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.analytics.data.v1alpha.GetMetadataRequest() + ); + const defaultValue1 = + getTypeDefaultValue('.google.analytics.data.v1alpha.GetMetadataRequest', ['name']); + request.name = defaultValue1; + const expectedError = new Error('The client has already been closed.'); + client.close().catch(err => {throw err}); + await assert.rejects(client.getMetadata(request), expectedError); + }); + }); + describe('createAudienceList', () => { it('invokes createAudienceList without error', async () => { const client = new alphaanalyticsdataModule.v1alpha.AlphaAnalyticsDataClient({ @@ -2585,6 +2693,36 @@ describe('v1alpha.AlphaAnalyticsDataClient', () => { }); }); + describe('metadata', async () => { + const fakePath = "/rendered/path/metadata"; + const expectedParameters = { + property: "propertyValue", + }; + const client = new alphaanalyticsdataModule.v1alpha.AlphaAnalyticsDataClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + await client.initialize(); + client.pathTemplates.metadataPathTemplate.render = + sinon.stub().returns(fakePath); + client.pathTemplates.metadataPathTemplate.match = + sinon.stub().returns(expectedParameters); + + it('metadataPath', () => { + const result = client.metadataPath("propertyValue"); + assert.strictEqual(result, fakePath); + assert((client.pathTemplates.metadataPathTemplate.render as SinonStub) + .getCall(-1).calledWith(expectedParameters)); + }); + + it('matchPropertyFromMetadataName', () => { + const result = client.matchPropertyFromMetadataName(fakePath); + assert.strictEqual(result, "propertyValue"); + assert((client.pathTemplates.metadataPathTemplate.match as SinonStub) + .getCall(-1).calledWith(fakePath)); + }); + }); + describe('property', async () => { const fakePath = "/rendered/path/property"; const expectedParameters = { diff --git a/packages/google-analytics-data/webpack.config.js b/packages/google-analytics-data/webpack.config.js index da5cdf30ed5f..f5f52a892738 100644 --- a/packages/google-analytics-data/webpack.config.js +++ b/packages/google-analytics-data/webpack.config.js @@ -1,4 +1,4 @@ -// Copyright 2026 Google LLC +// Copyright 2021 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License.