diff --git a/packages/google-shopping-merchant-reports/.gitattributes b/packages/google-shopping-merchant-reports/.gitattributes new file mode 100644 index 000000000000..33739cb74e44 --- /dev/null +++ b/packages/google-shopping-merchant-reports/.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-shopping-merchant-reports/.prettierignore b/packages/google-shopping-merchant-reports/.prettierignore new file mode 100644 index 000000000000..9340ad9b86d3 --- /dev/null +++ b/packages/google-shopping-merchant-reports/.prettierignore @@ -0,0 +1,6 @@ +**/node_modules +**/coverage +test/fixtures +build/ +docs/ +protos/ diff --git a/packages/google-shopping-merchant-reports/.prettierrc.js b/packages/google-shopping-merchant-reports/.prettierrc.js new file mode 100644 index 000000000000..7649ee3c254e --- /dev/null +++ b/packages/google-shopping-merchant-reports/.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-shopping-merchant-reports/CODE_OF_CONDUCT.md b/packages/google-shopping-merchant-reports/CODE_OF_CONDUCT.md new file mode 100644 index 000000000000..2add2547a812 --- /dev/null +++ b/packages/google-shopping-merchant-reports/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-shopping-merchant-reports/CONTRIBUTING.md b/packages/google-shopping-merchant-reports/CONTRIBUTING.md new file mode 100644 index 000000000000..bb0151063f50 --- /dev/null +++ b/packages/google-shopping-merchant-reports/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 Reports 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=merchantapi.googleapis.com +[auth]: https://cloud.google.com/docs/authentication/getting-started \ No newline at end of file diff --git a/packages/google-shopping-merchant-reports/LICENSE b/packages/google-shopping-merchant-reports/LICENSE new file mode 100644 index 000000000000..d64569567334 --- /dev/null +++ b/packages/google-shopping-merchant-reports/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-shopping-merchant-reports/protos/google/shopping/merchant/reports/v1/reports.proto b/packages/google-shopping-merchant-reports/protos/google/shopping/merchant/reports/v1/reports.proto index 5d992b770db8..1e4393292905 100644 --- a/packages/google-shopping-merchant-reports/protos/google/shopping/merchant/reports/v1/reports.proto +++ b/packages/google-shopping-merchant-reports/protos/google/shopping/merchant/reports/v1/reports.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. @@ -60,11 +60,11 @@ message SearchRequest { // For details on how to construct your query, see the [Query Language // guide](/merchant/api/guides/reports/query-language). For the full list of // available tables and fields, see the [Available - // fields](/merchant/api/reference/rest/reports_v1/accounts.reports). + // fields][google.shopping.merchant.reports.v1.ReportRow]. string query = 2 [(google.api.field_behavior) = REQUIRED]; // Optional. Number of `ReportRows` to retrieve in a single page. Defaults to - // 1000. Values above 5000 are coerced to 5000. + // 1000. Values above 100,000 are coerced to 100,000. int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL]; // Optional. Token of the page to retrieve. If not specified, the first page @@ -158,6 +158,13 @@ message ProductPerformanceView { // returned. optional string customer_country_code = 4; + // Store type to which metrics apply. Can be `ONLINE_STORE` or + // `LOCAL_STORES`. Segment. + // + // For `LOCAL_STORES` store type, further segmentation by a specific store + // is not available. + optional StoreType.StoreTypeEnum store_type = 32; + // Merchant-provided id of the product. Segment. optional string offer_id = 5; @@ -266,16 +273,16 @@ message ProductPerformanceView { // Fields available for query in `product_view` table. // -// Products in the current inventory. Products in this table are the same as in -// Products sub-API but not all product attributes from Products sub-API are -// available for query in this table. In contrast to Products sub-API, this -// table allows to filter the returned list of products by product attributes. -// To retrieve a single product by `id` or list all products, Products sub-API -// should be used. +// Products in the current inventory. Products in this table are the +// same as a [Product resource in Products +// sub-API](https://developers.google.com/merchant/api/reference/rest/products_v1/accounts.products) +// but not all product attributes from Products sub-API are available for query +// in this table. In contrast to Products sub-API, this table allows to filter +// the returned list of products by product attributes. To retrieve a single +// product by `id` or list all products, Products sub-API should be used. // // Values are only set for fields requested explicitly in the request's search // query. -// message ProductView { // Item issue associated with the product. message ItemIssue { @@ -322,11 +329,18 @@ message ProductView { } // Issue severity per reporting context. + // + // Reporting contexts included in this list can be restricted using a + // filter on the `reporting_context` field. repeated IssueSeverityPerReportingContext severity_per_reporting_context = 1; // Aggregated severity of the issue for all reporting contexts it affects. // + // Reporting contexts included in the computation of the aggregated + // severity can be restricted using a filter on the `reporting_context` + // field. + // // **This field can be used for filtering the results.** optional AggregatedIssueSeverity aggregated_severity = 2; } @@ -355,8 +369,37 @@ message ProductView { optional ItemIssueResolution resolution = 3; } + // Status of the product for a specific reporting context. + // + // Equivalent to + // [`DestinationStatus`][google.shopping.merchant.products.v1.ProductStatus.DestinationStatus] + // in Products API. + message StatusPerReportingContext { + // Reporting context the status applies to. + optional google.shopping.type.ReportingContext.ReportingContextEnum + reporting_context = 1; + + // List of approved countries in the reporting context, represented in + // [ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format, for + // example, `US`. + repeated string approved_countries = 2; + + // List of disapproved countries in the reporting context, represented in + // [ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format, for + // example, `US`. + repeated string disapproved_countries = 3; + + // List of pending countries in the reporting context, represented in + // [ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format, for + // example, `US`. + repeated string pending_countries = 4; + } + // Status of the product aggregated for all reporting contexts. // + // Reporting contexts included in the computation of the aggregated status can + // be restricted using a filter on the `reporting_context` field. + // // Here's an example of how the aggregated status is computed: // // Free listings | Shopping ads | Status @@ -372,16 +415,18 @@ message ProductView { // Not specified. AGGREGATED_REPORTING_CONTEXT_STATUS_UNSPECIFIED = 0; - // Product is not eligible or is disapproved for all reporting contexts. + // Product is not eligible or is disapproved for all reporting contexts and + // countries. NOT_ELIGIBLE_OR_DISAPPROVED = 1; - // Product's status is pending in all reporting contexts. + // Product's status is pending in all reporting contexts and countries. PENDING = 2; - // Product is eligible for some (but not all) reporting contexts. + // Product is eligible for some (but not all) reporting contexts and + // countries. ELIGIBLE_LIMITED = 3; - // Product is eligible for all reporting contexts. + // Product is eligible for all reporting contexts and countries. ELIGIBLE = 4; } @@ -506,10 +551,36 @@ message ProductView { // Expiration date for the product, specified on insertion. google.type.Date expiration_date = 25; - // Aggregated status. + // Aggregated status across all reporting contexts. + // + // Reporting contexts included in the computation of the aggregated status can + // be restricted using a filter on the `reporting_context` field. optional AggregatedReportingContextStatus aggregated_reporting_context_status = 26; + // Detailed product status per reporting context. + // + // Reporting contexts included in this list can be restricted using a filter + // on the `reporting_context` field. + // + // Equivalent to + // [`ProductStatus.destination_statuses`][google.shopping.merchant.products.v1.ProductStatus] + // in Products API. + // + // **This field cannot be used for sorting or filtering the results.** + repeated StatusPerReportingContext status_per_reporting_context = 32; + + // Reporting context to restrict the query to. + // + // Restricts the reporting contexts returned in `status_per_reporting_context` + // and `item_issues`, and used to compute + // `aggregated_reporting_context_status`. + // + // **This field can only be used in the `WHERE` clause and cannot be selected + // in the `SELECT` clause.** + optional google.shopping.type.ReportingContext.ReportingContextEnum + reporting_context = 33; + // List of item issues for the product. // // **This field cannot be used for sorting the results.** @@ -523,9 +594,8 @@ message ProductView { // the merchant. ClickPotential click_potential = 29; - // Rank of the product based on its click potential. A product with - // `click_potential_rank` 1 has the highest click potential among the - // merchant's products that fulfill the search query conditions. + // Normalized click potential of the product. Values range from 1 to 1000, + // where 1 is the highest click potential and 1000 is the theoretical lowest. optional int64 click_potential_rank = 30; } @@ -1175,6 +1245,21 @@ message MarketingMethod { } } +// Store where the product is sold (online versus local stores). +message StoreType { + // Store types. + enum StoreTypeEnum { + // Not specified. + STORE_TYPE_ENUM_UNSPECIFIED = 0; + + // Online store. + ONLINE_STORE = 1; + + // Local (physical) stores. + LOCAL_STORES = 2; + } +} + // Granularity of the Best sellers report. Best sellers reports are computed // over a week and a month timeframe. message ReportGranularity { diff --git a/packages/google-shopping-merchant-reports/protos/protos.d.ts b/packages/google-shopping-merchant-reports/protos/protos.d.ts index 64bc2c8b877c..4c9adeb4a8d7 100644 --- a/packages/google-shopping-merchant-reports/protos/protos.d.ts +++ b/packages/google-shopping-merchant-reports/protos/protos.d.ts @@ -458,6 +458,9 @@ export namespace google { /** ProductPerformanceView customerCountryCode */ customerCountryCode?: (string|null); + /** ProductPerformanceView storeType */ + storeType?: (google.shopping.merchant.reports.v1.StoreType.StoreTypeEnum|keyof typeof google.shopping.merchant.reports.v1.StoreType.StoreTypeEnum|null); + /** ProductPerformanceView offerId */ offerId?: (string|null); @@ -552,6 +555,9 @@ export namespace google { /** ProductPerformanceView customerCountryCode. */ public customerCountryCode?: (string|null); + /** ProductPerformanceView storeType. */ + public storeType?: (google.shopping.merchant.reports.v1.StoreType.StoreTypeEnum|keyof typeof google.shopping.merchant.reports.v1.StoreType.StoreTypeEnum|null); + /** ProductPerformanceView offerId. */ public offerId?: (string|null); @@ -786,6 +792,12 @@ export namespace google { /** ProductView aggregatedReportingContextStatus */ aggregatedReportingContextStatus?: (google.shopping.merchant.reports.v1.ProductView.AggregatedReportingContextStatus|keyof typeof google.shopping.merchant.reports.v1.ProductView.AggregatedReportingContextStatus|null); + /** ProductView statusPerReportingContext */ + statusPerReportingContext?: (google.shopping.merchant.reports.v1.ProductView.IStatusPerReportingContext[]|null); + + /** ProductView reportingContext */ + reportingContext?: (google.shopping.type.ReportingContext.ReportingContextEnum|keyof typeof google.shopping.type.ReportingContext.ReportingContextEnum|null); + /** ProductView itemIssues */ itemIssues?: (google.shopping.merchant.reports.v1.ProductView.IItemIssue[]|null); @@ -886,6 +898,12 @@ export namespace google { /** ProductView aggregatedReportingContextStatus. */ public aggregatedReportingContextStatus?: (google.shopping.merchant.reports.v1.ProductView.AggregatedReportingContextStatus|keyof typeof google.shopping.merchant.reports.v1.ProductView.AggregatedReportingContextStatus|null); + /** ProductView statusPerReportingContext. */ + public statusPerReportingContext: google.shopping.merchant.reports.v1.ProductView.IStatusPerReportingContext[]; + + /** ProductView reportingContext. */ + public reportingContext?: (google.shopping.type.ReportingContext.ReportingContextEnum|keyof typeof google.shopping.type.ReportingContext.ReportingContextEnum|null); + /** ProductView itemIssues. */ public itemIssues: google.shopping.merchant.reports.v1.ProductView.IItemIssue[]; @@ -1420,6 +1438,121 @@ export namespace google { } } + /** Properties of a StatusPerReportingContext. */ + interface IStatusPerReportingContext { + + /** StatusPerReportingContext reportingContext */ + reportingContext?: (google.shopping.type.ReportingContext.ReportingContextEnum|keyof typeof google.shopping.type.ReportingContext.ReportingContextEnum|null); + + /** StatusPerReportingContext approvedCountries */ + approvedCountries?: (string[]|null); + + /** StatusPerReportingContext disapprovedCountries */ + disapprovedCountries?: (string[]|null); + + /** StatusPerReportingContext pendingCountries */ + pendingCountries?: (string[]|null); + } + + /** Represents a StatusPerReportingContext. */ + class StatusPerReportingContext implements IStatusPerReportingContext { + + /** + * Constructs a new StatusPerReportingContext. + * @param [properties] Properties to set + */ + constructor(properties?: google.shopping.merchant.reports.v1.ProductView.IStatusPerReportingContext); + + /** StatusPerReportingContext reportingContext. */ + public reportingContext?: (google.shopping.type.ReportingContext.ReportingContextEnum|keyof typeof google.shopping.type.ReportingContext.ReportingContextEnum|null); + + /** StatusPerReportingContext approvedCountries. */ + public approvedCountries: string[]; + + /** StatusPerReportingContext disapprovedCountries. */ + public disapprovedCountries: string[]; + + /** StatusPerReportingContext pendingCountries. */ + public pendingCountries: string[]; + + /** + * Creates a new StatusPerReportingContext instance using the specified properties. + * @param [properties] Properties to set + * @returns StatusPerReportingContext instance + */ + public static create(properties?: google.shopping.merchant.reports.v1.ProductView.IStatusPerReportingContext): google.shopping.merchant.reports.v1.ProductView.StatusPerReportingContext; + + /** + * Encodes the specified StatusPerReportingContext message. Does not implicitly {@link google.shopping.merchant.reports.v1.ProductView.StatusPerReportingContext.verify|verify} messages. + * @param message StatusPerReportingContext message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.shopping.merchant.reports.v1.ProductView.IStatusPerReportingContext, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified StatusPerReportingContext message, length delimited. Does not implicitly {@link google.shopping.merchant.reports.v1.ProductView.StatusPerReportingContext.verify|verify} messages. + * @param message StatusPerReportingContext message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.shopping.merchant.reports.v1.ProductView.IStatusPerReportingContext, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a StatusPerReportingContext message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns StatusPerReportingContext + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.shopping.merchant.reports.v1.ProductView.StatusPerReportingContext; + + /** + * Decodes a StatusPerReportingContext message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns StatusPerReportingContext + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.shopping.merchant.reports.v1.ProductView.StatusPerReportingContext; + + /** + * Verifies a StatusPerReportingContext 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 StatusPerReportingContext message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns StatusPerReportingContext + */ + public static fromObject(object: { [k: string]: any }): google.shopping.merchant.reports.v1.ProductView.StatusPerReportingContext; + + /** + * Creates a plain object from a StatusPerReportingContext message. Also converts values to other types if specified. + * @param message StatusPerReportingContext + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.shopping.merchant.reports.v1.ProductView.StatusPerReportingContext, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this StatusPerReportingContext to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for StatusPerReportingContext + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + /** AggregatedReportingContextStatus enum. */ enum AggregatedReportingContextStatus { AGGREGATED_REPORTING_CONTEXT_STATUS_UNSPECIFIED = 0, @@ -2877,6 +3010,107 @@ export namespace google { } } + /** Properties of a StoreType. */ + interface IStoreType { + } + + /** Represents a StoreType. */ + class StoreType implements IStoreType { + + /** + * Constructs a new StoreType. + * @param [properties] Properties to set + */ + constructor(properties?: google.shopping.merchant.reports.v1.IStoreType); + + /** + * Creates a new StoreType instance using the specified properties. + * @param [properties] Properties to set + * @returns StoreType instance + */ + public static create(properties?: google.shopping.merchant.reports.v1.IStoreType): google.shopping.merchant.reports.v1.StoreType; + + /** + * Encodes the specified StoreType message. Does not implicitly {@link google.shopping.merchant.reports.v1.StoreType.verify|verify} messages. + * @param message StoreType message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.shopping.merchant.reports.v1.IStoreType, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified StoreType message, length delimited. Does not implicitly {@link google.shopping.merchant.reports.v1.StoreType.verify|verify} messages. + * @param message StoreType message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.shopping.merchant.reports.v1.IStoreType, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a StoreType message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns StoreType + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.shopping.merchant.reports.v1.StoreType; + + /** + * Decodes a StoreType message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns StoreType + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.shopping.merchant.reports.v1.StoreType; + + /** + * Verifies a StoreType 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 StoreType message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns StoreType + */ + public static fromObject(object: { [k: string]: any }): google.shopping.merchant.reports.v1.StoreType; + + /** + * Creates a plain object from a StoreType message. Also converts values to other types if specified. + * @param message StoreType + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.shopping.merchant.reports.v1.StoreType, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this StoreType to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for StoreType + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + namespace StoreType { + + /** StoreTypeEnum enum. */ + enum StoreTypeEnum { + STORE_TYPE_ENUM_UNSPECIFIED = 0, + ONLINE_STORE = 1, + LOCAL_STORES = 2 + } + } + /** Properties of a ReportGranularity. */ interface IReportGranularity { } diff --git a/packages/google-shopping-merchant-reports/protos/protos.js b/packages/google-shopping-merchant-reports/protos/protos.js index 85867e3c0151..dead437b92c6 100644 --- a/packages/google-shopping-merchant-reports/protos/protos.js +++ b/packages/google-shopping-merchant-reports/protos/protos.js @@ -1141,6 +1141,7 @@ * @property {google.type.IDate|null} [date] ProductPerformanceView date * @property {google.type.IDate|null} [week] ProductPerformanceView week * @property {string|null} [customerCountryCode] ProductPerformanceView customerCountryCode + * @property {google.shopping.merchant.reports.v1.StoreType.StoreTypeEnum|null} [storeType] ProductPerformanceView storeType * @property {string|null} [offerId] ProductPerformanceView offerId * @property {string|null} [title] ProductPerformanceView title * @property {string|null} [brand] ProductPerformanceView brand @@ -1214,6 +1215,14 @@ */ ProductPerformanceView.prototype.customerCountryCode = null; + /** + * ProductPerformanceView storeType. + * @member {google.shopping.merchant.reports.v1.StoreType.StoreTypeEnum|null|undefined} storeType + * @memberof google.shopping.merchant.reports.v1.ProductPerformanceView + * @instance + */ + ProductPerformanceView.prototype.storeType = null; + /** * ProductPerformanceView offerId. * @member {string|null|undefined} offerId @@ -1421,6 +1430,12 @@ set: $util.oneOfSetter($oneOfFields) }); + // Virtual OneOf for proto3 optional field + Object.defineProperty(ProductPerformanceView.prototype, "_storeType", { + get: $util.oneOfGetter($oneOfFields = ["storeType"]), + set: $util.oneOfSetter($oneOfFields) + }); + // Virtual OneOf for proto3 optional field Object.defineProperty(ProductPerformanceView.prototype, "_offerId", { get: $util.oneOfGetter($oneOfFields = ["offerId"]), @@ -1639,6 +1654,8 @@ $root.google.shopping.type.Price.encode(message.conversionValue, writer.uint32(/* id 27, wireType 2 =*/218).fork()).ldelim(); if (message.conversionRate != null && Object.hasOwnProperty.call(message, "conversionRate")) writer.uint32(/* id 28, wireType 1 =*/225).double(message.conversionRate); + if (message.storeType != null && Object.hasOwnProperty.call(message, "storeType")) + writer.uint32(/* id 32, wireType 0 =*/256).int32(message.storeType); return writer; }; @@ -1691,6 +1708,10 @@ message.customerCountryCode = reader.string(); break; } + case 32: { + message.storeType = reader.int32(); + break; + } case 5: { message.offerId = reader.string(); break; @@ -1849,6 +1870,17 @@ if (!$util.isString(message.customerCountryCode)) return "customerCountryCode: string expected"; } + if (message.storeType != null && message.hasOwnProperty("storeType")) { + properties._storeType = 1; + switch (message.storeType) { + default: + return "storeType: enum value expected"; + case 0: + case 1: + case 2: + break; + } + } if (message.offerId != null && message.hasOwnProperty("offerId")) { properties._offerId = 1; if (!$util.isString(message.offerId)) @@ -2016,6 +2048,26 @@ } if (object.customerCountryCode != null) message.customerCountryCode = String(object.customerCountryCode); + switch (object.storeType) { + default: + if (typeof object.storeType === "number") { + message.storeType = object.storeType; + break; + } + break; + case "STORE_TYPE_ENUM_UNSPECIFIED": + case 0: + message.storeType = 0; + break; + case "ONLINE_STORE": + case 1: + message.storeType = 1; + break; + case "LOCAL_STORES": + case 2: + message.storeType = 2; + break; + } if (object.offerId != null) message.offerId = String(object.offerId); if (object.title != null) @@ -2239,6 +2291,11 @@ if (options.oneofs) object._conversionRate = "conversionRate"; } + if (message.storeType != null && message.hasOwnProperty("storeType")) { + object.storeType = options.enums === String ? $root.google.shopping.merchant.reports.v1.StoreType.StoreTypeEnum[message.storeType] === undefined ? message.storeType : $root.google.shopping.merchant.reports.v1.StoreType.StoreTypeEnum[message.storeType] : message.storeType; + if (options.oneofs) + object._storeType = "storeType"; + } return object; }; @@ -2304,6 +2361,8 @@ * @property {google.protobuf.ITimestamp|null} [creationTime] ProductView creationTime * @property {google.type.IDate|null} [expirationDate] ProductView expirationDate * @property {google.shopping.merchant.reports.v1.ProductView.AggregatedReportingContextStatus|null} [aggregatedReportingContextStatus] ProductView aggregatedReportingContextStatus + * @property {Array.|null} [statusPerReportingContext] ProductView statusPerReportingContext + * @property {google.shopping.type.ReportingContext.ReportingContextEnum|null} [reportingContext] ProductView reportingContext * @property {Array.|null} [itemIssues] ProductView itemIssues * @property {google.shopping.merchant.reports.v1.ProductView.ClickPotential|null} [clickPotential] ProductView clickPotential * @property {number|Long|null} [clickPotentialRank] ProductView clickPotentialRank @@ -2319,6 +2378,7 @@ */ function ProductView(properties) { this.gtin = []; + this.statusPerReportingContext = []; this.itemIssues = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) @@ -2542,6 +2602,22 @@ */ ProductView.prototype.aggregatedReportingContextStatus = null; + /** + * ProductView statusPerReportingContext. + * @member {Array.} statusPerReportingContext + * @memberof google.shopping.merchant.reports.v1.ProductView + * @instance + */ + ProductView.prototype.statusPerReportingContext = $util.emptyArray; + + /** + * ProductView reportingContext. + * @member {google.shopping.type.ReportingContext.ReportingContextEnum|null|undefined} reportingContext + * @memberof google.shopping.merchant.reports.v1.ProductView + * @instance + */ + ProductView.prototype.reportingContext = null; + /** * ProductView itemIssues. * @member {Array.} itemIssues @@ -2707,6 +2783,12 @@ set: $util.oneOfSetter($oneOfFields) }); + // Virtual OneOf for proto3 optional field + Object.defineProperty(ProductView.prototype, "_reportingContext", { + get: $util.oneOfGetter($oneOfFields = ["reportingContext"]), + set: $util.oneOfSetter($oneOfFields) + }); + // Virtual OneOf for proto3 optional field Object.defineProperty(ProductView.prototype, "_clickPotentialRank", { get: $util.oneOfGetter($oneOfFields = ["clickPotentialRank"]), @@ -2799,6 +2881,11 @@ writer.uint32(/* id 29, wireType 0 =*/232).int32(message.clickPotential); if (message.clickPotentialRank != null && Object.hasOwnProperty.call(message, "clickPotentialRank")) writer.uint32(/* id 30, wireType 0 =*/240).int64(message.clickPotentialRank); + if (message.statusPerReportingContext != null && message.statusPerReportingContext.length) + for (var i = 0; i < message.statusPerReportingContext.length; ++i) + $root.google.shopping.merchant.reports.v1.ProductView.StatusPerReportingContext.encode(message.statusPerReportingContext[i], writer.uint32(/* id 32, wireType 2 =*/258).fork()).ldelim(); + if (message.reportingContext != null && Object.hasOwnProperty.call(message, "reportingContext")) + writer.uint32(/* id 33, wireType 0 =*/264).int32(message.reportingContext); return writer; }; @@ -2945,6 +3032,16 @@ message.aggregatedReportingContextStatus = reader.int32(); break; } + case 32: { + if (!(message.statusPerReportingContext && message.statusPerReportingContext.length)) + message.statusPerReportingContext = []; + message.statusPerReportingContext.push($root.google.shopping.merchant.reports.v1.ProductView.StatusPerReportingContext.decode(reader, reader.uint32())); + break; + } + case 33: { + message.reportingContext = reader.int32(); + break; + } case 27: { if (!(message.itemIssues && message.itemIssues.length)) message.itemIssues = []; @@ -3146,6 +3243,43 @@ break; } } + if (message.statusPerReportingContext != null && message.hasOwnProperty("statusPerReportingContext")) { + if (!Array.isArray(message.statusPerReportingContext)) + return "statusPerReportingContext: array expected"; + for (var i = 0; i < message.statusPerReportingContext.length; ++i) { + var error = $root.google.shopping.merchant.reports.v1.ProductView.StatusPerReportingContext.verify(message.statusPerReportingContext[i]); + if (error) + return "statusPerReportingContext." + error; + } + } + if (message.reportingContext != null && message.hasOwnProperty("reportingContext")) { + properties._reportingContext = 1; + switch (message.reportingContext) { + default: + return "reportingContext: enum value expected"; + case 0: + case 1: + case 2: + case 13: + case 14: + case 3: + case 4: + case 5: + case 6: + case 7: + case 19: + case 8: + case 9: + case 18: + case 10: + case 11: + case 12: + case 15: + case 16: + case 17: + break; + } + } if (message.itemIssues != null && message.hasOwnProperty("itemIssues")) { if (!Array.isArray(message.itemIssues)) return "itemIssues: array expected"; @@ -3297,6 +3431,104 @@ message.aggregatedReportingContextStatus = 4; break; } + if (object.statusPerReportingContext) { + if (!Array.isArray(object.statusPerReportingContext)) + throw TypeError(".google.shopping.merchant.reports.v1.ProductView.statusPerReportingContext: array expected"); + message.statusPerReportingContext = []; + for (var i = 0; i < object.statusPerReportingContext.length; ++i) { + if (typeof object.statusPerReportingContext[i] !== "object") + throw TypeError(".google.shopping.merchant.reports.v1.ProductView.statusPerReportingContext: object expected"); + message.statusPerReportingContext[i] = $root.google.shopping.merchant.reports.v1.ProductView.StatusPerReportingContext.fromObject(object.statusPerReportingContext[i]); + } + } + switch (object.reportingContext) { + default: + if (typeof object.reportingContext === "number") { + message.reportingContext = object.reportingContext; + break; + } + break; + case "REPORTING_CONTEXT_ENUM_UNSPECIFIED": + case 0: + message.reportingContext = 0; + break; + case "SHOPPING_ADS": + case 1: + message.reportingContext = 1; + break; + case "DISCOVERY_ADS": + case 2: + message.reportingContext = 2; + break; + case "DEMAND_GEN_ADS": + case 13: + message.reportingContext = 13; + break; + case "DEMAND_GEN_ADS_DISCOVER_SURFACE": + case 14: + message.reportingContext = 14; + break; + case "VIDEO_ADS": + case 3: + message.reportingContext = 3; + break; + case "DISPLAY_ADS": + case 4: + message.reportingContext = 4; + break; + case "LOCAL_INVENTORY_ADS": + case 5: + message.reportingContext = 5; + break; + case "VEHICLE_INVENTORY_ADS": + case 6: + message.reportingContext = 6; + break; + case "FREE_LISTINGS": + case 7: + message.reportingContext = 7; + break; + case "FREE_LISTINGS_UCP_CHECKOUT": + case 19: + message.reportingContext = 19; + break; + case "FREE_LOCAL_LISTINGS": + case 8: + message.reportingContext = 8; + break; + case "FREE_LOCAL_VEHICLE_LISTINGS": + case 9: + message.reportingContext = 9; + break; + case "YOUTUBE_AFFILIATE": + case 18: + message.reportingContext = 18; + break; + case "YOUTUBE_SHOPPING": + case 10: + message.reportingContext = 10; + break; + case "CLOUD_RETAIL": + case 11: + message.reportingContext = 11; + break; + case "LOCAL_CLOUD_RETAIL": + case 12: + message.reportingContext = 12; + break; + case "PRODUCT_REVIEWS": + case 15: + message.reportingContext = 15; + break; + case "MERCHANT_REVIEWS": + case 16: + message.reportingContext = 16; + break; + case "YOUTUBE_CHECKOUT": + case 17: + message.reportingContext = 17; + break; + } if (object.itemIssues) { if (!Array.isArray(object.itemIssues)) throw TypeError(".google.shopping.merchant.reports.v1.ProductView.itemIssues: array expected"); @@ -3359,6 +3591,7 @@ if (options.arrays || options.defaults) { object.gtin = []; object.itemIssues = []; + object.statusPerReportingContext = []; } if (options.defaults) { object.price = null; @@ -3507,6 +3740,16 @@ if (options.oneofs) object._clickPotentialRank = "clickPotentialRank"; } + if (message.statusPerReportingContext && message.statusPerReportingContext.length) { + object.statusPerReportingContext = []; + for (var j = 0; j < message.statusPerReportingContext.length; ++j) + object.statusPerReportingContext[j] = $root.google.shopping.merchant.reports.v1.ProductView.StatusPerReportingContext.toObject(message.statusPerReportingContext[j], options); + } + if (message.reportingContext != null && message.hasOwnProperty("reportingContext")) { + object.reportingContext = options.enums === String ? $root.google.shopping.type.ReportingContext.ReportingContextEnum[message.reportingContext] === undefined ? message.reportingContext : $root.google.shopping.type.ReportingContext.ReportingContextEnum[message.reportingContext] : message.reportingContext; + if (options.oneofs) + object._reportingContext = "reportingContext"; + } return object; }; @@ -4820,6 +5063,452 @@ return ItemIssue; })(); + ProductView.StatusPerReportingContext = (function() { + + /** + * Properties of a StatusPerReportingContext. + * @memberof google.shopping.merchant.reports.v1.ProductView + * @interface IStatusPerReportingContext + * @property {google.shopping.type.ReportingContext.ReportingContextEnum|null} [reportingContext] StatusPerReportingContext reportingContext + * @property {Array.|null} [approvedCountries] StatusPerReportingContext approvedCountries + * @property {Array.|null} [disapprovedCountries] StatusPerReportingContext disapprovedCountries + * @property {Array.|null} [pendingCountries] StatusPerReportingContext pendingCountries + */ + + /** + * Constructs a new StatusPerReportingContext. + * @memberof google.shopping.merchant.reports.v1.ProductView + * @classdesc Represents a StatusPerReportingContext. + * @implements IStatusPerReportingContext + * @constructor + * @param {google.shopping.merchant.reports.v1.ProductView.IStatusPerReportingContext=} [properties] Properties to set + */ + function StatusPerReportingContext(properties) { + this.approvedCountries = []; + this.disapprovedCountries = []; + this.pendingCountries = []; + 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]]; + } + + /** + * StatusPerReportingContext reportingContext. + * @member {google.shopping.type.ReportingContext.ReportingContextEnum|null|undefined} reportingContext + * @memberof google.shopping.merchant.reports.v1.ProductView.StatusPerReportingContext + * @instance + */ + StatusPerReportingContext.prototype.reportingContext = null; + + /** + * StatusPerReportingContext approvedCountries. + * @member {Array.} approvedCountries + * @memberof google.shopping.merchant.reports.v1.ProductView.StatusPerReportingContext + * @instance + */ + StatusPerReportingContext.prototype.approvedCountries = $util.emptyArray; + + /** + * StatusPerReportingContext disapprovedCountries. + * @member {Array.} disapprovedCountries + * @memberof google.shopping.merchant.reports.v1.ProductView.StatusPerReportingContext + * @instance + */ + StatusPerReportingContext.prototype.disapprovedCountries = $util.emptyArray; + + /** + * StatusPerReportingContext pendingCountries. + * @member {Array.} pendingCountries + * @memberof google.shopping.merchant.reports.v1.ProductView.StatusPerReportingContext + * @instance + */ + StatusPerReportingContext.prototype.pendingCountries = $util.emptyArray; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + // Virtual OneOf for proto3 optional field + Object.defineProperty(StatusPerReportingContext.prototype, "_reportingContext", { + get: $util.oneOfGetter($oneOfFields = ["reportingContext"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new StatusPerReportingContext instance using the specified properties. + * @function create + * @memberof google.shopping.merchant.reports.v1.ProductView.StatusPerReportingContext + * @static + * @param {google.shopping.merchant.reports.v1.ProductView.IStatusPerReportingContext=} [properties] Properties to set + * @returns {google.shopping.merchant.reports.v1.ProductView.StatusPerReportingContext} StatusPerReportingContext instance + */ + StatusPerReportingContext.create = function create(properties) { + return new StatusPerReportingContext(properties); + }; + + /** + * Encodes the specified StatusPerReportingContext message. Does not implicitly {@link google.shopping.merchant.reports.v1.ProductView.StatusPerReportingContext.verify|verify} messages. + * @function encode + * @memberof google.shopping.merchant.reports.v1.ProductView.StatusPerReportingContext + * @static + * @param {google.shopping.merchant.reports.v1.ProductView.IStatusPerReportingContext} message StatusPerReportingContext message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + StatusPerReportingContext.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.reportingContext != null && Object.hasOwnProperty.call(message, "reportingContext")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.reportingContext); + if (message.approvedCountries != null && message.approvedCountries.length) + for (var i = 0; i < message.approvedCountries.length; ++i) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.approvedCountries[i]); + if (message.disapprovedCountries != null && message.disapprovedCountries.length) + for (var i = 0; i < message.disapprovedCountries.length; ++i) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.disapprovedCountries[i]); + if (message.pendingCountries != null && message.pendingCountries.length) + for (var i = 0; i < message.pendingCountries.length; ++i) + writer.uint32(/* id 4, wireType 2 =*/34).string(message.pendingCountries[i]); + return writer; + }; + + /** + * Encodes the specified StatusPerReportingContext message, length delimited. Does not implicitly {@link google.shopping.merchant.reports.v1.ProductView.StatusPerReportingContext.verify|verify} messages. + * @function encodeDelimited + * @memberof google.shopping.merchant.reports.v1.ProductView.StatusPerReportingContext + * @static + * @param {google.shopping.merchant.reports.v1.ProductView.IStatusPerReportingContext} message StatusPerReportingContext message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + StatusPerReportingContext.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a StatusPerReportingContext message from the specified reader or buffer. + * @function decode + * @memberof google.shopping.merchant.reports.v1.ProductView.StatusPerReportingContext + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.shopping.merchant.reports.v1.ProductView.StatusPerReportingContext} StatusPerReportingContext + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + StatusPerReportingContext.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.shopping.merchant.reports.v1.ProductView.StatusPerReportingContext(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.reportingContext = reader.int32(); + break; + } + case 2: { + if (!(message.approvedCountries && message.approvedCountries.length)) + message.approvedCountries = []; + message.approvedCountries.push(reader.string()); + break; + } + case 3: { + if (!(message.disapprovedCountries && message.disapprovedCountries.length)) + message.disapprovedCountries = []; + message.disapprovedCountries.push(reader.string()); + break; + } + case 4: { + if (!(message.pendingCountries && message.pendingCountries.length)) + message.pendingCountries = []; + message.pendingCountries.push(reader.string()); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a StatusPerReportingContext message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.shopping.merchant.reports.v1.ProductView.StatusPerReportingContext + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.shopping.merchant.reports.v1.ProductView.StatusPerReportingContext} StatusPerReportingContext + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + StatusPerReportingContext.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a StatusPerReportingContext message. + * @function verify + * @memberof google.shopping.merchant.reports.v1.ProductView.StatusPerReportingContext + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + StatusPerReportingContext.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.reportingContext != null && message.hasOwnProperty("reportingContext")) { + properties._reportingContext = 1; + switch (message.reportingContext) { + default: + return "reportingContext: enum value expected"; + case 0: + case 1: + case 2: + case 13: + case 14: + case 3: + case 4: + case 5: + case 6: + case 7: + case 19: + case 8: + case 9: + case 18: + case 10: + case 11: + case 12: + case 15: + case 16: + case 17: + break; + } + } + if (message.approvedCountries != null && message.hasOwnProperty("approvedCountries")) { + if (!Array.isArray(message.approvedCountries)) + return "approvedCountries: array expected"; + for (var i = 0; i < message.approvedCountries.length; ++i) + if (!$util.isString(message.approvedCountries[i])) + return "approvedCountries: string[] expected"; + } + if (message.disapprovedCountries != null && message.hasOwnProperty("disapprovedCountries")) { + if (!Array.isArray(message.disapprovedCountries)) + return "disapprovedCountries: array expected"; + for (var i = 0; i < message.disapprovedCountries.length; ++i) + if (!$util.isString(message.disapprovedCountries[i])) + return "disapprovedCountries: string[] expected"; + } + if (message.pendingCountries != null && message.hasOwnProperty("pendingCountries")) { + if (!Array.isArray(message.pendingCountries)) + return "pendingCountries: array expected"; + for (var i = 0; i < message.pendingCountries.length; ++i) + if (!$util.isString(message.pendingCountries[i])) + return "pendingCountries: string[] expected"; + } + return null; + }; + + /** + * Creates a StatusPerReportingContext message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.shopping.merchant.reports.v1.ProductView.StatusPerReportingContext + * @static + * @param {Object.} object Plain object + * @returns {google.shopping.merchant.reports.v1.ProductView.StatusPerReportingContext} StatusPerReportingContext + */ + StatusPerReportingContext.fromObject = function fromObject(object) { + if (object instanceof $root.google.shopping.merchant.reports.v1.ProductView.StatusPerReportingContext) + return object; + var message = new $root.google.shopping.merchant.reports.v1.ProductView.StatusPerReportingContext(); + switch (object.reportingContext) { + default: + if (typeof object.reportingContext === "number") { + message.reportingContext = object.reportingContext; + break; + } + break; + case "REPORTING_CONTEXT_ENUM_UNSPECIFIED": + case 0: + message.reportingContext = 0; + break; + case "SHOPPING_ADS": + case 1: + message.reportingContext = 1; + break; + case "DISCOVERY_ADS": + case 2: + message.reportingContext = 2; + break; + case "DEMAND_GEN_ADS": + case 13: + message.reportingContext = 13; + break; + case "DEMAND_GEN_ADS_DISCOVER_SURFACE": + case 14: + message.reportingContext = 14; + break; + case "VIDEO_ADS": + case 3: + message.reportingContext = 3; + break; + case "DISPLAY_ADS": + case 4: + message.reportingContext = 4; + break; + case "LOCAL_INVENTORY_ADS": + case 5: + message.reportingContext = 5; + break; + case "VEHICLE_INVENTORY_ADS": + case 6: + message.reportingContext = 6; + break; + case "FREE_LISTINGS": + case 7: + message.reportingContext = 7; + break; + case "FREE_LISTINGS_UCP_CHECKOUT": + case 19: + message.reportingContext = 19; + break; + case "FREE_LOCAL_LISTINGS": + case 8: + message.reportingContext = 8; + break; + case "FREE_LOCAL_VEHICLE_LISTINGS": + case 9: + message.reportingContext = 9; + break; + case "YOUTUBE_AFFILIATE": + case 18: + message.reportingContext = 18; + break; + case "YOUTUBE_SHOPPING": + case 10: + message.reportingContext = 10; + break; + case "CLOUD_RETAIL": + case 11: + message.reportingContext = 11; + break; + case "LOCAL_CLOUD_RETAIL": + case 12: + message.reportingContext = 12; + break; + case "PRODUCT_REVIEWS": + case 15: + message.reportingContext = 15; + break; + case "MERCHANT_REVIEWS": + case 16: + message.reportingContext = 16; + break; + case "YOUTUBE_CHECKOUT": + case 17: + message.reportingContext = 17; + break; + } + if (object.approvedCountries) { + if (!Array.isArray(object.approvedCountries)) + throw TypeError(".google.shopping.merchant.reports.v1.ProductView.StatusPerReportingContext.approvedCountries: array expected"); + message.approvedCountries = []; + for (var i = 0; i < object.approvedCountries.length; ++i) + message.approvedCountries[i] = String(object.approvedCountries[i]); + } + if (object.disapprovedCountries) { + if (!Array.isArray(object.disapprovedCountries)) + throw TypeError(".google.shopping.merchant.reports.v1.ProductView.StatusPerReportingContext.disapprovedCountries: array expected"); + message.disapprovedCountries = []; + for (var i = 0; i < object.disapprovedCountries.length; ++i) + message.disapprovedCountries[i] = String(object.disapprovedCountries[i]); + } + if (object.pendingCountries) { + if (!Array.isArray(object.pendingCountries)) + throw TypeError(".google.shopping.merchant.reports.v1.ProductView.StatusPerReportingContext.pendingCountries: array expected"); + message.pendingCountries = []; + for (var i = 0; i < object.pendingCountries.length; ++i) + message.pendingCountries[i] = String(object.pendingCountries[i]); + } + return message; + }; + + /** + * Creates a plain object from a StatusPerReportingContext message. Also converts values to other types if specified. + * @function toObject + * @memberof google.shopping.merchant.reports.v1.ProductView.StatusPerReportingContext + * @static + * @param {google.shopping.merchant.reports.v1.ProductView.StatusPerReportingContext} message StatusPerReportingContext + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + StatusPerReportingContext.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) { + object.approvedCountries = []; + object.disapprovedCountries = []; + object.pendingCountries = []; + } + if (message.reportingContext != null && message.hasOwnProperty("reportingContext")) { + object.reportingContext = options.enums === String ? $root.google.shopping.type.ReportingContext.ReportingContextEnum[message.reportingContext] === undefined ? message.reportingContext : $root.google.shopping.type.ReportingContext.ReportingContextEnum[message.reportingContext] : message.reportingContext; + if (options.oneofs) + object._reportingContext = "reportingContext"; + } + if (message.approvedCountries && message.approvedCountries.length) { + object.approvedCountries = []; + for (var j = 0; j < message.approvedCountries.length; ++j) + object.approvedCountries[j] = message.approvedCountries[j]; + } + if (message.disapprovedCountries && message.disapprovedCountries.length) { + object.disapprovedCountries = []; + for (var j = 0; j < message.disapprovedCountries.length; ++j) + object.disapprovedCountries[j] = message.disapprovedCountries[j]; + } + if (message.pendingCountries && message.pendingCountries.length) { + object.pendingCountries = []; + for (var j = 0; j < message.pendingCountries.length; ++j) + object.pendingCountries[j] = message.pendingCountries[j]; + } + return object; + }; + + /** + * Converts this StatusPerReportingContext to JSON. + * @function toJSON + * @memberof google.shopping.merchant.reports.v1.ProductView.StatusPerReportingContext + * @instance + * @returns {Object.} JSON object + */ + StatusPerReportingContext.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for StatusPerReportingContext + * @function getTypeUrl + * @memberof google.shopping.merchant.reports.v1.ProductView.StatusPerReportingContext + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + StatusPerReportingContext.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.shopping.merchant.reports.v1.ProductView.StatusPerReportingContext"; + }; + + return StatusPerReportingContext; + })(); + /** * AggregatedReportingContextStatus enum. * @name google.shopping.merchant.reports.v1.ProductView.AggregatedReportingContextStatus @@ -10323,6 +11012,199 @@ return MarketingMethod; })(); + v1.StoreType = (function() { + + /** + * Properties of a StoreType. + * @memberof google.shopping.merchant.reports.v1 + * @interface IStoreType + */ + + /** + * Constructs a new StoreType. + * @memberof google.shopping.merchant.reports.v1 + * @classdesc Represents a StoreType. + * @implements IStoreType + * @constructor + * @param {google.shopping.merchant.reports.v1.IStoreType=} [properties] Properties to set + */ + function StoreType(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 StoreType instance using the specified properties. + * @function create + * @memberof google.shopping.merchant.reports.v1.StoreType + * @static + * @param {google.shopping.merchant.reports.v1.IStoreType=} [properties] Properties to set + * @returns {google.shopping.merchant.reports.v1.StoreType} StoreType instance + */ + StoreType.create = function create(properties) { + return new StoreType(properties); + }; + + /** + * Encodes the specified StoreType message. Does not implicitly {@link google.shopping.merchant.reports.v1.StoreType.verify|verify} messages. + * @function encode + * @memberof google.shopping.merchant.reports.v1.StoreType + * @static + * @param {google.shopping.merchant.reports.v1.IStoreType} message StoreType message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + StoreType.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + return writer; + }; + + /** + * Encodes the specified StoreType message, length delimited. Does not implicitly {@link google.shopping.merchant.reports.v1.StoreType.verify|verify} messages. + * @function encodeDelimited + * @memberof google.shopping.merchant.reports.v1.StoreType + * @static + * @param {google.shopping.merchant.reports.v1.IStoreType} message StoreType message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + StoreType.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a StoreType message from the specified reader or buffer. + * @function decode + * @memberof google.shopping.merchant.reports.v1.StoreType + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.shopping.merchant.reports.v1.StoreType} StoreType + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + StoreType.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.shopping.merchant.reports.v1.StoreType(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a StoreType message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.shopping.merchant.reports.v1.StoreType + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.shopping.merchant.reports.v1.StoreType} StoreType + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + StoreType.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a StoreType message. + * @function verify + * @memberof google.shopping.merchant.reports.v1.StoreType + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + StoreType.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + return null; + }; + + /** + * Creates a StoreType message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.shopping.merchant.reports.v1.StoreType + * @static + * @param {Object.} object Plain object + * @returns {google.shopping.merchant.reports.v1.StoreType} StoreType + */ + StoreType.fromObject = function fromObject(object) { + if (object instanceof $root.google.shopping.merchant.reports.v1.StoreType) + return object; + return new $root.google.shopping.merchant.reports.v1.StoreType(); + }; + + /** + * Creates a plain object from a StoreType message. Also converts values to other types if specified. + * @function toObject + * @memberof google.shopping.merchant.reports.v1.StoreType + * @static + * @param {google.shopping.merchant.reports.v1.StoreType} message StoreType + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + StoreType.toObject = function toObject() { + return {}; + }; + + /** + * Converts this StoreType to JSON. + * @function toJSON + * @memberof google.shopping.merchant.reports.v1.StoreType + * @instance + * @returns {Object.} JSON object + */ + StoreType.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for StoreType + * @function getTypeUrl + * @memberof google.shopping.merchant.reports.v1.StoreType + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + StoreType.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.shopping.merchant.reports.v1.StoreType"; + }; + + /** + * StoreTypeEnum enum. + * @name google.shopping.merchant.reports.v1.StoreType.StoreTypeEnum + * @enum {number} + * @property {number} STORE_TYPE_ENUM_UNSPECIFIED=0 STORE_TYPE_ENUM_UNSPECIFIED value + * @property {number} ONLINE_STORE=1 ONLINE_STORE value + * @property {number} LOCAL_STORES=2 LOCAL_STORES value + */ + StoreType.StoreTypeEnum = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "STORE_TYPE_ENUM_UNSPECIFIED"] = 0; + values[valuesById[1] = "ONLINE_STORE"] = 1; + values[valuesById[2] = "LOCAL_STORES"] = 2; + return values; + })(); + + return StoreType; + })(); + v1.ReportGranularity = (function() { /** diff --git a/packages/google-shopping-merchant-reports/protos/protos.json b/packages/google-shopping-merchant-reports/protos/protos.json index 0f911719e0cc..e878f46f6f18 100644 --- a/packages/google-shopping-merchant-reports/protos/protos.json +++ b/packages/google-shopping-merchant-reports/protos/protos.json @@ -148,6 +148,11 @@ "customerCountryCode" ] }, + "_storeType": { + "oneof": [ + "storeType" + ] + }, "_offerId": { "oneof": [ "offerId" @@ -287,6 +292,13 @@ "proto3_optional": true } }, + "storeType": { + "type": "StoreType.StoreTypeEnum", + "id": 32, + "options": { + "proto3_optional": true + } + }, "offerId": { "type": "string", "id": 5, @@ -571,6 +583,11 @@ "aggregatedReportingContextStatus" ] }, + "_reportingContext": { + "oneof": [ + "reportingContext" + ] + }, "_clickPotentialRank": { "oneof": [ "clickPotentialRank" @@ -756,6 +773,18 @@ "proto3_optional": true } }, + "statusPerReportingContext": { + "rule": "repeated", + "type": "StatusPerReportingContext", + "id": 32 + }, + "reportingContext": { + "type": "google.shopping.type.ReportingContext.ReportingContextEnum", + "id": 33, + "options": { + "proto3_optional": true + } + }, "itemIssues": { "rule": "repeated", "type": "ItemIssue", @@ -900,6 +929,39 @@ } } }, + "StatusPerReportingContext": { + "oneofs": { + "_reportingContext": { + "oneof": [ + "reportingContext" + ] + } + }, + "fields": { + "reportingContext": { + "type": "google.shopping.type.ReportingContext.ReportingContextEnum", + "id": 1, + "options": { + "proto3_optional": true + } + }, + "approvedCountries": { + "rule": "repeated", + "type": "string", + "id": 2 + }, + "disapprovedCountries": { + "rule": "repeated", + "type": "string", + "id": 3 + }, + "pendingCountries": { + "rule": "repeated", + "type": "string", + "id": 4 + } + } + }, "AggregatedReportingContextStatus": { "values": { "AGGREGATED_REPORTING_CONTEXT_STATUS_UNSPECIFIED": 0, @@ -2072,6 +2134,18 @@ } } }, + "StoreType": { + "fields": {}, + "nested": { + "StoreTypeEnum": { + "values": { + "STORE_TYPE_ENUM_UNSPECIFIED": 0, + "ONLINE_STORE": 1, + "LOCAL_STORES": 2 + } + } + } + }, "ReportGranularity": { "fields": {}, "nested": { diff --git a/packages/google-shopping-merchant-reports/samples/generated/v1/report_service.search.js b/packages/google-shopping-merchant-reports/samples/generated/v1/report_service.search.js index d51445cee5cb..74c3951ac57e 100644 --- a/packages/google-shopping-merchant-reports/samples/generated/v1/report_service.search.js +++ b/packages/google-shopping-merchant-reports/samples/generated/v1/report_service.search.js @@ -38,12 +38,12 @@ function main(parent, query) { * For details on how to construct your query, see the Query Language * guide (/merchant/api/guides/reports/query-language). For the full list of * available tables and fields, see the Available - * fields (/merchant/api/reference/rest/reports_v1/accounts.reports). + * fields google.shopping.merchant.reports.v1.ReportRow. */ // const query = 'abc123' /** * Optional. Number of `ReportRows` to retrieve in a single page. Defaults to - * 1000. Values above 5000 are coerced to 5000. + * 1000. Values above 100,000 are coerced to 100,000. */ // const pageSize = 1234 /** diff --git a/packages/google-shopping-merchant-reports/src/v1/report_service_client.ts b/packages/google-shopping-merchant-reports/src/v1/report_service_client.ts index 05afa4b8f7d4..de9e4bafe141 100644 --- a/packages/google-shopping-merchant-reports/src/v1/report_service_client.ts +++ b/packages/google-shopping-merchant-reports/src/v1/report_service_client.ts @@ -344,10 +344,10 @@ export class ReportServiceClient { * For details on how to construct your query, see the [Query Language * guide](/merchant/api/guides/reports/query-language). For the full list of * available tables and fields, see the [Available - * fields](/merchant/api/reference/rest/reports_v1/accounts.reports). + * fields][google.shopping.merchant.reports.v1.ReportRow]. * @param {number} [request.pageSize] * Optional. Number of `ReportRows` to retrieve in a single page. Defaults to - * 1000. Values above 5000 are coerced to 5000. + * 1000. Values above 100,000 are coerced to 100,000. * @param {string} [request.pageToken] * Optional. Token of the page to retrieve. If not specified, the first page * of results is returned. In order to request the next page of results, the @@ -454,10 +454,10 @@ export class ReportServiceClient { * For details on how to construct your query, see the [Query Language * guide](/merchant/api/guides/reports/query-language). For the full list of * available tables and fields, see the [Available - * fields](/merchant/api/reference/rest/reports_v1/accounts.reports). + * fields][google.shopping.merchant.reports.v1.ReportRow]. * @param {number} [request.pageSize] * Optional. Number of `ReportRows` to retrieve in a single page. Defaults to - * 1000. Values above 5000 are coerced to 5000. + * 1000. Values above 100,000 are coerced to 100,000. * @param {string} [request.pageToken] * Optional. Token of the page to retrieve. If not specified, the first page * of results is returned. In order to request the next page of results, the @@ -513,10 +513,10 @@ export class ReportServiceClient { * For details on how to construct your query, see the [Query Language * guide](/merchant/api/guides/reports/query-language). For the full list of * available tables and fields, see the [Available - * fields](/merchant/api/reference/rest/reports_v1/accounts.reports). + * fields][google.shopping.merchant.reports.v1.ReportRow]. * @param {number} [request.pageSize] * Optional. Number of `ReportRows` to retrieve in a single page. Defaults to - * 1000. Values above 5000 are coerced to 5000. + * 1000. Values above 100,000 are coerced to 100,000. * @param {string} [request.pageToken] * Optional. Token of the page to retrieve. If not specified, the first page * of results is returned. In order to request the next page of results, the