diff --git a/.repo-metadata-full.json b/.repo-metadata-full.json
index a6d0b360f96..b2998c4ff20 100644
--- a/.repo-metadata-full.json
+++ b/.repo-metadata-full.json
@@ -459,6 +459,14 @@
"library_type": "GAPIC_AUTO",
"api_shortname": "cloudcommerceconsumerprocurement"
},
+ "Commerceproducer": {
+ "language": "php",
+ "distribution_name": "google/cloud-commerceproducer",
+ "release_level": "preview",
+ "client_documentation": "https://cloud.google.com/php/docs/reference/cloud-commerceproducer/latest",
+ "library_type": "GAPIC_AUTO",
+ "api_shortname": "commerceproducer"
+ },
"CommonProtos": {
"language": "php",
"distribution_name": "google/common-protos",
@@ -805,14 +813,6 @@
"library_type": "GAPIC_AUTO",
"api_shortname": "cloudfunctions"
},
- "Gax": {
- "language": "php",
- "distribution_name": "google/gax",
- "release_level": "stable",
- "client_documentation": "https://cloud.google.com/php/docs/reference/gax/latest",
- "library_type": "CORE",
- "api_shortname": ""
- },
"GSuiteAddOns": {
"language": "php",
"distribution_name": "google/cloud-gsuite-addons",
@@ -823,6 +823,14 @@
"issue_tracker": "https://github.com/googleapis/google-cloud-php/issues",
"api_shortname": "gsuiteaddons"
},
+ "Gax": {
+ "language": "php",
+ "distribution_name": "google/gax",
+ "release_level": "stable",
+ "client_documentation": "https://cloud.google.com/php/docs/reference/gax/latest",
+ "library_type": "CORE",
+ "api_shortname": ""
+ },
"GeminiDataAnalytics": {
"language": "php",
"distribution_name": "google/cloud-geminidataanalytics",
diff --git a/Commerceproducer/.OwlBot.yaml b/Commerceproducer/.OwlBot.yaml
new file mode 100644
index 00000000000..01dbd558e92
--- /dev/null
+++ b/Commerceproducer/.OwlBot.yaml
@@ -0,0 +1,4 @@
+deep-copy-regex:
+ - source: /google/cloud/commerceproducer/(v1beta)/.*-php/(.*)
+ dest: /owl-bot-staging/Commerceproducer/$1/$2
+api-name: Commerceproducer
diff --git a/Commerceproducer/.gitattributes b/Commerceproducer/.gitattributes
new file mode 100644
index 00000000000..4bf0fe6f415
--- /dev/null
+++ b/Commerceproducer/.gitattributes
@@ -0,0 +1,7 @@
+/*.xml.dist export-ignore
+/.OwlBot.yaml export-ignore
+/.github export-ignore
+/owlbot.py export-ignore
+/src/**/gapic_metadata.json export-ignore
+/samples export-ignore
+/tests export-ignore
diff --git a/Commerceproducer/.github/pull_request_template.md b/Commerceproducer/.github/pull_request_template.md
new file mode 100644
index 00000000000..375e9633199
--- /dev/null
+++ b/Commerceproducer/.github/pull_request_template.md
@@ -0,0 +1,24 @@
+**PLEASE READ THIS ENTIRE MESSAGE**
+
+Hello, and thank you for your contribution! Please note that this repository is
+a read-only split of `googleapis/google-cloud-php`. As such, we are
+unable to accept pull requests to this repository.
+
+We welcome your pull request and would be happy to consider it for inclusion in
+our library if you follow these steps:
+
+* Clone the parent client library repository:
+
+```sh
+$ git clone git@github.com:googleapis/google-cloud-php.git
+```
+
+* Move your changes into the correct location in that library. Library code
+belongs in `Commerceproducer/src`, and tests in `Commerceproducer/tests`.
+
+* Push the changes in a new branch to a fork, and open a new pull request
+[here](https://github.com/googleapis/google-cloud-php).
+
+Thanks again, and we look forward to seeing your proposed change!
+
+The Google Cloud PHP team
diff --git a/Commerceproducer/CONTRIBUTING.md b/Commerceproducer/CONTRIBUTING.md
new file mode 100644
index 00000000000..76ea811cacd
--- /dev/null
+++ b/Commerceproducer/CONTRIBUTING.md
@@ -0,0 +1,10 @@
+# How to Contribute
+
+We'd love to accept your patches and contributions to this project. We accept
+and review pull requests against the main
+[Google Cloud PHP](https://github.com/googleapis/google-cloud-php)
+repository, which contains all of our client libraries. You will also need to
+sign a Contributor License Agreement. For more details about how to contribute,
+see the
+[CONTRIBUTING.md](https://github.com/googleapis/google-cloud-php/blob/main/CONTRIBUTING.md)
+file in the main Google Cloud PHP repository.
diff --git a/Commerceproducer/LICENSE b/Commerceproducer/LICENSE
new file mode 100644
index 00000000000..8f71f43fee3
--- /dev/null
+++ b/Commerceproducer/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/Commerceproducer/README.md b/Commerceproducer/README.md
new file mode 100644
index 00000000000..9cdd7a89489
--- /dev/null
+++ b/Commerceproducer/README.md
@@ -0,0 +1,72 @@
+# Google Cloud Commerceproducer for PHP
+
+> Idiomatic PHP client for [Google Cloud Commerceproducer](https://docs.cloud.google.com/marketplace).
+
+[](https://packagist.org/packages/google/cloud-commerceproducer) [](https://packagist.org/packages/google/cloud-commerceproducer)
+
+* [API documentation](https://cloud.google.com/php/docs/reference/cloud-commerceproducer/latest)
+
+**NOTE:** This repository is part of [Google Cloud PHP](https://github.com/googleapis/google-cloud-php). Any
+support requests, bug reports, or development contributions should be directed to
+that project.
+
+### Installation
+
+To begin, install the preferred dependency manager for PHP, [Composer](https://getcomposer.org/).
+
+Now, install this component:
+
+```sh
+$ composer require google/cloud-commerceproducer
+```
+
+> Browse the complete list of [Google Cloud APIs](https://cloud.google.com/php/docs/reference)
+> for PHP
+
+This component supports both REST over HTTP/1.1 and gRPC. In order to take advantage of the benefits
+offered by gRPC (such as streaming methods) please see our
+[gRPC installation guide](https://cloud.google.com/php/grpc).
+
+### Authentication
+
+Please see our [Authentication guide](https://github.com/googleapis/google-cloud-php/blob/main/AUTHENTICATION.md) for more information
+on authenticating your client. Once authenticated, you'll be ready to start making requests.
+
+### Sample
+
+```php
+use Google\ApiCore\ApiException;
+use Google\Cloud\Commerceproducer\V1beta\Client\CommerceTransactionClient;
+use Google\Cloud\Location\GetLocationRequest;
+use Google\Cloud\Location\Location;
+
+// Create a client.
+$commerceTransactionClient = new CommerceTransactionClient();
+
+// Prepare the request message.
+$request = new GetLocationRequest();
+
+// Call the API and handle any network failures.
+try {
+ /** @var Location $response */
+ $response = $commerceTransactionClient->getLocation($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+} catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+}
+```
+
+See the [samples directory](https://github.com/googleapis/google-cloud-php-commerceproducer/tree/main/samples) for a canonical list of samples.
+
+### Debugging
+
+Please see our [Debugging guide](https://github.com/googleapis/google-cloud-php/blob/main/DEBUG.md)
+for more information about the debugging tools.
+
+### Version
+
+This component is considered alpha. As such, it is still a work-in-progress and is more likely to get backwards-incompatible updates.
+
+### Next Steps
+
+1. Understand the [official documentation](https://docs.cloud.google.com/marketplace/docs/partners/commerce-producer-api/reference).
diff --git a/Commerceproducer/SECURITY.md b/Commerceproducer/SECURITY.md
new file mode 100644
index 00000000000..8b58ae9c01a
--- /dev/null
+++ b/Commerceproducer/SECURITY.md
@@ -0,0 +1,7 @@
+# Security Policy
+
+To report a security issue, please use [g.co/vulnz](https://g.co/vulnz).
+
+The Google Security Team will respond within 5 working days of your report on g.co/vulnz.
+
+We use g.co/vulnz for our intake, and do coordination and disclosure here using GitHub Security Advisory to privately discuss and fix the issue.
diff --git a/Commerceproducer/VERSION b/Commerceproducer/VERSION
new file mode 100644
index 00000000000..77d6f4ca237
--- /dev/null
+++ b/Commerceproducer/VERSION
@@ -0,0 +1 @@
+0.0.0
diff --git a/Commerceproducer/composer.json b/Commerceproducer/composer.json
new file mode 100644
index 00000000000..cc8f3311ea1
--- /dev/null
+++ b/Commerceproducer/composer.json
@@ -0,0 +1,30 @@
+{
+ "name": "google/cloud-commerceproducer",
+ "description": "Google Cloud Commerceproducer Client for PHP",
+ "license": "Apache-2.0",
+ "minimum-stability": "stable",
+ "autoload": {
+ "psr-4": {
+ "Google\\Cloud\\Commerceproducer\\": "src",
+ "GPBMetadata\\Google\\Cloud\\Commerceproducer\\": "metadata"
+ }
+ },
+ "extra": {
+ "component": {
+ "id": "cloud-commerceproducer",
+ "path": "Commerceproducer",
+ "target": "googleapis/google-cloud-php-commerceproducer"
+ }
+ },
+ "require": {
+ "php": "^8.1",
+ "google/gax": "^1.46.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.0"
+ },
+ "suggest": {
+ "ext-grpc": "Enables use of gRPC, a universal high-performance RPC framework created by Google.",
+ "ext-protobuf": "Provides a significant increase in throughput over the pure PHP protobuf implementation. See https://cloud.google.com/php/grpc for installation instructions."
+ }
+}
diff --git a/Commerceproducer/metadata/V1Beta/CommerceTransaction.php b/Commerceproducer/metadata/V1Beta/CommerceTransaction.php
new file mode 100644
index 00000000000..848e060ba44
--- /dev/null
+++ b/Commerceproducer/metadata/V1Beta/CommerceTransaction.php
@@ -0,0 +1,35 @@
+internalAddGeneratedFile(
+ "\x0A\x86Q\x0A?google/cloud/commerceproducer/v1beta/commerce_transaction.proto\x12\$google.cloud.commerceproducer.v1beta\x1A\x17google/api/client.proto\x1A\x1Fgoogle/api/field_behavior.proto\x1A\x19google/api/resource.proto\x1A8google/cloud/commerceproducer/v1beta/private_offer.proto\x1A2google/cloud/commerceproducer/v1beta/service.proto\x1A.google/cloud/commerceproducer/v1beta/sku.proto\x1A4google/cloud/commerceproducer/v1beta/sku_group.proto\x1A9google/cloud/commerceproducer/v1beta/standard_offer.proto\x1A\x1Bgoogle/protobuf/empty.proto\x1A google/protobuf/field_mask.proto\"\xBD\x01\x0A\x18ListPrivateOffersRequest\x12D\x0A\x06parent\x18\x01 \x01(\x09B4\xE0A\x02\xFAA.\x12,commerceproducer.googleapis.com/PrivateOffer\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x13\x0A\x06filter\x18\x04 \x01(\x09B\x03\xE0A\x01\x12\x15\x0A\x08order_by\x18\x05 \x01(\x09B\x03\xE0A\x01\"\x80\x01\x0A\x19ListPrivateOffersResponse\x12J\x0A\x0Eprivate_offers\x18\x01 \x03(\x0B22.google.cloud.commerceproducer.v1beta.PrivateOffer\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\"\xA7\x01\x0A\x16GetPrivateOfferRequest\x12B\x0A\x04name\x18\x01 \x01(\x09B4\xE0A\x02\xFAA.\x0A,commerceproducer.googleapis.com/PrivateOffer\x12I\x0A\x04view\x18\x02 \x01(\x0E26.google.cloud.commerceproducer.v1beta.PrivateOfferViewB\x03\xE0A\x01\"\x8D\x02\x0A\x1DResolveAmendmentTargetRequest\x12D\x0A\x06parent\x18\x01 \x01(\x09B4\xE0A\x02\xFAA.\x12,commerceproducer.googleapis.com/PrivateOffer\x12R\x0A\x16target_billing_account\x18\x02 \x01(\x09B2\xE0A\x02\xFAA,\x0A*cloudbilling.googleapis.com/BillingAccount\x12R\x0A\x13base_standard_offer\x18\x03 \x01(\x09B5\xE0A\x02\xFAA/\x0A-commerceproducer.googleapis.com/StandardOffer\"\xB2\x03\x0A\x1EResolveAmendmentTargetResponse\x12S\x0A\x16required_private_offer\x18\x01 \x01(\x09B1\xFAA.\x0A,commerceproducer.googleapis.com/PrivateOfferH\x00\x12U\x0A\x17required_standard_offer\x18\x02 \x01(\x09B2\xFAA/\x0A-commerceproducer.googleapis.com/StandardOfferH\x00\x12n\x0A\x0Foptional_offers\x18\x03 \x01(\x0B2S.google.cloud.commerceproducer.v1beta.ResolveAmendmentTargetResponse.OptionalOffersH\x00\x1A[\x0A\x0EOptionalOffers\x12I\x0A\x0Eprivate_offers\x18\x01 \x03(\x09B1\xFAA.\x0A,commerceproducer.googleapis.com/PrivateOfferB\x17\x0A\x15amendment_requirement\"\xB1\x01\x0A\x19CreatePrivateOfferRequest\x12D\x0A\x06parent\x18\x01 \x01(\x09B4\xE0A\x02\xFAA.\x12,commerceproducer.googleapis.com/PrivateOffer\x12N\x0A\x0Dprivate_offer\x18\x03 \x01(\x0B22.google.cloud.commerceproducer.v1beta.PrivateOfferB\x03\xE0A\x02\"\xA1\x01\x0A\x19UpdatePrivateOfferRequest\x124\x0A\x0Bupdate_mask\x18\x01 \x01(\x0B2\x1A.google.protobuf.FieldMaskB\x03\xE0A\x01\x12N\x0A\x0Dprivate_offer\x18\x02 \x01(\x0B22.google.cloud.commerceproducer.v1beta.PrivateOfferB\x03\xE0A\x02\"|\x0A\x1APublishPrivateOfferRequest\x12B\x0A\x04name\x18\x01 \x01(\x09B4\xE0A\x02\xFAA.\x0A,commerceproducer.googleapis.com/PrivateOffer\x12\x1A\x0A\x0Dvalidate_only\x18\x02 \x01(\x08B\x03\xE0A\x01\"\x7F\x0A\x19CancelPrivateOfferRequest\x12B\x0A\x04name\x18\x01 \x01(\x09B4\xE0A\x02\xFAA.\x0A,commerceproducer.googleapis.com/PrivateOffer\x12\x1E\x0A\x11cancellation_note\x18\x02 \x01(\x09B\x03\xE0A\x01\"s\x0A\x19DeletePrivateOfferRequest\x12B\x0A\x04name\x18\x01 \x01(\x09B4\xE0A\x02\xFAA.\x0A,commerceproducer.googleapis.com/PrivateOffer\x12\x12\x0A\x05force\x18\x02 \x01(\x08B\x03\xE0A\x01\"\xA1\x01\x0A ListPrivateOfferDocumentsRequest\x12L\x0A\x06parent\x18\x01 \x01(\x09B<\xE0A\x02\xFAA6\x124commerceproducer.googleapis.com/PrivateOfferDocument\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\"\x99\x01\x0A!ListPrivateOfferDocumentsResponse\x12[\x0A\x17private_offer_documents\x18\x01 \x03(\x0B2:.google.cloud.commerceproducer.v1beta.PrivateOfferDocument\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\"l\x0A\x1EGetPrivateOfferDocumentRequest\x12J\x0A\x04name\x18\x01 \x01(\x09B<\xE0A\x02\xFAA6\x0A4commerceproducer.googleapis.com/PrivateOfferDocument\"\xD2\x01\x0A!CreatePrivateOfferDocumentRequest\x12L\x0A\x06parent\x18\x01 \x01(\x09B<\xE0A\x02\xFAA6\x124commerceproducer.googleapis.com/PrivateOfferDocument\x12_\x0A\x16private_offer_document\x18\x03 \x01(\x0B2:.google.cloud.commerceproducer.v1beta.PrivateOfferDocumentB\x03\xE0A\x02\"\xBA\x01\x0A!UpdatePrivateOfferDocumentRequest\x12_\x0A\x16private_offer_document\x18\x01 \x01(\x0B2:.google.cloud.commerceproducer.v1beta.PrivateOfferDocumentB\x03\xE0A\x02\x124\x0A\x0Bupdate_mask\x18\x02 \x01(\x0B2\x1A.google.protobuf.FieldMaskB\x03\xE0A\x01\"o\x0A!DeletePrivateOfferDocumentRequest\x12J\x0A\x04name\x18\x01 \x01(\x09B<\xE0A\x02\xFAA6\x0A4commerceproducer.googleapis.com/PrivateOfferDocument\"\x87\x01\x0A\x13ListServicesRequest\x12?\x0A\x06parent\x18\x01 \x01(\x09B/\xE0A\x02\xFAA)\x12'commerceproducer.googleapis.com/Service\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\"p\x0A\x14ListServicesResponse\x12?\x0A\x08services\x18\x01 \x03(\x0B2-.google.cloud.commerceproducer.v1beta.Service\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\"\x98\x01\x0A\x11GetServiceRequest\x12=\x0A\x04name\x18\x01 \x01(\x09B/\xE0A\x02\xFAA)\x0A'commerceproducer.googleapis.com/Service\x12D\x0A\x04view\x18\x02 \x01(\x0E21.google.cloud.commerceproducer.v1beta.ServiceViewB\x03\xE0A\x01\"\xBF\x01\x0A\x19ListStandardOffersRequest\x12E\x0A\x06parent\x18\x01 \x01(\x09B5\xE0A\x02\xFAA/\x12-commerceproducer.googleapis.com/StandardOffer\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x13\x0A\x06filter\x18\x04 \x01(\x09B\x03\xE0A\x01\x12\x15\x0A\x08order_by\x18\x05 \x01(\x09B\x03\xE0A\x01\"\x83\x01\x0A\x1AListStandardOffersResponse\x12L\x0A\x0Fstandard_offers\x18\x01 \x03(\x0B23.google.cloud.commerceproducer.v1beta.StandardOffer\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\"\xAA\x01\x0A\x17GetStandardOfferRequest\x12C\x0A\x04name\x18\x01 \x01(\x09B5\xE0A\x02\xFAA/\x0A-commerceproducer.googleapis.com/StandardOffer\x12J\x0A\x04view\x18\x02 \x01(\x0E27.google.cloud.commerceproducer.v1beta.StandardOfferViewB\x03\xE0A\x01\"\x7F\x0A\x0FListSkusRequest\x12;\x0A\x06parent\x18\x01 \x01(\x09B+\xE0A\x02\xFAA%\x12#commerceproducer.googleapis.com/Sku\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\"d\x0A\x10ListSkusResponse\x127\x0A\x04skus\x18\x01 \x03(\x0B2).google.cloud.commerceproducer.v1beta.Sku\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\"J\x0A\x0DGetSkuRequest\x129\x0A\x04name\x18\x01 \x01(\x09B+\xE0A\x02\xFAA%\x0A#commerceproducer.googleapis.com/Sku\"T\x0A\x12GetSkuGroupRequest\x12>\x0A\x04name\x18\x01 \x01(\x09B0\xE0A\x02\xFAA*\x0A(commerceproducer.googleapis.com/SkuGroup\"\x89\x01\x0A\x14ListSkuGroupsRequest\x12@\x0A\x06parent\x18\x01 \x01(\x09B0\xE0A\x02\xFAA*\x12(commerceproducer.googleapis.com/SkuGroup\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\"t\x0A\x15ListSkuGroupsResponse\x12B\x0A\x0Asku_groups\x18\x01 \x03(\x0B2..google.cloud.commerceproducer.v1beta.SkuGroup\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09*q\x0A\x10PrivateOfferView\x12\"\x0A\x1EPRIVATE_OFFER_VIEW_UNSPECIFIED\x10\x00\x12\x1C\x0A\x18PRIVATE_OFFER_VIEW_BASIC\x10\x01\x12\x1B\x0A\x17PRIVATE_OFFER_VIEW_FULL\x10\x02*u\x0A\x11StandardOfferView\x12#\x0A\x1FSTANDARD_OFFER_VIEW_UNSPECIFIED\x10\x00\x12\x1D\x0A\x19STANDARD_OFFER_VIEW_BASIC\x10\x01\x12\x1C\x0A\x18STANDARD_OFFER_VIEW_FULL\x10\x02*Z\x0A\x0BServiceView\x12\x1C\x0A\x18SERVICE_VIEW_UNSPECIFIED\x10\x00\x12\x16\x0A\x12SERVICE_VIEW_BASIC\x10\x01\x12\x15\x0A\x11SERVICE_VIEW_FULL\x10\x022\xF5%\x0A\x13CommerceTransaction\x12\xC8\x01\x0A\x0CListServices\x129.google.cloud.commerceproducer.v1beta.ListServicesRequest\x1A:.google.cloud.commerceproducer.v1beta.ListServicesResponse\"A\xDAA\x06parent\x82\xD3\xE4\x93\x022\x120/v1beta/{parent=projects/*/locations/*}/services\x12\xB5\x01\x0A\x0AGetService\x127.google.cloud.commerceproducer.v1beta.GetServiceRequest\x1A-.google.cloud.commerceproducer.v1beta.Service\"?\xDAA\x04name\x82\xD3\xE4\x93\x022\x120/v1beta/{name=projects/*/locations/*/services/*}\x12\xDC\x01\x0A\x11ListPrivateOffers\x12>.google.cloud.commerceproducer.v1beta.ListPrivateOffersRequest\x1A?.google.cloud.commerceproducer.v1beta.ListPrivateOffersResponse\"F\xDAA\x06parent\x82\xD3\xE4\x93\x027\x125/v1beta/{parent=projects/*/locations/*}/privateOffers\x12\xC9\x01\x0A\x0FGetPrivateOffer\x12<.google.cloud.commerceproducer.v1beta.GetPrivateOfferRequest\x1A2.google.cloud.commerceproducer.v1beta.PrivateOffer\"D\xDAA\x04name\x82\xD3\xE4\x93\x027\x125/v1beta/{name=projects/*/locations/*/privateOffers/*}\x12\xAE\x02\x0A\x16ResolveAmendmentTarget\x12C.google.cloud.commerceproducer.v1beta.ResolveAmendmentTargetRequest\x1AD.google.cloud.commerceproducer.v1beta.ResolveAmendmentTargetResponse\"\x88\x01\xDAA1parent,target_billing_account,base_standard_offer\x82\xD3\xE4\x93\x02N\x12L/v1beta/{parent=projects/*/locations/*}/privateOffers:resolveAmendmentTarget\x12\xD7\x01\x0A\x12CreatePrivateOffer\x12?.google.cloud.commerceproducer.v1beta.CreatePrivateOfferRequest\x1A2.google.cloud.commerceproducer.v1beta.PrivateOffer\"L\x82\xD3\xE4\x93\x02F\"5/v1beta/{parent=projects/*/locations/*}/privateOffers:\x0Dprivate_offer\x12\x81\x02\x0A\x12UpdatePrivateOffer\x12?.google.cloud.commerceproducer.v1beta.UpdatePrivateOfferRequest\x1A2.google.cloud.commerceproducer.v1beta.PrivateOffer\"v\xDAA\x19private_offer,update_mask\x82\xD3\xE4\x93\x02T2C/v1beta/{private_offer.name=projects/*/locations/*/privateOffers/*}:\x0Dprivate_offer\x12\xDC\x01\x0A\x13PublishPrivateOffer\x12@.google.cloud.commerceproducer.v1beta.PublishPrivateOfferRequest\x1A2.google.cloud.commerceproducer.v1beta.PrivateOffer\"O\xDAA\x04name\x82\xD3\xE4\x93\x02B\"=/v1beta/{name=projects/*/locations/*/privateOffers/*}:publish:\x01*\x12\xD9\x01\x0A\x12CancelPrivateOffer\x12?.google.cloud.commerceproducer.v1beta.CancelPrivateOfferRequest\x1A2.google.cloud.commerceproducer.v1beta.PrivateOffer\"N\xDAA\x04name\x82\xD3\xE4\x93\x02A\"internalAddGeneratedFile(
+ "\x0A\x9F8\x0A8google/cloud/commerceproducer/v1beta/private_offer.proto\x12\$google.cloud.commerceproducer.v1beta\x1A\x19google/api/resource.proto\x1A\x1Fgoogle/protobuf/timestamp.proto\x1A\x1Agoogle/type/datetime.proto\x1A\x19google/type/decimal.proto\x1A\x17google/type/money.proto\"\xF4.\x0A\x0CPrivateOffer\x12j\x0A\x14single_product_offer\x18\x0C \x01(\x0B2E.google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOfferB\x03\xE0A\x01H\x00\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x08\x12L\x0A\x05state\x18\x03 \x01(\x0E28.google.cloud.commerceproducer.v1beta.PrivateOffer.StateB\x03\xE0A\x03\x12\x81\x01\x0A!publish_requirement_google_review\x18\x04 \x01(\x0B2Q.google.cloud.commerceproducer.v1beta.PrivateOffer.PublishRequirementGoogleReviewB\x03\xE0A\x03\x124\x0A\x0Bcreate_time\x18\x06 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Bupdate_time\x18\x07 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x125\x0A\x0Cpublish_time\x18\x08 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Baccept_time\x18\x09 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Bcancel_time\x18\x0A \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x121\x0A\x08end_time\x18\x16 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12\x1E\x0A\x11cancellation_note\x18\x0B \x01(\x09B\x03\xE0A\x03\x12a\x0A\x10reseller_contact\x18\x14 \x01(\x0B2B.google.cloud.commerceproducer.v1beta.PrivateOffer.ResellerContactB\x03\xE0A\x03\x12\x1A\x0A\x0Dinternal_note\x18\x10 \x01(\x09B\x03\xE0A\x01\x12^\x0A\x0Foffer_deal_type\x18\x15 \x01(\x0E2@.google.cloud.commerceproducer.v1beta.PrivateOffer.OfferDealTypeB\x03\xE0A\x01\x12\x12\x0A\x05title\x18\x02 \x01(\x09B\x03\xE0A\x01\x12\x1A\x0A\x0Dcustomer_note\x18\x11 \x01(\x09B\x03\xE0A\x01\x12_\x0A\x0Fpartner_contact\x18\x0E \x01(\x0B2A.google.cloud.commerceproducer.v1beta.PrivateOffer.PartnerContactB\x03\xE0A\x01\x12R\x0A\x08customer\x18\x0D \x01(\x0B2;.google.cloud.commerceproducer.v1beta.PrivateOffer.CustomerB\x03\xE0A\x01\x128\x0A\x14accept_deadline_time\x18\x05 \x01(\x0B2\x15.google.type.DateTimeB\x03\xE0A\x01\x12J\x0A\x04term\x18\x0F \x01(\x0B27.google.cloud.commerceproducer.v1beta.PrivateOffer.TermB\x03\xE0A\x01\x1A^\x0A\x1EPublishRequirementGoogleReview\x12<\x0A\x13review_approve_time\x18\x02 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x1A;\x0A\x0FResellerContact\x12\x14\x0A\x07contact\x18\x01 \x01(\x09B\x03\xE0A\x03\x12\x12\x0A\x05email\x18\x02 \x01(\x09B\x03\xE0A\x03\x1A:\x0A\x0EPartnerContact\x12\x14\x0A\x07contact\x18\x01 \x01(\x09B\x03\xE0A\x01\x12\x12\x0A\x05email\x18\x02 \x01(\x09B\x03\xE0A\x01\x1A\xBB\x01\x0A\x08Customer\x12\x19\x0A\x0Centity_title\x18\x01 \x01(\x09B\x03\xE0A\x01\x12\x14\x0A\x07contact\x18\x02 \x01(\x09B\x03\xE0A\x01\x12\x12\x0A\x05email\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x16\x0A\x07address\x18\x04 \x01(\x09B\x05\x18\x01\xE0A\x03\x12R\x0A\x16target_billing_account\x18\x05 \x01(\x09B2\xE0A\x01\xFAA,\x0A*cloudbilling.googleapis.com/BillingAccount\x1A\xBB\x05\x0A\x04Term\x12\x1E\x0A\x0Fduration_months\x18\x04 \x01(\x05B\x03\xE0A\x01H\x00\x128\x0A\x12scheduled_end_time\x18\x05 \x01(\x0B2\x15.google.type.DateTimeB\x03\xE0A\x01H\x00\x12 \x0A\x11max_renewal_count\x18\x06 \x01(\x05B\x03\xE0A\x01H\x01\x12\"\x0A\x11unlimited_renewal\x18\x07 \x01(\x08B\x05\x18\x01\xE0A\x03H\x01\x12^\x0A\x0Cstart_policy\x18\x01 \x01(\x0E2C.google.cloud.commerceproducer.v1beta.PrivateOffer.Term.StartPolicyB\x03\xE0A\x01\x128\x0A\x14scheduled_start_time\x18\x02 \x01(\x0B2\x15.google.type.DateTimeB\x03\xE0A\x01\x12Z\x0A\x0Aend_policy\x18\x03 \x01(\x0E2A.google.cloud.commerceproducer.v1beta.PrivateOffer.Term.EndPolicyB\x03\xE0A\x01\x12;\x0A\x17effective_term_end_time\x18\x08 \x01(\x0B2\x15.google.type.DateTimeB\x03\xE0A\x03\"T\x0A\x0BStartPolicy\x12\x1C\x0A\x18START_POLICY_UNSPECIFIED\x10\x00\x12\x0D\x0A\x09IMMEDIATE\x10\x01\x12\x18\x0A\x14SCHEDULED_START_TIME\x10\x02\"l\x0A\x09EndPolicy\x12\x1A\x0A\x16END_POLICY_UNSPECIFIED\x10\x00\x12\x12\x0A\x0EAFTER_DURATION\x10\x01\x12\x16\x0A\x12SCHEDULED_END_TIME\x10\x02\x12\x17\x0A\x13MATCH_AMENDED_OFFER\x10\x03B\x11\x0A\x0Fend_policy_dataB\x09\x0A\x07renewal\x1A\xFD\x18\x0A\x12SingleProductOffer\x12U\x0A\x15amended_private_offer\x18\x03 \x01(\x09B4\xE0A\x01\xFAA.\x0A,commerceproducer.googleapis.com/PrivateOfferH\x00\x12W\x0A\x16amended_standard_offer\x18\x04 \x01(\x09B5\xE0A\x01\xFAA/\x0A-commerceproducer.googleapis.com/StandardOfferH\x00\x12\x83\x01\x0A\x17standard_interval_price\x18\x05 \x01(\x0B2[.google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer.StandardIntervalPriceB\x03\xE0A\x01H\x01\x12\x7F\x0A\x15custom_interval_price\x18\x06 \x01(\x0B2Y.google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer.CustomIntervalPriceB\x03\xE0A\x01H\x01\x12R\x0A\x13base_standard_offer\x18\x01 \x01(\x09B5\xE0A\x01\xFAA/\x0A-commerceproducer.googleapis.com/StandardOffer\x12\x1A\x0A\x0Dservice_level\x18\x02 \x01(\x09B\x03\xE0A\x03\x12+\x0A\x1Ereseller_private_offer_plan_id\x18\x0A \x01(\x09B\x03\xE0A\x03\x12d\x0A\x08features\x18\x08 \x03(\x0B2M.google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer.FeatureB\x03\xE0A\x01\x12~\x0A\x1Eeffective_installment_timeline\x18\x07 \x03(\x0B2Q.google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer.InstallmentB\x03\xE0A\x03\x12p\x0A\x0Econtract_value\x18\x0B \x01(\x0B2S.google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer.ContractValueB\x03\xE0A\x03\x12n\x0A\x0Drevenue_share\x18\x0C \x01(\x0B2R.google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer.RevenueShareB\x03\xE0A\x03\x1A8\x0A\x07Feature\x12\x19\x0A\x0Cdisplay_name\x18\x01 \x01(\x09B\x03\xE0A\x01\x12\x12\x0A\x05value\x18\x02 \x01(\x09B\x03\xE0A\x01\x1A\x88\x08\x0A\x0APriceModel\x12q\x0A\x08flat_fee\x18\x02 \x01(\x0B2X.google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer.PriceModel.FlatFeeB\x03\xE0A\x01H\x00\x12v\x0A\x0Acommitment\x18\x03 \x01(\x0B2[.google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer.PriceModel.CommitmentB\x03\xE0A\x01H\x00\x12j\x0A\x05usage\x18\x01 \x01(\x0B2V.google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer.PriceModel.UsageB\x03\xE0A\x01\x1A\xB8\x01\x0A\x0BSkuDiscount\x12:\x0A\x03sku\x18\x01 \x01(\x09B+\xE0A\x01\xFAA%\x0A#commerceproducer.googleapis.com/SkuH\x00\x12 \x0A\x11cloud_billing_sku\x18\x03 \x01(\x09B\x03\xE0A\x01H\x00\x125\x0A\x10discount_percent\x18\x02 \x01(\x0B2\x14.google.type.DecimalB\x03\xE0A\x01H\x01B\x08\x0A\x06targetB\x0A\x0A\x08discount\x1A\xBE\x01\x0A\x05Usage\x12;\x0A\x18default_discount_percent\x18\x01 \x01(\x0B2\x14.google.type.DecimalB\x03\xE0A\x01\x12x\x0A\x0Dsku_discounts\x18\x02 \x03(\x0B2\\.google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer.PriceModel.SkuDiscountB\x03\xE0A\x01\x1A=\x0A\x07FlatFee\x122\x0A\x11flat_fee_override\x18\x01 \x01(\x0B2\x12.google.type.MoneyB\x03\xE0A\x01\x1A\xD7\x01\x0A\x0ACommitment\x122\x0A\x11commitment_amount\x18\x01 \x01(\x0B2\x12.google.type.MoneyB\x03\xE0A\x01\x123\x0A\x10discount_percent\x18\x02 \x01(\x0B2\x14.google.type.DecimalB\x03\xE0A\x01\x122\x0A\x11additional_credit\x18\x03 \x01(\x0B2\x12.google.type.MoneyB\x03\xE0A\x01\x12,\x0A\x1Fdiscard_previous_credit_balance\x18\x04 \x01(\x08B\x03\xE0A\x01B\x0E\x0A\x0Csubscription\x1A\xC8\x03\x0A\x15StandardIntervalPrice\x12\x8C\x01\x0A\x11standard_interval\x18\x01 \x01(\x0E2l.google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer.StandardIntervalPrice.StandardIntervalB\x03\xE0A\x01\x12j\x0A\x0Bprice_model\x18\x02 \x01(\x0B2P.google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer.PriceModelB\x03\xE0A\x01\"\xB3\x01\x0A\x10StandardInterval\x12!\x0A\x1DSTANDARD_INTERVAL_UNSPECIFIED\x10\x00\x12\x17\x0A\x0FMONTHLY_POSTPAY\x10\x01\x1A\x02\x08\x01\x12\x14\x0A\x10MONTHLY_PRORATED\x10\x02\x12\x18\x0A\x14MONTHLY_NOT_PRORATED\x10\x03\x12\x1A\x0A\x16QUARTERLY_NOT_PRORATED\x10\x04\x12\x17\x0A\x13YEARLY_NOT_PRORATED\x10\x05\x1A\xA9\x01\x0A\x0BInstallment\x12.\x0A\x0Astart_time\x18\x01 \x01(\x0B2\x15.google.type.DateTimeB\x03\xE0A\x01\x12j\x0A\x0Bprice_model\x18\x02 \x01(\x0B2P.google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer.PriceModelB\x03\xE0A\x01\x1A\x83\x01\x0A\x13CustomIntervalPrice\x12l\x0A\x0Cinstallments\x18\x01 \x03(\x0B2Q.google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer.InstallmentB\x03\xE0A\x01\x1AF\x0A\x0DContractValue\x125\x0A\x14total_contract_value\x18\x01 \x01(\x0B2\x12.google.type.MoneyB\x03\xE0A\x03\x1A\xA6\x01\x0A\x0CRevenueShare\x12J\x0A'current_term_vendor_net_revenue_percent\x18\x01 \x01(\x0B2\x14.google.type.DecimalB\x03\xE0A\x03\x12J\x0A'renewal_term_vendor_net_revenue_percent\x18\x02 \x01(\x0B2\x14.google.type.DecimalB\x03\xE0A\x03B\x0F\x0A\x0Damended_offerB\x07\x0A\x05price\"}\x0A\x05State\x12\x15\x0A\x11STATE_UNSPECIFIED\x10\x00\x12\x09\x0A\x05DRAFT\x10\x01\x12\x0E\x0A\x0APUBLISHING\x10\x02\x12\x0D\x0A\x09PUBLISHED\x10\x03\x12\x0C\x0A\x08ACCEPTED\x10\x04\x12\x0D\x0A\x09CANCELLED\x10\x05\x12\x0B\x0A\x07EXPIRED\x10\x06\x12\x09\x0A\x05ENDED\x10\x07\"o\x0A\x0DOfferDealType\x12\x1F\x0A\x1BOFFER_DEAL_TYPE_UNSPECIFIED\x10\x00\x12\x11\x0A\x0DCHANNEL_SHIFT\x10\x01\x12\x0D\x0A\x09MIGRATION\x10\x02\x12\x12\x0A\x0ENATIVE_RENEWAL\x10\x03\x12\x07\x0A\x03NEW\x10\x04:\x96\x01\xEAA\x92\x01\x0A,commerceproducer.googleapis.com/PrivateOffer\x12Eprojects/{project}/locations/{location}/privateOffers/{private_offer}*\x0DprivateOffers2\x0CprivateOfferB\x09\x0A\x07content\"\xC8\x05\x0A\x14PrivateOfferDocument\x12\x1D\x0A\x0Einline_content\x18\x06 \x01(\x0CB\x03\xE0A\x01H\x00\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x08\x124\x0A\x0Bcreate_time\x18\x02 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Bupdate_time\x18\x03 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12c\x0A\x0Ddocument_type\x18\x04 \x01(\x0E2G.google.cloud.commerceproducer.v1beta.PrivateOfferDocument.DocumentTypeB\x03\xE0A\x02\x12\x16\x0A\x09mime_type\x18\x05 \x01(\x09B\x03\xE0A\x01\"\xC3\x01\x0A\x0CDocumentType\x12\x1D\x0A\x19DOCUMENT_TYPE_UNSPECIFIED\x10\x00\x12%\x0A!CUSTOM_END_USER_LICENSE_AGREEMENT\x10\x01\x12\x15\x0A\x11STATEMENT_OF_WORK\x10\x02\x12*\x0A&STANDARD_END_USER_LICENSE_AGREEMENT_V1\x10\x03\x12*\x0A&STANDARD_END_USER_LICENSE_AGREEMENT_V2\x10\x04:\xC3\x01\xEAA\xBF\x01\x0A4commerceproducer.googleapis.com/PrivateOfferDocument\x12Zprojects/{project}/locations/{location}/privateOffers/{private_offer}/documents/{document}*\x15privateOfferDocuments2\x14privateOfferDocumentB\x09\x0A\x07contentB\xE6\x01\x0A(com.google.cloud.commerceproducer.v1betaB\x11PrivateOfferProtoP\x01ZTcloud.google.com/go/commerceproducer/apiv1beta/commerceproducerpb;commerceproducerpb\xAA\x02\$Google.Cloud.CommerceProducer.V1Beta\xEA\x02'Google::Cloud::CommerceProducer::V1betab\x06proto3"
+ , true);
+
+ static::$is_initialized = true;
+ }
+}
+
diff --git a/Commerceproducer/metadata/V1Beta/Service.php b/Commerceproducer/metadata/V1Beta/Service.php
new file mode 100644
index 00000000000..39dc930cb00
--- /dev/null
+++ b/Commerceproducer/metadata/V1Beta/Service.php
@@ -0,0 +1,26 @@
+internalAddGeneratedFile(
+ "\x0A\x91\x04\x0A2google/cloud/commerceproducer/v1beta/service.proto\x12\$google.cloud.commerceproducer.v1beta\x1A\x19google/api/resource.proto\"\xAD\x01\x0A\x07Service\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x08\x12\x12\x0A\x05title\x18\x02 \x01(\x09B\x03\xE0A\x03:{\xEAAx\x0A'commerceproducer.googleapis.com/Service\x12:projects/{project}/locations/{location}/services/{service}*\x08services2\x07serviceB\xE1\x01\x0A(com.google.cloud.commerceproducer.v1betaB\x0CServiceProtoP\x01ZTcloud.google.com/go/commerceproducer/apiv1beta/commerceproducerpb;commerceproducerpb\xAA\x02\$Google.Cloud.CommerceProducer.V1Beta\xEA\x02'Google::Cloud::CommerceProducer::V1betab\x06proto3"
+ , true);
+
+ static::$is_initialized = true;
+ }
+}
+
diff --git a/Commerceproducer/metadata/V1Beta/Sku.php b/Commerceproducer/metadata/V1Beta/Sku.php
new file mode 100644
index 00000000000..25a94a9ea55
--- /dev/null
+++ b/Commerceproducer/metadata/V1Beta/Sku.php
@@ -0,0 +1,30 @@
+internalAddGeneratedFile(
+ "\x0A\xC48\x0A.google/cloud/commerceproducer/v1beta/sku.proto\x12\$google.cloud.commerceproducer.v1beta\x1A\x19google/api/resource.proto\x1A\x1Egoogle/protobuf/duration.proto\x1A\x1Fgoogle/protobuf/timestamp.proto\x1A\x19google/type/decimal.proto\x1A\x17google/type/money.proto\"\xF34\x0A\x03Sku\x12\x14\x0A\x04name\x18\x01 \x01(\x09B\x06\xE0A\x08\xE0A\x03\x12\x18\x0A\x0Bdescription\x18\x02 \x01(\x09B\x03\xE0A\x03\x12S\x0A\x12sku_price_timeline\x18\x03 \x03(\x0B22.google.cloud.commerceproducer.v1beta.Sku.SkuPriceB\x03\xE0A\x03\x1A\xEA2\x0A\x08SkuPrice\x12\\\x0A\x08inactive\x18\x02 \x01(\x0B2C.google.cloud.commerceproducer.v1beta.Sku.SkuPrice.InactiveSkuPriceB\x03\xE0A\x03H\x00\x12\x80\x01\x0A managed_service_metric_usage_fee\x18\x03 \x01(\x0B2O.google.cloud.commerceproducer.v1beta.Sku.SkuPrice.ManagedServiceMetricUsageFeeB\x03\xE0A\x03H\x00\x12u\x0A\x15gce_license_usage_fee\x18\x04 \x01(\x0B2O.google.cloud.commerceproducer.v1beta.Sku.SkuPrice.ComputeEngineLicenseUsageFeeB\x03\xE0A\x03H\x00\x12p\x0A\x11gke_pod_usage_fee\x18\x05 \x01(\x0B2N.google.cloud.commerceproducer.v1beta.Sku.SkuPrice.KubernetesEnginePodUsageFeeB\x03\xE0A\x03H\x00\x12\x85\x01\x0A#ai_platform_managed_model_usage_fee\x18\x06 \x01(\x0B2Q.google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformManagedModelUsageFeeB\x03\xE0A\x03H\x00\x12\x8C\x01\x0A&ai_platform_provisioned_throughput_fee\x18\x07 \x01(\x0B2U.google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformProvisionedThroughputFeeB\x03\xE0A\x03H\x00\x12\x87\x01\x0A\$ai_platform_deployed_model_usage_fee\x18\x08 \x01(\x0B2R.google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformDeployedModelUsageFeeB\x03\xE0A\x03H\x00\x12l\x0A\x15flat_subscription_fee\x18\x09 \x01(\x0B2F.google.cloud.commerceproducer.v1beta.Sku.SkuPrice.FlatSubscriptionFeeB\x03\xE0A\x03H\x00\x127\x0A\x0Eeffective_time\x18\x01 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x1A\x12\x0A\x10InactiveSkuPrice\x1A\xAD\x01\x0A\x1CManagedServiceMetricUsageFee\x12[\x0A\x0Ctiered_price\x18\x02 \x01(\x0B2>.google.cloud.commerceproducer.v1beta.Sku.SkuPrice.TieredPriceB\x03\xE0A\x03H\x00\x12\x1D\x0A\x10canonical_metric\x18\x01 \x01(\x09B\x03\xE0A\x03B\x11\x0A\x0Fprice_structure\x1A\xD9\x06\x0A\x1CComputeEngineLicenseUsageFee\x12,\x0A\x0Eprice_per_unit\x18\x06 \x01(\x0B2\x12.google.type.MoneyH\x00\x12\x19\x0A\x0Clicense_code\x18\x01 \x01(\x09B\x03\xE0A\x03\x12~\x0A\x10machine_resource\x18\x02 \x01(\x0E2_.google.cloud.commerceproducer.v1beta.Sku.SkuPrice.ComputeEngineLicenseUsageFee.MachineResourceB\x03\xE0A\x03\x12\x89\x01\x0A\x16machine_resource_range\x18\x03 \x01(\x0B2d.google.cloud.commerceproducer.v1beta.Sku.SkuPrice.ComputeEngineLicenseUsageFee.MachineResourceRangeB\x03\xE0A\x03\x12\x80\x01\x0A\x11usage_calculation\x18\x04 \x01(\x0E2`.google.cloud.commerceproducer.v1beta.Sku.SkuPrice.ComputeEngineLicenseUsageFee.UsageCalculationB\x03\xE0A\x03\x12\x11\x0A\x04unit\x18\x05 \x01(\x09B\x03\xE0A\x03\x1A[\x0A\x14MachineResourceRange\x12\x18\x0A\x0Bstart_value\x18\x01 \x01(\x03B\x03\xE0A\x03\x12\x1B\x0A\x09end_value\x18\x02 \x01(\x03B\x03\xE0A\x03H\x00\x88\x01\x01B\x0C\x0A\x0A_end_value\"d\x0A\x0FMachineResource\x12 \x0A\x1CMACHINE_RESOURCE_UNSPECIFIED\x10\x00\x12\x0E\x0A\x0AVCPU_COUNT\x10\x01\x12\x10\x0A\x0CMEMORY_BYTES\x10\x02\x12\x0D\x0A\x09GPU_COUNT\x10\x03\"x\x0A\x10UsageCalculation\x12!\x0A\x1DUSAGE_CALCULATION_UNSPECIFIED\x10\x00\x12\x14\x0A\x10INSTANCE_RUNTIME\x10\x01\x12+\x0A'LINEAR_RESOURCE_SCALED_INSTANCE_RUNTIME\x10\x02B\x11\x0A\x0Fprice_structure\x1A\xA2\x06\x0A\x1BKubernetesEnginePodUsageFee\x12,\x0A\x0Eprice_per_unit\x18\x06 \x01(\x0B2\x12.google.type.MoneyH\x00\x12u\x0A\x0Cpod_resource\x18\x02 \x01(\x0E2Z.google.cloud.commerceproducer.v1beta.Sku.SkuPrice.KubernetesEnginePodUsageFee.PodResourceB\x03\xE0A\x03\x12\x80\x01\x0A\x12pod_resource_range\x18\x03 \x01(\x0B2_.google.cloud.commerceproducer.v1beta.Sku.SkuPrice.KubernetesEnginePodUsageFee.PodResourceRangeB\x03\xE0A\x03\x12\x7F\x0A\x11usage_calculation\x18\x04 \x01(\x0E2_.google.cloud.commerceproducer.v1beta.Sku.SkuPrice.KubernetesEnginePodUsageFee.UsageCalculationB\x03\xE0A\x03\x12\x11\x0A\x04unit\x18\x05 \x01(\x09B\x03\xE0A\x03\x1AW\x0A\x10PodResourceRange\x12\x18\x0A\x0Bstart_value\x18\x01 \x01(\x03B\x03\xE0A\x03\x12\x1B\x0A\x09end_value\x18\x02 \x01(\x03B\x03\xE0A\x03H\x00\x88\x01\x01B\x0C\x0A\x0A_end_value\"k\x0A\x0BPodResource\x12\x1C\x0A\x18POD_RESOURCE_UNSPECIFIED\x10\x00\x12\x0E\x0A\x0AVCPU_COUNT\x10\x01\x12\x10\x0A\x0CMEMORY_BYTES\x10\x02\x12\x0D\x0A\x09GPU_COUNT\x10\x03\x12\x0D\x0A\x09TPU_COUNT\x10\x04\"n\x0A\x10UsageCalculation\x12!\x0A\x1DUSAGE_CALCULATION_UNSPECIFIED\x10\x00\x12\x0F\x0A\x0BPOD_RUNTIME\x10\x01\x12&\x0A\"LINEAR_RESOURCE_SCALED_POD_RUNTIME\x10\x02B\x11\x0A\x0Fprice_structure\x1A\xFB\x11\x0A\x1EAiPlatformManagedModelUsageFee\x12[\x0A\x0Ctiered_price\x18\x07 \x01(\x0B2>.google.cloud.commerceproducer.v1beta.Sku.SkuPrice.TieredPriceB\x03\xE0A\x03H\x00\x12\x8E\x01\x0A\x0Cusage_metric\x18\x01 \x01(\x0B2s.google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformManagedModelUsageFee.AiPlatformManagedModelUsageMetricB\x03\xE0A\x03\x12p\x0A\x08location\x18\x03 \x01(\x0B2Y.google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformManagedModelEndpointLocationB\x03\xE0A\x03\x12~\x0A\x0Fprediction_mode\x18\x04 \x01(\x0E2`.google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformManagedModelUsageFee.PredictionModeB\x03\xE0A\x03\x12\xA3\x01\x0A#combined_request_input_tokens_range\x18\x05 \x01(\x0B2q.google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformManagedModelUsageFee.CombinedRequestInputTokensRangeB\x03\xE0A\x03\x12\x9B\x01\x0A\x1Eprovisioned_throughput_overage\x18\x06 \x01(\x0B2n.google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformManagedModelUsageFee.ProvisionedThroughputOverageB\x03\xE0A\x03\x1A\xF7\x08\x0A!AiPlatformManagedModelUsageMetric\x12\xAA\x01\x0A\x13input_tokens_metric\x18\x01 \x01(\x0B2\x85\x01.google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformManagedModelUsageFee.AiPlatformManagedModelUsageMetric.InputTokensMetricB\x03\xE0A\x03H\x00\x12\xBE\x01\x0A\x1Ecache_read_input_tokens_metric\x18\x02 \x01(\x0B2\x8E\x01.google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformManagedModelUsageFee.AiPlatformManagedModelUsageMetric.CacheReadInputTokensMetricB\x03\xE0A\x03H\x00\x12\xC0\x01\x0A\x1Fcache_write_input_tokens_metric\x18\x03 \x01(\x0B2\x8F\x01.google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformManagedModelUsageFee.AiPlatformManagedModelUsageMetric.CacheWriteInputTokensMetricB\x03\xE0A\x03H\x00\x12\xAC\x01\x0A\x14output_tokens_metric\x18\x04 \x01(\x0B2\x86\x01.google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformManagedModelUsageFee.AiPlatformManagedModelUsageMetric.OutputTokensMetricB\x03\xE0A\x03H\x00\x12\xB7\x01\x0A\x1Aweb_search_requests_metric\x18\x05 \x01(\x0B2\x8B\x01.google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformManagedModelUsageFee.AiPlatformManagedModelUsageMetric.WebSearchRequestsMetricB\x03\xE0A\x03H\x00\x1A\x13\x0A\x11InputTokensMetric\x1A\x1C\x0A\x1ACacheReadInputTokensMetric\x1AJ\x0A\x1BCacheWriteInputTokensMetric\x12+\x0A\x03ttl\x18\x01 \x01(\x0B2\x19.google.protobuf.DurationB\x03\xE0A\x03\x1A\x14\x0A\x12OutputTokensMetric\x1A\x19\x0A\x17WebSearchRequestsMetricB\x08\x0A\x06metric\x1Af\x0A\x1FCombinedRequestInputTokensRange\x12\x18\x0A\x0Bstart_value\x18\x01 \x01(\x03B\x03\xE0A\x03\x12\x1B\x0A\x09end_value\x18\x02 \x01(\x03B\x03\xE0A\x03H\x00\x88\x01\x01B\x0C\x0A\x0A_end_value\x1A`\x0A\x1CProvisionedThroughputOverage\x12@\x0A\x07service\x18\x01 \x01(\x09B/\xE0A\x03\xFAA)\x12'commerceproducer.googleapis.com/Service\"^\x0A\x0EPredictionMode\x12\x1F\x0A\x1BPREDICTION_MODE_UNSPECIFIED\x10\x00\x12\x15\x0A\x11ONLINE_PREDICTION\x10\x01\x12\x14\x0A\x10BATCH_PREDICTION\x10\x02B\x11\x0A\x0Fprice_structure\x1A\x9B\x02\x0A\"AiPlatformProvisionedThroughputFee\x12#\x0A\x14term_duration_months\x18\x02 \x01(\x05B\x03\xE0A\x03H\x00\x120\x0A\x12gsu_price_per_unit\x18\x04 \x01(\x0B2\x12.google.type.MoneyH\x01\x12p\x0A\x08location\x18\x01 \x01(\x0B2Y.google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformManagedModelEndpointLocationB\x03\xE0A\x03\x12\x11\x0A\x04unit\x18\x03 \x01(\x09B\x03\xE0A\x03B\x06\x0A\x04termB\x11\x0A\x0Fprice_structure\x1A\x9C\x03\x0A\x1FAiPlatformDeployedModelUsageFee\x12\x1F\x0A\x10accelerator_type\x18\x02 \x01(\x09B\x03\xE0A\x03H\x00\x121\x0A\x0Eprice_per_unit\x18\x05 \x01(\x0B2\x12.google.type.MoneyB\x03\xE0A\x03H\x01\x12\x11\x0A\x04unit\x18\x03 \x01(\x09B\x03\xE0A\x03\x12\x83\x01\x0A\x11usage_calculation\x18\x04 \x01(\x0E2c.google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformDeployedModelUsageFee.UsageCalculationB\x03\xE0A\x03\"d\x0A\x10UsageCalculation\x12!\x0A\x1DUSAGE_CALCULATION_UNSPECIFIED\x10\x00\x12-\x0A)LINEAR_RESOURCE_SCALED_DEPLOYMENT_RUNTIME\x10\x02B\x13\x0A\x11hardware_resourceB\x11\x0A\x0Fprice_structure\x1An\x0A\x13FlatSubscriptionFee\x121\x0A\x0Eprice_per_unit\x18\x03 \x01(\x0B2\x12.google.type.MoneyB\x03\xE0A\x03H\x00\x12\x11\x0A\x04unit\x18\x02 \x01(\x09B\x03\xE0A\x03B\x11\x0A\x0Fprice_structure\x1A\xBE\x02\x0A\x0BTieredPrice\x12\x11\x0A\x04unit\x18\x01 \x01(\x09B\x03\xE0A\x03\x12\x1D\x0A\x10unit_description\x18\x02 \x01(\x09B\x03\xE0A\x03\x123\x0A\x10price_unit_count\x18\x03 \x01(\x0B2\x14.google.type.DecimalB\x03\xE0A\x03\x12b\x0A\x0Bprice_tiers\x18\x04 \x03(\x0B2H.google.cloud.commerceproducer.v1beta.Sku.SkuPrice.TieredPrice.PriceTierB\x03\xE0A\x03\x1Ad\x0A\x09PriceTier\x12/\x0A\x0Cstart_amount\x18\x01 \x01(\x0B2\x14.google.type.DecimalB\x03\xE0A\x03\x12&\x0A\x05price\x18\x02 \x01(\x0B2\x12.google.type.MoneyB\x03\xE0A\x03\x1A\x8E\x01\x0A&AiPlatformManagedModelEndpointLocation\x12\x18\x0A\x09region_id\x18\x01 \x01(\x09B\x03\xE0A\x03H\x00\x12\x1E\x0A\x0Fglobal_endpoint\x18\x02 \x01(\x08B\x03\xE0A\x03H\x00\x12\x1E\x0A\x0Fmulti_region_id\x18\x03 \x01(\x09B\x03\xE0A\x03H\x00B\x0A\x0A\x08locationB\x0A\x0A\x08sku_type:z\xEAAw\x0A#commerceproducer.googleapis.com/Sku\x12Eprojects/{project}/locations/{location}/services/{service}/skus/{sku}*\x04skus2\x03skuB\xDD\x01\x0A(com.google.cloud.commerceproducer.v1betaB\x08SkuProtoP\x01ZTcloud.google.com/go/commerceproducer/apiv1beta/commerceproducerpb;commerceproducerpb\xAA\x02\$Google.Cloud.CommerceProducer.V1Beta\xEA\x02'Google::Cloud::CommerceProducer::V1betab\x06proto3"
+ , true);
+
+ static::$is_initialized = true;
+ }
+}
+
diff --git a/Commerceproducer/metadata/V1Beta/SkuGroup.php b/Commerceproducer/metadata/V1Beta/SkuGroup.php
new file mode 100644
index 00000000000..4f109a0e957
--- /dev/null
+++ b/Commerceproducer/metadata/V1Beta/SkuGroup.php
@@ -0,0 +1,26 @@
+internalAddGeneratedFile(
+ "\x0A\xE7\x04\x0A4google/cloud/commerceproducer/v1beta/sku_group.proto\x12\$google.cloud.commerceproducer.v1beta\x1A\x19google/api/resource.proto\"\x80\x02\x0A\x08SkuGroup\x12\x14\x0A\x04name\x18\x01 \x01(\x09B\x06\xE0A\x03\xE0A\x08\x129\x0A\x04skus\x18\x02 \x03(\x09B+\xE0A\x03\xFAA%\x0A#commerceproducer.googleapis.com/Sku\x12\x1F\x0A\x12cloud_billing_skus\x18\x03 \x03(\x09B\x03\xE0A\x03:\x81\x01\xEAA~\x0A(commerceproducer.googleapis.com/SkuGroup\x12=projects/{project}/locations/{location}/skuGroups/{sku_group}*\x09skuGroups2\x08skuGroupB\xE2\x01\x0A(com.google.cloud.commerceproducer.v1betaB\x0DSkuGroupProtoP\x01ZTcloud.google.com/go/commerceproducer/apiv1beta/commerceproducerpb;commerceproducerpb\xAA\x02\$Google.Cloud.CommerceProducer.V1Beta\xEA\x02'Google::Cloud::CommerceProducer::V1betab\x06proto3"
+ , true);
+
+ static::$is_initialized = true;
+ }
+}
+
diff --git a/Commerceproducer/metadata/V1Beta/StandardOffer.php b/Commerceproducer/metadata/V1Beta/StandardOffer.php
new file mode 100644
index 00000000000..6c4f9df1810
--- /dev/null
+++ b/Commerceproducer/metadata/V1Beta/StandardOffer.php
@@ -0,0 +1,27 @@
+internalAddGeneratedFile(
+ "\x0A\xB7\x0D\x0A9google/cloud/commerceproducer/v1beta/standard_offer.proto\x12\$google.cloud.commerceproducer.v1beta\x1A\x19google/api/resource.proto\x1A\x1Fgoogle/protobuf/timestamp.proto\"\xA5\x0A\x0A\x0DStandardOffer\x12#\x0A\x14term_duration_months\x18\x07 \x01(\x05B\x03\xE0A\x03H\x00\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x08\x124\x0A\x0Bcreate_time\x18\x02 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Bupdate_time\x18\x03 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x127\x0A\x0Eeffective_time\x18\x04 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Bexpire_time\x18\x05 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12\x1A\x0A\x0Dservice_level\x18\x06 \x01(\x09B\x03\xE0A\x03\x12 \x0A\x13service_level_title\x18\x09 \x01(\x09B\x03\xE0A\x03\x12X\x0A\x0Bprice_model\x18\x08 \x01(\x0B2>.google.cloud.commerceproducer.v1beta.StandardOffer.PriceModelB\x03\xE0A\x03\x1A\xAF\x05\x0A\x0APriceModel\x12k\x0A\x08flat_fee\x18\x02 \x01(\x0B2R.google.cloud.commerceproducer.v1beta.StandardOffer.PriceModel.FlatFeeSubscriptionB\x03\xE0A\x03H\x00\x12X\x0A\x05usage\x18\x01 \x01(\x0B2D.google.cloud.commerceproducer.v1beta.StandardOffer.PriceModel.UsageB\x03\xE0A\x03\x1AD\x0A\x07SkuList\x129\x0A\x04skus\x18\x01 \x03(\x09B+\xE0A\x03\xFAA%\x0A#commerceproducer.googleapis.com/Sku\x1AT\x0A\x0CSkuGroupList\x12D\x0A\x0Asku_groups\x18\x01 \x03(\x09B0\xE0A\x03\xFAA*\x0A(commerceproducer.googleapis.com/SkuGroup\x1A\xDC\x01\x0A\x05Usage\x12_\x0A\x08sku_list\x18\x01 \x01(\x0B2F.google.cloud.commerceproducer.v1beta.StandardOffer.PriceModel.SkuListB\x03\xE0A\x03H\x00\x12j\x0A\x0Esku_group_list\x18\x02 \x01(\x0B2K.google.cloud.commerceproducer.v1beta.StandardOffer.PriceModel.SkuGroupListB\x03\xE0A\x03H\x00B\x06\x0A\x04skus\x1AO\x0A\x13FlatFeeSubscription\x128\x0A\x03sku\x18\x01 \x01(\x09B+\xE0A\x03\xFAA%\x0A#commerceproducer.googleapis.com/SkuB\x0E\x0A\x0Csubscription:\xAE\x01\xEAA\xAA\x01\x0A-commerceproducer.googleapis.com/StandardOffer\x12Zprojects/{project}/locations/{location}/services/{service}/standardOffers/{standard_offer}*\x0EstandardOffers2\x0DstandardOfferB\x06\x0A\x04termB\xE7\x01\x0A(com.google.cloud.commerceproducer.v1betaB\x12StandardOfferProtoP\x01ZTcloud.google.com/go/commerceproducer/apiv1beta/commerceproducerpb;commerceproducerpb\xAA\x02\$Google.Cloud.CommerceProducer.V1Beta\xEA\x02'Google::Cloud::CommerceProducer::V1betab\x06proto3"
+ , true);
+
+ static::$is_initialized = true;
+ }
+}
+
diff --git a/Commerceproducer/owlbot.py b/Commerceproducer/owlbot.py
new file mode 100644
index 00000000000..fd458979b0d
--- /dev/null
+++ b/Commerceproducer/owlbot.py
@@ -0,0 +1,47 @@
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+"""This script is used to synthesize generated parts of this library."""
+
+import logging
+from pathlib import Path
+import subprocess
+
+import synthtool as s
+from synthtool.languages import php
+from synthtool import _tracked_paths
+
+logging.basicConfig(level=logging.DEBUG)
+
+src = Path(f"../{php.STAGING_DIR}/Commerceproducer").resolve()
+dest = Path().resolve()
+
+# Added so that we can pass copy_excludes in the owlbot_main() call
+_tracked_paths.add(src)
+
+php.owlbot_main(src=src, dest=dest)
+
+# format generated clients
+subprocess.run([
+ 'npm',
+ 'exec',
+ '--yes',
+ '--package=@prettier/plugin-php@^0.19',
+ '--',
+ 'prettier',
+ '**/Client/*',
+ '--write',
+ '--parser=php',
+ '--single-quote',
+ '--print-width=120'])
diff --git a/Commerceproducer/phpunit.xml.dist b/Commerceproducer/phpunit.xml.dist
new file mode 100644
index 00000000000..41802e1bed8
--- /dev/null
+++ b/Commerceproducer/phpunit.xml.dist
@@ -0,0 +1,16 @@
+
+
+
+
+ src
+
+
+ src/V[!a-zA-Z]*
+
+
+
+
+ tests/Unit
+
+
+
diff --git a/Commerceproducer/samples/V1beta/CommerceTransactionClient/cancel_private_offer.php b/Commerceproducer/samples/V1beta/CommerceTransactionClient/cancel_private_offer.php
new file mode 100644
index 00000000000..0fed7ee506d
--- /dev/null
+++ b/Commerceproducer/samples/V1beta/CommerceTransactionClient/cancel_private_offer.php
@@ -0,0 +1,75 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PrivateOffer $response */
+ $response = $commerceTransactionClient->cancelPrivateOffer($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample 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.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = CommerceTransactionClient::privateOfferName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[PRIVATE_OFFER]'
+ );
+
+ cancel_private_offer_sample($formattedName);
+}
+// [END commerceproducer_v1beta_generated_CommerceTransaction_CancelPrivateOffer_sync]
diff --git a/Commerceproducer/samples/V1beta/CommerceTransactionClient/create_private_offer.php b/Commerceproducer/samples/V1beta/CommerceTransactionClient/create_private_offer.php
new file mode 100644
index 00000000000..1f7116bc8c8
--- /dev/null
+++ b/Commerceproducer/samples/V1beta/CommerceTransactionClient/create_private_offer.php
@@ -0,0 +1,73 @@
+setParent($formattedParent)
+ ->setPrivateOffer($privateOffer);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PrivateOffer $response */
+ $response = $commerceTransactionClient->createPrivateOffer($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample 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.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = CommerceTransactionClient::locationName('[PROJECT]', '[LOCATION]');
+
+ create_private_offer_sample($formattedParent);
+}
+// [END commerceproducer_v1beta_generated_CommerceTransaction_CreatePrivateOffer_sync]
diff --git a/Commerceproducer/samples/V1beta/CommerceTransactionClient/create_private_offer_document.php b/Commerceproducer/samples/V1beta/CommerceTransactionClient/create_private_offer_document.php
new file mode 100644
index 00000000000..fe98aae3fc9
--- /dev/null
+++ b/Commerceproducer/samples/V1beta/CommerceTransactionClient/create_private_offer_document.php
@@ -0,0 +1,85 @@
+setDocumentType($privateOfferDocumentDocumentType);
+ $request = (new CreatePrivateOfferDocumentRequest())
+ ->setParent($formattedParent)
+ ->setPrivateOfferDocument($privateOfferDocument);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PrivateOfferDocument $response */
+ $response = $commerceTransactionClient->createPrivateOfferDocument($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample 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.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = CommerceTransactionClient::privateOfferName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[PRIVATE_OFFER]'
+ );
+ $privateOfferDocumentDocumentType = DocumentType::DOCUMENT_TYPE_UNSPECIFIED;
+
+ create_private_offer_document_sample($formattedParent, $privateOfferDocumentDocumentType);
+}
+// [END commerceproducer_v1beta_generated_CommerceTransaction_CreatePrivateOfferDocument_sync]
diff --git a/Commerceproducer/samples/V1beta/CommerceTransactionClient/delete_private_offer.php b/Commerceproducer/samples/V1beta/CommerceTransactionClient/delete_private_offer.php
new file mode 100644
index 00000000000..ea13f6d4e28
--- /dev/null
+++ b/Commerceproducer/samples/V1beta/CommerceTransactionClient/delete_private_offer.php
@@ -0,0 +1,73 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ $commerceTransactionClient->deletePrivateOffer($request);
+ printf('Call completed successfully.' . PHP_EOL);
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample 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.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = CommerceTransactionClient::privateOfferName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[PRIVATE_OFFER]'
+ );
+
+ delete_private_offer_sample($formattedName);
+}
+// [END commerceproducer_v1beta_generated_CommerceTransaction_DeletePrivateOffer_sync]
diff --git a/Commerceproducer/samples/V1beta/CommerceTransactionClient/delete_private_offer_document.php b/Commerceproducer/samples/V1beta/CommerceTransactionClient/delete_private_offer_document.php
new file mode 100644
index 00000000000..520821a3b80
--- /dev/null
+++ b/Commerceproducer/samples/V1beta/CommerceTransactionClient/delete_private_offer_document.php
@@ -0,0 +1,74 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ $commerceTransactionClient->deletePrivateOfferDocument($request);
+ printf('Call completed successfully.' . PHP_EOL);
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample 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.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = CommerceTransactionClient::privateOfferDocumentName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[PRIVATE_OFFER]',
+ '[DOCUMENT]'
+ );
+
+ delete_private_offer_document_sample($formattedName);
+}
+// [END commerceproducer_v1beta_generated_CommerceTransaction_DeletePrivateOfferDocument_sync]
diff --git a/Commerceproducer/samples/V1beta/CommerceTransactionClient/get_location.php b/Commerceproducer/samples/V1beta/CommerceTransactionClient/get_location.php
new file mode 100644
index 00000000000..732489ecb13
--- /dev/null
+++ b/Commerceproducer/samples/V1beta/CommerceTransactionClient/get_location.php
@@ -0,0 +1,57 @@
+getLocation($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+// [END commerceproducer_v1beta_generated_CommerceTransaction_GetLocation_sync]
diff --git a/Commerceproducer/samples/V1beta/CommerceTransactionClient/get_private_offer.php b/Commerceproducer/samples/V1beta/CommerceTransactionClient/get_private_offer.php
new file mode 100644
index 00000000000..c9217aa9c6d
--- /dev/null
+++ b/Commerceproducer/samples/V1beta/CommerceTransactionClient/get_private_offer.php
@@ -0,0 +1,75 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PrivateOffer $response */
+ $response = $commerceTransactionClient->getPrivateOffer($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample 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.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = CommerceTransactionClient::privateOfferName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[PRIVATE_OFFER]'
+ );
+
+ get_private_offer_sample($formattedName);
+}
+// [END commerceproducer_v1beta_generated_CommerceTransaction_GetPrivateOffer_sync]
diff --git a/Commerceproducer/samples/V1beta/CommerceTransactionClient/get_private_offer_document.php b/Commerceproducer/samples/V1beta/CommerceTransactionClient/get_private_offer_document.php
new file mode 100644
index 00000000000..9f055812388
--- /dev/null
+++ b/Commerceproducer/samples/V1beta/CommerceTransactionClient/get_private_offer_document.php
@@ -0,0 +1,76 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PrivateOfferDocument $response */
+ $response = $commerceTransactionClient->getPrivateOfferDocument($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample 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.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = CommerceTransactionClient::privateOfferDocumentName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[PRIVATE_OFFER]',
+ '[DOCUMENT]'
+ );
+
+ get_private_offer_document_sample($formattedName);
+}
+// [END commerceproducer_v1beta_generated_CommerceTransaction_GetPrivateOfferDocument_sync]
diff --git a/Commerceproducer/samples/V1beta/CommerceTransactionClient/get_service.php b/Commerceproducer/samples/V1beta/CommerceTransactionClient/get_service.php
new file mode 100644
index 00000000000..f9b86f02556
--- /dev/null
+++ b/Commerceproducer/samples/V1beta/CommerceTransactionClient/get_service.php
@@ -0,0 +1,71 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Service $response */
+ $response = $commerceTransactionClient->getService($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample 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.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = CommerceTransactionClient::serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+
+ get_service_sample($formattedName);
+}
+// [END commerceproducer_v1beta_generated_CommerceTransaction_GetService_sync]
diff --git a/Commerceproducer/samples/V1beta/CommerceTransactionClient/get_sku.php b/Commerceproducer/samples/V1beta/CommerceTransactionClient/get_sku.php
new file mode 100644
index 00000000000..bd0dca172fb
--- /dev/null
+++ b/Commerceproducer/samples/V1beta/CommerceTransactionClient/get_sku.php
@@ -0,0 +1,76 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Sku $response */
+ $response = $commerceTransactionClient->getSku($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample 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.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = CommerceTransactionClient::skuName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[SERVICE]',
+ '[SKU]'
+ );
+
+ get_sku_sample($formattedName);
+}
+// [END commerceproducer_v1beta_generated_CommerceTransaction_GetSku_sync]
diff --git a/Commerceproducer/samples/V1beta/CommerceTransactionClient/get_sku_group.php b/Commerceproducer/samples/V1beta/CommerceTransactionClient/get_sku_group.php
new file mode 100644
index 00000000000..ee1ac3412e8
--- /dev/null
+++ b/Commerceproducer/samples/V1beta/CommerceTransactionClient/get_sku_group.php
@@ -0,0 +1,71 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var SkuGroup $response */
+ $response = $commerceTransactionClient->getSkuGroup($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample 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.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = CommerceTransactionClient::skuGroupName('[PROJECT]', '[LOCATION]', '[SKU_GROUP]');
+
+ get_sku_group_sample($formattedName);
+}
+// [END commerceproducer_v1beta_generated_CommerceTransaction_GetSkuGroup_sync]
diff --git a/Commerceproducer/samples/V1beta/CommerceTransactionClient/get_standard_offer.php b/Commerceproducer/samples/V1beta/CommerceTransactionClient/get_standard_offer.php
new file mode 100644
index 00000000000..1d831a120c5
--- /dev/null
+++ b/Commerceproducer/samples/V1beta/CommerceTransactionClient/get_standard_offer.php
@@ -0,0 +1,76 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var StandardOffer $response */
+ $response = $commerceTransactionClient->getStandardOffer($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample 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.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = CommerceTransactionClient::standardOfferName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[SERVICE]',
+ '[STANDARD_OFFER]'
+ );
+
+ get_standard_offer_sample($formattedName);
+}
+// [END commerceproducer_v1beta_generated_CommerceTransaction_GetStandardOffer_sync]
diff --git a/Commerceproducer/samples/V1beta/CommerceTransactionClient/list_locations.php b/Commerceproducer/samples/V1beta/CommerceTransactionClient/list_locations.php
new file mode 100644
index 00000000000..e205206c8bb
--- /dev/null
+++ b/Commerceproducer/samples/V1beta/CommerceTransactionClient/list_locations.php
@@ -0,0 +1,77 @@
+listLocations($request);
+
+ /** @var Location $element */
+ foreach ($response as $element) {
+ printf('Element data: %s' . PHP_EOL, $element->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+// [END commerceproducer_v1beta_generated_CommerceTransaction_ListLocations_sync]
diff --git a/Commerceproducer/samples/V1beta/CommerceTransactionClient/list_private_offer_documents.php b/Commerceproducer/samples/V1beta/CommerceTransactionClient/list_private_offer_documents.php
new file mode 100644
index 00000000000..7e351e0e994
--- /dev/null
+++ b/Commerceproducer/samples/V1beta/CommerceTransactionClient/list_private_offer_documents.php
@@ -0,0 +1,80 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $commerceTransactionClient->listPrivateOfferDocuments($request);
+
+ /** @var PrivateOfferDocument $element */
+ foreach ($response as $element) {
+ printf('Element data: %s' . PHP_EOL, $element->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample 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.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = CommerceTransactionClient::privateOfferName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[PRIVATE_OFFER]'
+ );
+
+ list_private_offer_documents_sample($formattedParent);
+}
+// [END commerceproducer_v1beta_generated_CommerceTransaction_ListPrivateOfferDocuments_sync]
diff --git a/Commerceproducer/samples/V1beta/CommerceTransactionClient/list_private_offers.php b/Commerceproducer/samples/V1beta/CommerceTransactionClient/list_private_offers.php
new file mode 100644
index 00000000000..49ab839efa2
--- /dev/null
+++ b/Commerceproducer/samples/V1beta/CommerceTransactionClient/list_private_offers.php
@@ -0,0 +1,76 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $commerceTransactionClient->listPrivateOffers($request);
+
+ /** @var PrivateOffer $element */
+ foreach ($response as $element) {
+ printf('Element data: %s' . PHP_EOL, $element->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample 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.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = CommerceTransactionClient::locationName('[PROJECT]', '[LOCATION]');
+
+ list_private_offers_sample($formattedParent);
+}
+// [END commerceproducer_v1beta_generated_CommerceTransaction_ListPrivateOffers_sync]
diff --git a/Commerceproducer/samples/V1beta/CommerceTransactionClient/list_services.php b/Commerceproducer/samples/V1beta/CommerceTransactionClient/list_services.php
new file mode 100644
index 00000000000..b53f119fe51
--- /dev/null
+++ b/Commerceproducer/samples/V1beta/CommerceTransactionClient/list_services.php
@@ -0,0 +1,76 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $commerceTransactionClient->listServices($request);
+
+ /** @var Service $element */
+ foreach ($response as $element) {
+ printf('Element data: %s' . PHP_EOL, $element->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample 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.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = CommerceTransactionClient::locationName('[PROJECT]', '[LOCATION]');
+
+ list_services_sample($formattedParent);
+}
+// [END commerceproducer_v1beta_generated_CommerceTransaction_ListServices_sync]
diff --git a/Commerceproducer/samples/V1beta/CommerceTransactionClient/list_sku_groups.php b/Commerceproducer/samples/V1beta/CommerceTransactionClient/list_sku_groups.php
new file mode 100644
index 00000000000..7c9c07da3cf
--- /dev/null
+++ b/Commerceproducer/samples/V1beta/CommerceTransactionClient/list_sku_groups.php
@@ -0,0 +1,76 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $commerceTransactionClient->listSkuGroups($request);
+
+ /** @var SkuGroup $element */
+ foreach ($response as $element) {
+ printf('Element data: %s' . PHP_EOL, $element->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample 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.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = CommerceTransactionClient::locationName('[PROJECT]', '[LOCATION]');
+
+ list_sku_groups_sample($formattedParent);
+}
+// [END commerceproducer_v1beta_generated_CommerceTransaction_ListSkuGroups_sync]
diff --git a/Commerceproducer/samples/V1beta/CommerceTransactionClient/list_skus.php b/Commerceproducer/samples/V1beta/CommerceTransactionClient/list_skus.php
new file mode 100644
index 00000000000..33362e7d3e8
--- /dev/null
+++ b/Commerceproducer/samples/V1beta/CommerceTransactionClient/list_skus.php
@@ -0,0 +1,76 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $commerceTransactionClient->listSkus($request);
+
+ /** @var Sku $element */
+ foreach ($response as $element) {
+ printf('Element data: %s' . PHP_EOL, $element->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample 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.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = CommerceTransactionClient::serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+
+ list_skus_sample($formattedParent);
+}
+// [END commerceproducer_v1beta_generated_CommerceTransaction_ListSkus_sync]
diff --git a/Commerceproducer/samples/V1beta/CommerceTransactionClient/list_standard_offers.php b/Commerceproducer/samples/V1beta/CommerceTransactionClient/list_standard_offers.php
new file mode 100644
index 00000000000..f328a148a6c
--- /dev/null
+++ b/Commerceproducer/samples/V1beta/CommerceTransactionClient/list_standard_offers.php
@@ -0,0 +1,76 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $commerceTransactionClient->listStandardOffers($request);
+
+ /** @var StandardOffer $element */
+ foreach ($response as $element) {
+ printf('Element data: %s' . PHP_EOL, $element->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample 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.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = CommerceTransactionClient::serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+
+ list_standard_offers_sample($formattedParent);
+}
+// [END commerceproducer_v1beta_generated_CommerceTransaction_ListStandardOffers_sync]
diff --git a/Commerceproducer/samples/V1beta/CommerceTransactionClient/publish_private_offer.php b/Commerceproducer/samples/V1beta/CommerceTransactionClient/publish_private_offer.php
new file mode 100644
index 00000000000..b718b15afcc
--- /dev/null
+++ b/Commerceproducer/samples/V1beta/CommerceTransactionClient/publish_private_offer.php
@@ -0,0 +1,75 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PrivateOffer $response */
+ $response = $commerceTransactionClient->publishPrivateOffer($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample 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.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = CommerceTransactionClient::privateOfferName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[PRIVATE_OFFER]'
+ );
+
+ publish_private_offer_sample($formattedName);
+}
+// [END commerceproducer_v1beta_generated_CommerceTransaction_PublishPrivateOffer_sync]
diff --git a/Commerceproducer/samples/V1beta/CommerceTransactionClient/resolve_amendment_target.php b/Commerceproducer/samples/V1beta/CommerceTransactionClient/resolve_amendment_target.php
new file mode 100644
index 00000000000..80680e8ecfe
--- /dev/null
+++ b/Commerceproducer/samples/V1beta/CommerceTransactionClient/resolve_amendment_target.php
@@ -0,0 +1,97 @@
+setParent($formattedParent)
+ ->setTargetBillingAccount($formattedTargetBillingAccount)
+ ->setBaseStandardOffer($formattedBaseStandardOffer);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var ResolveAmendmentTargetResponse $response */
+ $response = $commerceTransactionClient->resolveAmendmentTarget($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample 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.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = CommerceTransactionClient::locationName('[PROJECT]', '[LOCATION]');
+ $formattedTargetBillingAccount = CommerceTransactionClient::billingAccountName('[BILLING_ACCOUNT]');
+ $formattedBaseStandardOffer = CommerceTransactionClient::standardOfferName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[SERVICE]',
+ '[STANDARD_OFFER]'
+ );
+
+ resolve_amendment_target_sample(
+ $formattedParent,
+ $formattedTargetBillingAccount,
+ $formattedBaseStandardOffer
+ );
+}
+// [END commerceproducer_v1beta_generated_CommerceTransaction_ResolveAmendmentTarget_sync]
diff --git a/Commerceproducer/samples/V1beta/CommerceTransactionClient/update_private_offer.php b/Commerceproducer/samples/V1beta/CommerceTransactionClient/update_private_offer.php
new file mode 100644
index 00000000000..bf3aacae8b5
--- /dev/null
+++ b/Commerceproducer/samples/V1beta/CommerceTransactionClient/update_private_offer.php
@@ -0,0 +1,59 @@
+setPrivateOffer($privateOffer);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PrivateOffer $response */
+ $response = $commerceTransactionClient->updatePrivateOffer($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+// [END commerceproducer_v1beta_generated_CommerceTransaction_UpdatePrivateOffer_sync]
diff --git a/Commerceproducer/samples/V1beta/CommerceTransactionClient/update_private_offer_document.php b/Commerceproducer/samples/V1beta/CommerceTransactionClient/update_private_offer_document.php
new file mode 100644
index 00000000000..0c9c57ed77a
--- /dev/null
+++ b/Commerceproducer/samples/V1beta/CommerceTransactionClient/update_private_offer_document.php
@@ -0,0 +1,75 @@
+setDocumentType($privateOfferDocumentDocumentType);
+ $request = (new UpdatePrivateOfferDocumentRequest())
+ ->setPrivateOfferDocument($privateOfferDocument);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PrivateOfferDocument $response */
+ $response = $commerceTransactionClient->updatePrivateOfferDocument($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample 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.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $privateOfferDocumentDocumentType = DocumentType::DOCUMENT_TYPE_UNSPECIFIED;
+
+ update_private_offer_document_sample($privateOfferDocumentDocumentType);
+}
+// [END commerceproducer_v1beta_generated_CommerceTransaction_UpdatePrivateOfferDocument_sync]
diff --git a/Commerceproducer/src/V1beta/CancelPrivateOfferRequest.php b/Commerceproducer/src/V1beta/CancelPrivateOfferRequest.php
new file mode 100644
index 00000000000..67c2d5c8dde
--- /dev/null
+++ b/Commerceproducer/src/V1beta/CancelPrivateOfferRequest.php
@@ -0,0 +1,119 @@
+google.cloud.commerceproducer.v1beta.CancelPrivateOfferRequest
+ */
+class CancelPrivateOfferRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Name of the resource
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+ /**
+ * Optional. Internal note relating to the cancellation.
+ * Stored on the cancelled offer. Not visible to customers.
+ *
+ * Generated from protobuf field string cancellation_note = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $cancellation_note = '';
+
+ /**
+ * @param string $name Required. Name of the resource
+ * Please see {@see CommerceTransactionClient::privateOfferName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Commerceproducer\V1beta\CancelPrivateOfferRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. Name of the resource
+ * @type string $cancellation_note
+ * Optional. Internal note relating to the cancellation.
+ * Stored on the cancelled offer. Not visible to customers.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\CommerceTransaction::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Name of the resource
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. Name of the resource
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Internal note relating to the cancellation.
+ * Stored on the cancelled offer. Not visible to customers.
+ *
+ * Generated from protobuf field string cancellation_note = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getCancellationNote()
+ {
+ return $this->cancellation_note;
+ }
+
+ /**
+ * Optional. Internal note relating to the cancellation.
+ * Stored on the cancelled offer. Not visible to customers.
+ *
+ * Generated from protobuf field string cancellation_note = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setCancellationNote($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->cancellation_note = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/Client/CommerceTransactionClient.php b/Commerceproducer/src/V1beta/Client/CommerceTransactionClient.php
new file mode 100644
index 00000000000..fd3e99521fd
--- /dev/null
+++ b/Commerceproducer/src/V1beta/Client/CommerceTransactionClient.php
@@ -0,0 +1,1133 @@
+ cancelPrivateOfferAsync(CancelPrivateOfferRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface createPrivateOfferAsync(CreatePrivateOfferRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface createPrivateOfferDocumentAsync(CreatePrivateOfferDocumentRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface deletePrivateOfferAsync(DeletePrivateOfferRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface deletePrivateOfferDocumentAsync(DeletePrivateOfferDocumentRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface getPrivateOfferAsync(GetPrivateOfferRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface getPrivateOfferDocumentAsync(GetPrivateOfferDocumentRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface getServiceAsync(GetServiceRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface getSkuAsync(GetSkuRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface getSkuGroupAsync(GetSkuGroupRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface getStandardOfferAsync(GetStandardOfferRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface listPrivateOfferDocumentsAsync(ListPrivateOfferDocumentsRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface listPrivateOffersAsync(ListPrivateOffersRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface listServicesAsync(ListServicesRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface listSkuGroupsAsync(ListSkuGroupsRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface listSkusAsync(ListSkusRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface listStandardOffersAsync(ListStandardOffersRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface publishPrivateOfferAsync(PublishPrivateOfferRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface resolveAmendmentTargetAsync(ResolveAmendmentTargetRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface updatePrivateOfferAsync(UpdatePrivateOfferRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface updatePrivateOfferDocumentAsync(UpdatePrivateOfferDocumentRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface getLocationAsync(GetLocationRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface listLocationsAsync(ListLocationsRequest $request, array $optionalArgs = [])
+ */
+final class CommerceTransactionClient
+{
+ use GapicClientTrait;
+ use ResourceHelperTrait;
+
+ /** The name of the service. */
+ private const SERVICE_NAME = 'google.cloud.commerceproducer.v1beta.CommerceTransaction';
+
+ /**
+ * The default address of the service.
+ *
+ * @deprecated SERVICE_ADDRESS_TEMPLATE should be used instead.
+ */
+ private const SERVICE_ADDRESS = 'commerceproducer.googleapis.com';
+
+ /** The address template of the service. */
+ private const SERVICE_ADDRESS_TEMPLATE = 'commerceproducer.UNIVERSE_DOMAIN';
+
+ /** The default port of the service. */
+ private const DEFAULT_SERVICE_PORT = 443;
+
+ /** The name of the code generator, to be included in the agent header. */
+ private const CODEGEN_NAME = 'gapic';
+
+ /** The default scopes required by the service. */
+ public static $serviceScopes = ['https://www.googleapis.com/auth/cloud-platform'];
+
+ private static function getClientDefaults()
+ {
+ return [
+ 'serviceName' => self::SERVICE_NAME,
+ 'apiEndpoint' => self::SERVICE_ADDRESS . ':' . self::DEFAULT_SERVICE_PORT,
+ 'clientConfig' => __DIR__ . '/../resources/commerce_transaction_client_config.json',
+ 'descriptorsConfigPath' => __DIR__ . '/../resources/commerce_transaction_descriptor_config.php',
+ 'gcpApiConfigPath' => __DIR__ . '/../resources/commerce_transaction_grpc_config.json',
+ 'credentialsConfig' => [
+ 'defaultScopes' => self::$serviceScopes,
+ ],
+ 'transportConfig' => [
+ 'rest' => [
+ 'restClientConfigPath' => __DIR__ . '/../resources/commerce_transaction_rest_client_config.php',
+ ],
+ ],
+ ];
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a
+ * billing_account resource.
+ *
+ * @param string $billingAccount
+ *
+ * @return string The formatted billing_account resource.
+ *
+ * @experimental
+ */
+ public static function billingAccountName(string $billingAccount): string
+ {
+ return self::getPathTemplate('billingAccount')->render([
+ 'billing_account' => $billingAccount,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a location
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ *
+ * @return string The formatted location resource.
+ *
+ * @experimental
+ */
+ public static function locationName(string $project, string $location): string
+ {
+ return self::getPathTemplate('location')->render([
+ 'project' => $project,
+ 'location' => $location,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a
+ * private_offer resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $privateOffer
+ *
+ * @return string The formatted private_offer resource.
+ *
+ * @experimental
+ */
+ public static function privateOfferName(string $project, string $location, string $privateOffer): string
+ {
+ return self::getPathTemplate('privateOffer')->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'private_offer' => $privateOffer,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a
+ * private_offer_document resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $privateOffer
+ * @param string $document
+ *
+ * @return string The formatted private_offer_document resource.
+ *
+ * @experimental
+ */
+ public static function privateOfferDocumentName(
+ string $project,
+ string $location,
+ string $privateOffer,
+ string $document
+ ): string {
+ return self::getPathTemplate('privateOfferDocument')->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'private_offer' => $privateOffer,
+ 'document' => $document,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a service
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $service
+ *
+ * @return string The formatted service resource.
+ *
+ * @experimental
+ */
+ public static function serviceName(string $project, string $location, string $service): string
+ {
+ return self::getPathTemplate('service')->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'service' => $service,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a sku
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $service
+ * @param string $sku
+ *
+ * @return string The formatted sku resource.
+ *
+ * @experimental
+ */
+ public static function skuName(string $project, string $location, string $service, string $sku): string
+ {
+ return self::getPathTemplate('sku')->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'service' => $service,
+ 'sku' => $sku,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a sku_group
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $skuGroup
+ *
+ * @return string The formatted sku_group resource.
+ *
+ * @experimental
+ */
+ public static function skuGroupName(string $project, string $location, string $skuGroup): string
+ {
+ return self::getPathTemplate('skuGroup')->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'sku_group' => $skuGroup,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a
+ * standard_offer resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $service
+ * @param string $standardOffer
+ *
+ * @return string The formatted standard_offer resource.
+ *
+ * @experimental
+ */
+ public static function standardOfferName(
+ string $project,
+ string $location,
+ string $service,
+ string $standardOffer
+ ): string {
+ return self::getPathTemplate('standardOffer')->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'service' => $service,
+ 'standard_offer' => $standardOffer,
+ ]);
+ }
+
+ /**
+ * Parses a formatted name string and returns an associative array of the components in the name.
+ * The following name formats are supported:
+ * Template: Pattern
+ * - billingAccount: billingAccounts/{billing_account}
+ * - location: projects/{project}/locations/{location}
+ * - privateOffer: projects/{project}/locations/{location}/privateOffers/{private_offer}
+ * - privateOfferDocument: projects/{project}/locations/{location}/privateOffers/{private_offer}/documents/{document}
+ * - service: projects/{project}/locations/{location}/services/{service}
+ * - sku: projects/{project}/locations/{location}/services/{service}/skus/{sku}
+ * - skuGroup: projects/{project}/locations/{location}/skuGroups/{sku_group}
+ * - standardOffer: projects/{project}/locations/{location}/services/{service}/standardOffers/{standard_offer}
+ *
+ * The optional $template argument can be supplied to specify a particular pattern,
+ * and must match one of the templates listed above. If no $template argument is
+ * provided, or if the $template argument does not match one of the templates
+ * listed, then parseName will check each of the supported templates, and return
+ * the first match.
+ *
+ * @param string $formattedName The formatted name string
+ * @param ?string $template Optional name of template to match
+ *
+ * @return array An associative array from name component IDs to component values.
+ *
+ * @throws ValidationException If $formattedName could not be matched.
+ *
+ * @experimental
+ */
+ public static function parseName(string $formattedName, ?string $template = null): array
+ {
+ return self::parseFormattedName($formattedName, $template);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array|ClientOptions $options {
+ * Optional. Options for configuring the service API wrapper.
+ *
+ * @type string $apiEndpoint
+ * The address of the API remote host. May optionally include the port, formatted
+ * as ":". Default 'commerceproducer.googleapis.com:443'.
+ * @type FetchAuthTokenInterface|CredentialsWrapper $credentials
+ * This option should only be used with a pre-constructed
+ * {@see FetchAuthTokenInterface} or {@see CredentialsWrapper} object. Note that
+ * when one of these objects are provided, any settings in $credentialsConfig will
+ * be ignored.
+ * **Important**: If you are providing a path to a credentials file, or a decoded
+ * credentials file as a PHP array, this usage is now DEPRECATED. Providing an
+ * unvalidated credential configuration to Google APIs can compromise the security
+ * of your systems and data. It is recommended to create the credentials explicitly
+ * ```
+ * use Google\Auth\Credentials\ServiceAccountCredentials;
+ * use Google\Cloud\Commerceproducer\V1beta\CommerceTransactionClient;
+ * $creds = new ServiceAccountCredentials($scopes, $json);
+ * $options = new CommerceTransactionClient(['credentials' => $creds]);
+ * ```
+ * {@see
+ * https://cloud.google.com/docs/authentication/external/externally-sourced-credentials}
+ * @type array $credentialsConfig
+ * Options used to configure credentials, including auth token caching, for the
+ * client. For a full list of supporting configuration options, see
+ * {@see \Google\ApiCore\CredentialsWrapper::build()} .
+ * @type bool $disableRetries
+ * Determines whether or not retries defined by the client configuration should be
+ * disabled. Defaults to `false`.
+ * @type string|array $clientConfig
+ * Client method configuration, including retry settings. This option can be either
+ * a path to a JSON file, or a PHP array containing the decoded JSON data. By
+ * default this settings points to the default client config file, which is
+ * provided in the resources folder.
+ * @type string|TransportInterface $transport
+ * The transport used for executing network requests. May be either the string
+ * `rest` or `grpc`. Defaults to `grpc` if gRPC support is detected on the system.
+ * *Advanced usage*: Additionally, it is possible to pass in an already
+ * instantiated {@see \Google\ApiCore\Transport\TransportInterface} object. Note
+ * that when this object is provided, any settings in $transportConfig, and any
+ * $apiEndpoint setting, will be ignored.
+ * @type array $transportConfig
+ * Configuration options that will be used to construct the transport. Options for
+ * each supported transport type should be passed in a key for that transport. For
+ * example:
+ * $transportConfig = [
+ * 'grpc' => [...],
+ * 'rest' => [...],
+ * ];
+ * See the {@see \Google\ApiCore\Transport\GrpcTransport::build()} and
+ * {@see \Google\ApiCore\Transport\RestTransport::build()} methods for the
+ * supported options.
+ * @type callable $clientCertSource
+ * A callable which returns the client cert as a string. This can be used to
+ * provide a certificate and private key to the transport layer for mTLS.
+ * @type false|LoggerInterface $logger
+ * A PSR-3 compliant logger. If set to false, logging is disabled, ignoring the
+ * 'GOOGLE_SDK_PHP_LOGGING' environment flag
+ * @type string $universeDomain
+ * The service domain for the client. Defaults to 'googleapis.com'.
+ * }
+ *
+ * @throws ValidationException
+ *
+ * @experimental
+ */
+ public function __construct(array|ClientOptions $options = [])
+ {
+ $clientOptions = $this->buildClientOptions($options);
+ $this->setClientOptions($clientOptions);
+ }
+
+ /** Handles execution of the async variants for each documented method. */
+ public function __call($method, $args)
+ {
+ if (substr($method, -5) !== 'Async') {
+ trigger_error('Call to undefined method ' . __CLASS__ . "::$method()", E_USER_ERROR);
+ }
+
+ array_unshift($args, substr($method, 0, -5));
+ return call_user_func_array([$this, 'startAsyncCall'], $args);
+ }
+
+ /**
+ * Cancels the target PrivateOffer.
+ *
+ * The async variant is {@see CommerceTransactionClient::cancelPrivateOfferAsync()}
+ * .
+ *
+ * @example samples/V1beta/CommerceTransactionClient/cancel_private_offer.php
+ *
+ * @param CancelPrivateOfferRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return PrivateOffer
+ *
+ * @throws ApiException Thrown if the API call fails.
+ *
+ * @experimental
+ */
+ public function cancelPrivateOffer(CancelPrivateOfferRequest $request, array $callOptions = []): PrivateOffer
+ {
+ return $this->startApiCall('CancelPrivateOffer', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Creates a new PrivateOffer in a given project and location.
+ *
+ * The async variant is {@see CommerceTransactionClient::createPrivateOfferAsync()}
+ * .
+ *
+ * @example samples/V1beta/CommerceTransactionClient/create_private_offer.php
+ *
+ * @param CreatePrivateOfferRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return PrivateOffer
+ *
+ * @throws ApiException Thrown if the API call fails.
+ *
+ * @experimental
+ */
+ public function createPrivateOffer(CreatePrivateOfferRequest $request, array $callOptions = []): PrivateOffer
+ {
+ return $this->startApiCall('CreatePrivateOffer', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Creates a new PrivateOfferDocument in a given project and location.
+ *
+ * The async variant is
+ * {@see CommerceTransactionClient::createPrivateOfferDocumentAsync()} .
+ *
+ * @example samples/V1beta/CommerceTransactionClient/create_private_offer_document.php
+ *
+ * @param CreatePrivateOfferDocumentRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return PrivateOfferDocument
+ *
+ * @throws ApiException Thrown if the API call fails.
+ *
+ * @experimental
+ */
+ public function createPrivateOfferDocument(
+ CreatePrivateOfferDocumentRequest $request,
+ array $callOptions = []
+ ): PrivateOfferDocument {
+ return $this->startApiCall('CreatePrivateOfferDocument', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Deletes the target PrivateOffer.
+ *
+ * The async variant is {@see CommerceTransactionClient::deletePrivateOfferAsync()}
+ * .
+ *
+ * @example samples/V1beta/CommerceTransactionClient/delete_private_offer.php
+ *
+ * @param DeletePrivateOfferRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @throws ApiException Thrown if the API call fails.
+ *
+ * @experimental
+ */
+ public function deletePrivateOffer(DeletePrivateOfferRequest $request, array $callOptions = []): void
+ {
+ $this->startApiCall('DeletePrivateOffer', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Deletes the target PrivateOfferDocument.
+ *
+ * The async variant is
+ * {@see CommerceTransactionClient::deletePrivateOfferDocumentAsync()} .
+ *
+ * @example samples/V1beta/CommerceTransactionClient/delete_private_offer_document.php
+ *
+ * @param DeletePrivateOfferDocumentRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @throws ApiException Thrown if the API call fails.
+ *
+ * @experimental
+ */
+ public function deletePrivateOfferDocument(
+ DeletePrivateOfferDocumentRequest $request,
+ array $callOptions = []
+ ): void {
+ $this->startApiCall('DeletePrivateOfferDocument', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Gets details of a single PrivateOffer.
+ *
+ * The async variant is {@see CommerceTransactionClient::getPrivateOfferAsync()} .
+ *
+ * @example samples/V1beta/CommerceTransactionClient/get_private_offer.php
+ *
+ * @param GetPrivateOfferRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return PrivateOffer
+ *
+ * @throws ApiException Thrown if the API call fails.
+ *
+ * @experimental
+ */
+ public function getPrivateOffer(GetPrivateOfferRequest $request, array $callOptions = []): PrivateOffer
+ {
+ return $this->startApiCall('GetPrivateOffer', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Gets details of a single PrivateOfferDocument.
+ *
+ * The async variant is
+ * {@see CommerceTransactionClient::getPrivateOfferDocumentAsync()} .
+ *
+ * @example samples/V1beta/CommerceTransactionClient/get_private_offer_document.php
+ *
+ * @param GetPrivateOfferDocumentRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return PrivateOfferDocument
+ *
+ * @throws ApiException Thrown if the API call fails.
+ *
+ * @experimental
+ */
+ public function getPrivateOfferDocument(
+ GetPrivateOfferDocumentRequest $request,
+ array $callOptions = []
+ ): PrivateOfferDocument {
+ return $this->startApiCall('GetPrivateOfferDocument', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Gets details of a single Service.
+ *
+ * The async variant is {@see CommerceTransactionClient::getServiceAsync()} .
+ *
+ * @example samples/V1beta/CommerceTransactionClient/get_service.php
+ *
+ * @param GetServiceRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return Service
+ *
+ * @throws ApiException Thrown if the API call fails.
+ *
+ * @experimental
+ */
+ public function getService(GetServiceRequest $request, array $callOptions = []): Service
+ {
+ return $this->startApiCall('GetService', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Gets details of a single Sku.
+ *
+ * The async variant is {@see CommerceTransactionClient::getSkuAsync()} .
+ *
+ * @example samples/V1beta/CommerceTransactionClient/get_sku.php
+ *
+ * @param GetSkuRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return Sku
+ *
+ * @throws ApiException Thrown if the API call fails.
+ *
+ * @experimental
+ */
+ public function getSku(GetSkuRequest $request, array $callOptions = []): Sku
+ {
+ return $this->startApiCall('GetSku', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Gets details of a single SkuGroup.
+ *
+ * The async variant is {@see CommerceTransactionClient::getSkuGroupAsync()} .
+ *
+ * @example samples/V1beta/CommerceTransactionClient/get_sku_group.php
+ *
+ * @param GetSkuGroupRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return SkuGroup
+ *
+ * @throws ApiException Thrown if the API call fails.
+ *
+ * @experimental
+ */
+ public function getSkuGroup(GetSkuGroupRequest $request, array $callOptions = []): SkuGroup
+ {
+ return $this->startApiCall('GetSkuGroup', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Gets details of a single StandardOffer.
+ *
+ * The async variant is {@see CommerceTransactionClient::getStandardOfferAsync()} .
+ *
+ * @example samples/V1beta/CommerceTransactionClient/get_standard_offer.php
+ *
+ * @param GetStandardOfferRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return StandardOffer
+ *
+ * @throws ApiException Thrown if the API call fails.
+ *
+ * @experimental
+ */
+ public function getStandardOffer(GetStandardOfferRequest $request, array $callOptions = []): StandardOffer
+ {
+ return $this->startApiCall('GetStandardOffer', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Lists PrivateOfferDocuments for the given parent.
+ *
+ * The async variant is
+ * {@see CommerceTransactionClient::listPrivateOfferDocumentsAsync()} .
+ *
+ * @example samples/V1beta/CommerceTransactionClient/list_private_offer_documents.php
+ *
+ * @param ListPrivateOfferDocumentsRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return PagedListResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ *
+ * @experimental
+ */
+ public function listPrivateOfferDocuments(
+ ListPrivateOfferDocumentsRequest $request,
+ array $callOptions = []
+ ): PagedListResponse {
+ return $this->startApiCall('ListPrivateOfferDocuments', $request, $callOptions);
+ }
+
+ /**
+ * Lists PrivateOffers for the given parent.
+ *
+ * The async variant is {@see CommerceTransactionClient::listPrivateOffersAsync()}
+ * .
+ *
+ * @example samples/V1beta/CommerceTransactionClient/list_private_offers.php
+ *
+ * @param ListPrivateOffersRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return PagedListResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ *
+ * @experimental
+ */
+ public function listPrivateOffers(ListPrivateOffersRequest $request, array $callOptions = []): PagedListResponse
+ {
+ return $this->startApiCall('ListPrivateOffers', $request, $callOptions);
+ }
+
+ /**
+ * Lists Services in a given project and location.
+ *
+ * The async variant is {@see CommerceTransactionClient::listServicesAsync()} .
+ *
+ * @example samples/V1beta/CommerceTransactionClient/list_services.php
+ *
+ * @param ListServicesRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return PagedListResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ *
+ * @experimental
+ */
+ public function listServices(ListServicesRequest $request, array $callOptions = []): PagedListResponse
+ {
+ return $this->startApiCall('ListServices', $request, $callOptions);
+ }
+
+ /**
+ * Lists SkuGroups for the given parent.
+ *
+ * The async variant is {@see CommerceTransactionClient::listSkuGroupsAsync()} .
+ *
+ * @example samples/V1beta/CommerceTransactionClient/list_sku_groups.php
+ *
+ * @param ListSkuGroupsRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return PagedListResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ *
+ * @experimental
+ */
+ public function listSkuGroups(ListSkuGroupsRequest $request, array $callOptions = []): PagedListResponse
+ {
+ return $this->startApiCall('ListSkuGroups', $request, $callOptions);
+ }
+
+ /**
+ * Lists Skus for the given parent.
+ *
+ * The async variant is {@see CommerceTransactionClient::listSkusAsync()} .
+ *
+ * @example samples/V1beta/CommerceTransactionClient/list_skus.php
+ *
+ * @param ListSkusRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return PagedListResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ *
+ * @experimental
+ */
+ public function listSkus(ListSkusRequest $request, array $callOptions = []): PagedListResponse
+ {
+ return $this->startApiCall('ListSkus', $request, $callOptions);
+ }
+
+ /**
+ * Lists StandardOffers for the given parent.
+ *
+ * The async variant is {@see CommerceTransactionClient::listStandardOffersAsync()}
+ * .
+ *
+ * @example samples/V1beta/CommerceTransactionClient/list_standard_offers.php
+ *
+ * @param ListStandardOffersRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return PagedListResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ *
+ * @experimental
+ */
+ public function listStandardOffers(ListStandardOffersRequest $request, array $callOptions = []): PagedListResponse
+ {
+ return $this->startApiCall('ListStandardOffers', $request, $callOptions);
+ }
+
+ /**
+ * Publishes the target PrivateOffer.
+ *
+ * The async variant is
+ * {@see CommerceTransactionClient::publishPrivateOfferAsync()} .
+ *
+ * @example samples/V1beta/CommerceTransactionClient/publish_private_offer.php
+ *
+ * @param PublishPrivateOfferRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return PrivateOffer
+ *
+ * @throws ApiException Thrown if the API call fails.
+ *
+ * @experimental
+ */
+ public function publishPrivateOffer(PublishPrivateOfferRequest $request, array $callOptions = []): PrivateOffer
+ {
+ return $this->startApiCall('PublishPrivateOffer', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Resolves the existing offer that must be amended when creating a new
+ * PrivateOffer. Use this method to determine the correct amendment target
+ * before creating or publishing an offer.
+ *
+ * The async variant is
+ * {@see CommerceTransactionClient::resolveAmendmentTargetAsync()} .
+ *
+ * @example samples/V1beta/CommerceTransactionClient/resolve_amendment_target.php
+ *
+ * @param ResolveAmendmentTargetRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return ResolveAmendmentTargetResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ *
+ * @experimental
+ */
+ public function resolveAmendmentTarget(
+ ResolveAmendmentTargetRequest $request,
+ array $callOptions = []
+ ): ResolveAmendmentTargetResponse {
+ return $this->startApiCall('ResolveAmendmentTarget', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Updates the target PrivateOffer.
+ *
+ * The async variant is {@see CommerceTransactionClient::updatePrivateOfferAsync()}
+ * .
+ *
+ * @example samples/V1beta/CommerceTransactionClient/update_private_offer.php
+ *
+ * @param UpdatePrivateOfferRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return PrivateOffer
+ *
+ * @throws ApiException Thrown if the API call fails.
+ *
+ * @experimental
+ */
+ public function updatePrivateOffer(UpdatePrivateOfferRequest $request, array $callOptions = []): PrivateOffer
+ {
+ return $this->startApiCall('UpdatePrivateOffer', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Updates the target PrivateOfferDocument.
+ *
+ * The async variant is
+ * {@see CommerceTransactionClient::updatePrivateOfferDocumentAsync()} .
+ *
+ * @example samples/V1beta/CommerceTransactionClient/update_private_offer_document.php
+ *
+ * @param UpdatePrivateOfferDocumentRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return PrivateOfferDocument
+ *
+ * @throws ApiException Thrown if the API call fails.
+ *
+ * @experimental
+ */
+ public function updatePrivateOfferDocument(
+ UpdatePrivateOfferDocumentRequest $request,
+ array $callOptions = []
+ ): PrivateOfferDocument {
+ return $this->startApiCall('UpdatePrivateOfferDocument', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Gets information about a location.
+ *
+ * The async variant is {@see CommerceTransactionClient::getLocationAsync()} .
+ *
+ * @example samples/V1beta/CommerceTransactionClient/get_location.php
+ *
+ * @param GetLocationRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return Location
+ *
+ * @throws ApiException Thrown if the API call fails.
+ *
+ * @experimental
+ */
+ public function getLocation(GetLocationRequest $request, array $callOptions = []): Location
+ {
+ return $this->startApiCall('GetLocation', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Lists information about the supported locations for this service.
+ *
+ * This method lists locations based on the resource scope provided in
+ * the [ListLocationsRequest.name][google.cloud.location.ListLocationsRequest.name] field: *
+ * **Global locations**: If `name` is empty, the method lists the
+ * public locations available to all projects. * **Project-specific
+ * locations**: If `name` follows the format
+ * `projects/{project}`, the method lists locations visible to that
+ * specific project. This includes public, private, or other
+ * project-specific locations enabled for the project.
+ *
+ * For gRPC and client library implementations, the resource name is
+ * passed as the `name` field. For direct service calls, the resource
+ * name is
+ * incorporated into the request path based on the specific service
+ * implementation and version.
+ *
+ * The async variant is {@see CommerceTransactionClient::listLocationsAsync()} .
+ *
+ * @example samples/V1beta/CommerceTransactionClient/list_locations.php
+ *
+ * @param ListLocationsRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return PagedListResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ *
+ * @experimental
+ */
+ public function listLocations(ListLocationsRequest $request, array $callOptions = []): PagedListResponse
+ {
+ return $this->startApiCall('ListLocations', $request, $callOptions);
+ }
+}
diff --git a/Commerceproducer/src/V1beta/CreatePrivateOfferDocumentRequest.php b/Commerceproducer/src/V1beta/CreatePrivateOfferDocumentRequest.php
new file mode 100644
index 00000000000..61515a610ea
--- /dev/null
+++ b/Commerceproducer/src/V1beta/CreatePrivateOfferDocumentRequest.php
@@ -0,0 +1,111 @@
+google.cloud.commerceproducer.v1beta.CreatePrivateOfferDocumentRequest
+ */
+class CreatePrivateOfferDocumentRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Value for parent.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Required. The resource being created.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOfferDocument private_offer_document = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $private_offer_document = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. Value for parent.
+ * @type \Google\Cloud\Commerceproducer\V1beta\PrivateOfferDocument $private_offer_document
+ * Required. The resource being created.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\CommerceTransaction::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Value for parent.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. Value for parent.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The resource being created.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOfferDocument private_offer_document = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\Commerceproducer\V1beta\PrivateOfferDocument|null
+ */
+ public function getPrivateOfferDocument()
+ {
+ return $this->private_offer_document;
+ }
+
+ public function hasPrivateOfferDocument()
+ {
+ return isset($this->private_offer_document);
+ }
+
+ public function clearPrivateOfferDocument()
+ {
+ unset($this->private_offer_document);
+ }
+
+ /**
+ * Required. The resource being created.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOfferDocument private_offer_document = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\Commerceproducer\V1beta\PrivateOfferDocument $var
+ * @return $this
+ */
+ public function setPrivateOfferDocument($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Commerceproducer\V1beta\PrivateOfferDocument::class);
+ $this->private_offer_document = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/CreatePrivateOfferRequest.php b/Commerceproducer/src/V1beta/CreatePrivateOfferRequest.php
new file mode 100644
index 00000000000..c0d434b559d
--- /dev/null
+++ b/Commerceproducer/src/V1beta/CreatePrivateOfferRequest.php
@@ -0,0 +1,111 @@
+google.cloud.commerceproducer.v1beta.CreatePrivateOfferRequest
+ */
+class CreatePrivateOfferRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Value for parent.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Required. The resource being created
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOffer private_offer = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $private_offer = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. Value for parent.
+ * @type \Google\Cloud\Commerceproducer\V1beta\PrivateOffer $private_offer
+ * Required. The resource being created
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\CommerceTransaction::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Value for parent.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. Value for parent.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The resource being created
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOffer private_offer = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\Commerceproducer\V1beta\PrivateOffer|null
+ */
+ public function getPrivateOffer()
+ {
+ return $this->private_offer;
+ }
+
+ public function hasPrivateOffer()
+ {
+ return isset($this->private_offer);
+ }
+
+ public function clearPrivateOffer()
+ {
+ unset($this->private_offer);
+ }
+
+ /**
+ * Required. The resource being created
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOffer private_offer = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\Commerceproducer\V1beta\PrivateOffer $var
+ * @return $this
+ */
+ public function setPrivateOffer($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Commerceproducer\V1beta\PrivateOffer::class);
+ $this->private_offer = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/DeletePrivateOfferDocumentRequest.php b/Commerceproducer/src/V1beta/DeletePrivateOfferDocumentRequest.php
new file mode 100644
index 00000000000..95fe5dbc1d9
--- /dev/null
+++ b/Commerceproducer/src/V1beta/DeletePrivateOfferDocumentRequest.php
@@ -0,0 +1,81 @@
+google.cloud.commerceproducer.v1beta.DeletePrivateOfferDocumentRequest
+ */
+class DeletePrivateOfferDocumentRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Name of the resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. Name of the resource. Please see
+ * {@see CommerceTransactionClient::privateOfferDocumentName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Commerceproducer\V1beta\DeletePrivateOfferDocumentRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. Name of the resource.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\CommerceTransaction::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Name of the resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. Name of the resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/DeletePrivateOfferRequest.php b/Commerceproducer/src/V1beta/DeletePrivateOfferRequest.php
new file mode 100644
index 00000000000..9ce56e2721f
--- /dev/null
+++ b/Commerceproducer/src/V1beta/DeletePrivateOfferRequest.php
@@ -0,0 +1,119 @@
+google.cloud.commerceproducer.v1beta.DeletePrivateOfferRequest
+ */
+class DeletePrivateOfferRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Name of the resource
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+ /**
+ * Optional. Indicates whether to cascade the delete to child resources.
+ * If false, the request fails if child resources exist.
+ *
+ * Generated from protobuf field bool force = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $force = false;
+
+ /**
+ * @param string $name Required. Name of the resource
+ * Please see {@see CommerceTransactionClient::privateOfferName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Commerceproducer\V1beta\DeletePrivateOfferRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. Name of the resource
+ * @type bool $force
+ * Optional. Indicates whether to cascade the delete to child resources.
+ * If false, the request fails if child resources exist.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\CommerceTransaction::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Name of the resource
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. Name of the resource
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Indicates whether to cascade the delete to child resources.
+ * If false, the request fails if child resources exist.
+ *
+ * Generated from protobuf field bool force = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return bool
+ */
+ public function getForce()
+ {
+ return $this->force;
+ }
+
+ /**
+ * Optional. Indicates whether to cascade the delete to child resources.
+ * If false, the request fails if child resources exist.
+ *
+ * Generated from protobuf field bool force = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param bool $var
+ * @return $this
+ */
+ public function setForce($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->force = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/GetPrivateOfferDocumentRequest.php b/Commerceproducer/src/V1beta/GetPrivateOfferDocumentRequest.php
new file mode 100644
index 00000000000..c1fb86f8355
--- /dev/null
+++ b/Commerceproducer/src/V1beta/GetPrivateOfferDocumentRequest.php
@@ -0,0 +1,81 @@
+google.cloud.commerceproducer.v1beta.GetPrivateOfferDocumentRequest
+ */
+class GetPrivateOfferDocumentRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Name of the resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. Name of the resource. Please see
+ * {@see CommerceTransactionClient::privateOfferDocumentName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Commerceproducer\V1beta\GetPrivateOfferDocumentRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. Name of the resource.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\CommerceTransaction::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Name of the resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. Name of the resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/GetPrivateOfferRequest.php b/Commerceproducer/src/V1beta/GetPrivateOfferRequest.php
new file mode 100644
index 00000000000..eb6b94ef3db
--- /dev/null
+++ b/Commerceproducer/src/V1beta/GetPrivateOfferRequest.php
@@ -0,0 +1,119 @@
+google.cloud.commerceproducer.v1beta.GetPrivateOfferRequest
+ */
+class GetPrivateOfferRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Name of the resource
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+ /**
+ * Optional. The view of the PrivateOffer to return.
+ * If unspecified, the default view is BASIC.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOfferView view = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $view = 0;
+
+ /**
+ * @param string $name Required. Name of the resource
+ * Please see {@see CommerceTransactionClient::privateOfferName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Commerceproducer\V1beta\GetPrivateOfferRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. Name of the resource
+ * @type int $view
+ * Optional. The view of the PrivateOffer to return.
+ * If unspecified, the default view is BASIC.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\CommerceTransaction::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Name of the resource
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. Name of the resource
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The view of the PrivateOffer to return.
+ * If unspecified, the default view is BASIC.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOfferView view = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return int
+ */
+ public function getView()
+ {
+ return $this->view;
+ }
+
+ /**
+ * Optional. The view of the PrivateOffer to return.
+ * If unspecified, the default view is BASIC.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOfferView view = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param int $var
+ * @return $this
+ */
+ public function setView($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Commerceproducer\V1beta\PrivateOfferView::class);
+ $this->view = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/GetServiceRequest.php b/Commerceproducer/src/V1beta/GetServiceRequest.php
new file mode 100644
index 00000000000..714dc97d871
--- /dev/null
+++ b/Commerceproducer/src/V1beta/GetServiceRequest.php
@@ -0,0 +1,119 @@
+google.cloud.commerceproducer.v1beta.GetServiceRequest
+ */
+class GetServiceRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Name of the resource
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+ /**
+ * Optional. The view of the Service to return.
+ * If unspecified, the default view is BASIC.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.ServiceView view = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $view = 0;
+
+ /**
+ * @param string $name Required. Name of the resource
+ * Please see {@see CommerceTransactionClient::serviceName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Commerceproducer\V1beta\GetServiceRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. Name of the resource
+ * @type int $view
+ * Optional. The view of the Service to return.
+ * If unspecified, the default view is BASIC.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\CommerceTransaction::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Name of the resource
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. Name of the resource
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The view of the Service to return.
+ * If unspecified, the default view is BASIC.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.ServiceView view = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return int
+ */
+ public function getView()
+ {
+ return $this->view;
+ }
+
+ /**
+ * Optional. The view of the Service to return.
+ * If unspecified, the default view is BASIC.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.ServiceView view = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param int $var
+ * @return $this
+ */
+ public function setView($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Commerceproducer\V1beta\ServiceView::class);
+ $this->view = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/GetSkuGroupRequest.php b/Commerceproducer/src/V1beta/GetSkuGroupRequest.php
new file mode 100644
index 00000000000..1ab1e5232d0
--- /dev/null
+++ b/Commerceproducer/src/V1beta/GetSkuGroupRequest.php
@@ -0,0 +1,81 @@
+google.cloud.commerceproducer.v1beta.GetSkuGroupRequest
+ */
+class GetSkuGroupRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Name of the resource
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. Name of the resource
+ * Please see {@see CommerceTransactionClient::skuGroupName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Commerceproducer\V1beta\GetSkuGroupRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. Name of the resource
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\CommerceTransaction::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Name of the resource
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. Name of the resource
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/GetSkuRequest.php b/Commerceproducer/src/V1beta/GetSkuRequest.php
new file mode 100644
index 00000000000..3ae2822ff5f
--- /dev/null
+++ b/Commerceproducer/src/V1beta/GetSkuRequest.php
@@ -0,0 +1,81 @@
+google.cloud.commerceproducer.v1beta.GetSkuRequest
+ */
+class GetSkuRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Name of the resource
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. Name of the resource
+ * Please see {@see CommerceTransactionClient::skuName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Commerceproducer\V1beta\GetSkuRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. Name of the resource
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\CommerceTransaction::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Name of the resource
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. Name of the resource
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/GetStandardOfferRequest.php b/Commerceproducer/src/V1beta/GetStandardOfferRequest.php
new file mode 100644
index 00000000000..cf8eef6a069
--- /dev/null
+++ b/Commerceproducer/src/V1beta/GetStandardOfferRequest.php
@@ -0,0 +1,119 @@
+google.cloud.commerceproducer.v1beta.GetStandardOfferRequest
+ */
+class GetStandardOfferRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Name of the resource
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+ /**
+ * Optional. The view of the StandardOffer to return.
+ * If unspecified, the default view is BASIC.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.StandardOfferView view = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $view = 0;
+
+ /**
+ * @param string $name Required. Name of the resource
+ * Please see {@see CommerceTransactionClient::standardOfferName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Commerceproducer\V1beta\GetStandardOfferRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. Name of the resource
+ * @type int $view
+ * Optional. The view of the StandardOffer to return.
+ * If unspecified, the default view is BASIC.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\CommerceTransaction::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Name of the resource
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. Name of the resource
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The view of the StandardOffer to return.
+ * If unspecified, the default view is BASIC.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.StandardOfferView view = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return int
+ */
+ public function getView()
+ {
+ return $this->view;
+ }
+
+ /**
+ * Optional. The view of the StandardOffer to return.
+ * If unspecified, the default view is BASIC.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.StandardOfferView view = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param int $var
+ * @return $this
+ */
+ public function setView($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Commerceproducer\V1beta\StandardOfferView::class);
+ $this->view = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/ListPrivateOfferDocumentsRequest.php b/Commerceproducer/src/V1beta/ListPrivateOfferDocumentsRequest.php
new file mode 100644
index 00000000000..8a850c0cf7b
--- /dev/null
+++ b/Commerceproducer/src/V1beta/ListPrivateOfferDocumentsRequest.php
@@ -0,0 +1,169 @@
+google.cloud.commerceproducer.v1beta.ListPrivateOfferDocumentsRequest
+ */
+class ListPrivateOfferDocumentsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Parent value for ListPrivateOfferDocumentsRequest.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Optional. Maximum results to return. The service may return fewer than this
+ * value. The maximum value is 500; values above 500 will be coerced to 500.
+ * If unspecified, the server will default to the maximum.
+ *
+ * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $page_size = 0;
+ /**
+ * Optional. A page token, received from a previous list response message.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters of the list request must match the
+ * request that returned the page token.
+ *
+ * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $page_token = '';
+
+ /**
+ * @param string $parent Required. Parent value for ListPrivateOfferDocumentsRequest. Please see
+ * {@see CommerceTransactionClient::privateOfferName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Commerceproducer\V1beta\ListPrivateOfferDocumentsRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent): self
+ {
+ return (new self())
+ ->setParent($parent);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. Parent value for ListPrivateOfferDocumentsRequest.
+ * @type int $page_size
+ * Optional. Maximum results to return. The service may return fewer than this
+ * value. The maximum value is 500; values above 500 will be coerced to 500.
+ * If unspecified, the server will default to the maximum.
+ * @type string $page_token
+ * Optional. A page token, received from a previous list response message.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters of the list request must match the
+ * request that returned the page token.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\CommerceTransaction::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Parent value for ListPrivateOfferDocumentsRequest.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. Parent value for ListPrivateOfferDocumentsRequest.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Maximum results to return. The service may return fewer than this
+ * value. The maximum value is 500; values above 500 will be coerced to 500.
+ * If unspecified, the server will default to the maximum.
+ *
+ * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return int
+ */
+ public function getPageSize()
+ {
+ return $this->page_size;
+ }
+
+ /**
+ * Optional. Maximum results to return. The service may return fewer than this
+ * value. The maximum value is 500; values above 500 will be coerced to 500.
+ * If unspecified, the server will default to the maximum.
+ *
+ * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param int $var
+ * @return $this
+ */
+ public function setPageSize($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->page_size = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. A page token, received from a previous list response message.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters of the list request must match the
+ * request that returned the page token.
+ *
+ * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getPageToken()
+ {
+ return $this->page_token;
+ }
+
+ /**
+ * Optional. A page token, received from a previous list response message.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters of the list request must match the
+ * request that returned the page token.
+ *
+ * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->page_token = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/ListPrivateOfferDocumentsResponse.php b/Commerceproducer/src/V1beta/ListPrivateOfferDocumentsResponse.php
new file mode 100644
index 00000000000..3ccfde6ad88
--- /dev/null
+++ b/Commerceproducer/src/V1beta/ListPrivateOfferDocumentsResponse.php
@@ -0,0 +1,105 @@
+google.cloud.commerceproducer.v1beta.ListPrivateOfferDocumentsResponse
+ */
+class ListPrivateOfferDocumentsResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The list of PrivateOfferDocuments.
+ *
+ * Generated from protobuf field repeated .google.cloud.commerceproducer.v1beta.PrivateOfferDocument private_offer_documents = 1;
+ */
+ private $private_offer_documents;
+ /**
+ * A token, which can be sent as `page_token` to retrieve the next page.
+ * If this field is omitted, there are no subsequent pages.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ */
+ protected $next_page_token = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Commerceproducer\V1beta\PrivateOfferDocument[] $private_offer_documents
+ * The list of PrivateOfferDocuments.
+ * @type string $next_page_token
+ * A token, which can be sent as `page_token` to retrieve the next page.
+ * If this field is omitted, there are no subsequent pages.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\CommerceTransaction::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The list of PrivateOfferDocuments.
+ *
+ * Generated from protobuf field repeated .google.cloud.commerceproducer.v1beta.PrivateOfferDocument private_offer_documents = 1;
+ * @return RepeatedField<\Google\Cloud\Commerceproducer\V1beta\PrivateOfferDocument>
+ */
+ public function getPrivateOfferDocuments()
+ {
+ return $this->private_offer_documents;
+ }
+
+ /**
+ * The list of PrivateOfferDocuments.
+ *
+ * Generated from protobuf field repeated .google.cloud.commerceproducer.v1beta.PrivateOfferDocument private_offer_documents = 1;
+ * @param \Google\Cloud\Commerceproducer\V1beta\PrivateOfferDocument[] $var
+ * @return $this
+ */
+ public function setPrivateOfferDocuments($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Commerceproducer\V1beta\PrivateOfferDocument::class);
+ $this->private_offer_documents = $arr;
+
+ return $this;
+ }
+
+ /**
+ * A token, which can be sent as `page_token` to retrieve the next page.
+ * If this field is omitted, there are no subsequent pages.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @return string
+ */
+ public function getNextPageToken()
+ {
+ return $this->next_page_token;
+ }
+
+ /**
+ * A token, which can be sent as `page_token` to retrieve the next page.
+ * If this field is omitted, there are no subsequent pages.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setNextPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->next_page_token = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/ListPrivateOffersRequest.php b/Commerceproducer/src/V1beta/ListPrivateOffersRequest.php
new file mode 100644
index 00000000000..ae0cc5c7193
--- /dev/null
+++ b/Commerceproducer/src/V1beta/ListPrivateOffersRequest.php
@@ -0,0 +1,265 @@
+google.cloud.commerceproducer.v1beta.ListPrivateOffersRequest
+ */
+class ListPrivateOffersRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Parent value for ListPrivateOffersRequest
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Optional. Maximum results to return. The service may return fewer than this
+ * value. The maximum value is 500; values above 500 will be coerced to 500.
+ * If unspecified, the server will default to the maximum.
+ *
+ * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $page_size = 0;
+ /**
+ * Optional. A page token, received from a previous list response message.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters of the list request must match the
+ * request that returned the page token.
+ *
+ * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $page_token = '';
+ /**
+ * Optional. Filter expression that matches a subset of resources to show.
+ * See https://google.aip.dev/160 for more details.
+ * Only supports filtering by:
+ * * `update_time`. Example: `update_time > "2012-04-21T11:30:00-04:00"`.
+ *
+ * Generated from protobuf field string filter = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $filter = '';
+ /**
+ * Optional. Ordering expression for sorting the results.
+ * See https://google.aip.dev/132#ordering for more details.
+ * If no value is present the default ordering is unspecified.
+ * Only supports ordering by:
+ * * `update_time`
+ *
+ * Generated from protobuf field string order_by = 5 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $order_by = '';
+
+ /**
+ * @param string $parent Required. Parent value for ListPrivateOffersRequest
+ * Please see {@see CommerceTransactionClient::locationName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Commerceproducer\V1beta\ListPrivateOffersRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent): self
+ {
+ return (new self())
+ ->setParent($parent);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. Parent value for ListPrivateOffersRequest
+ * @type int $page_size
+ * Optional. Maximum results to return. The service may return fewer than this
+ * value. The maximum value is 500; values above 500 will be coerced to 500.
+ * If unspecified, the server will default to the maximum.
+ * @type string $page_token
+ * Optional. A page token, received from a previous list response message.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters of the list request must match the
+ * request that returned the page token.
+ * @type string $filter
+ * Optional. Filter expression that matches a subset of resources to show.
+ * See https://google.aip.dev/160 for more details.
+ * Only supports filtering by:
+ * * `update_time`. Example: `update_time > "2012-04-21T11:30:00-04:00"`.
+ * @type string $order_by
+ * Optional. Ordering expression for sorting the results.
+ * See https://google.aip.dev/132#ordering for more details.
+ * If no value is present the default ordering is unspecified.
+ * Only supports ordering by:
+ * * `update_time`
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\CommerceTransaction::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Parent value for ListPrivateOffersRequest
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. Parent value for ListPrivateOffersRequest
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Maximum results to return. The service may return fewer than this
+ * value. The maximum value is 500; values above 500 will be coerced to 500.
+ * If unspecified, the server will default to the maximum.
+ *
+ * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return int
+ */
+ public function getPageSize()
+ {
+ return $this->page_size;
+ }
+
+ /**
+ * Optional. Maximum results to return. The service may return fewer than this
+ * value. The maximum value is 500; values above 500 will be coerced to 500.
+ * If unspecified, the server will default to the maximum.
+ *
+ * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param int $var
+ * @return $this
+ */
+ public function setPageSize($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->page_size = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. A page token, received from a previous list response message.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters of the list request must match the
+ * request that returned the page token.
+ *
+ * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getPageToken()
+ {
+ return $this->page_token;
+ }
+
+ /**
+ * Optional. A page token, received from a previous list response message.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters of the list request must match the
+ * request that returned the page token.
+ *
+ * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->page_token = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Filter expression that matches a subset of resources to show.
+ * See https://google.aip.dev/160 for more details.
+ * Only supports filtering by:
+ * * `update_time`. Example: `update_time > "2012-04-21T11:30:00-04:00"`.
+ *
+ * Generated from protobuf field string filter = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getFilter()
+ {
+ return $this->filter;
+ }
+
+ /**
+ * Optional. Filter expression that matches a subset of resources to show.
+ * See https://google.aip.dev/160 for more details.
+ * Only supports filtering by:
+ * * `update_time`. Example: `update_time > "2012-04-21T11:30:00-04:00"`.
+ *
+ * Generated from protobuf field string filter = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setFilter($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->filter = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Ordering expression for sorting the results.
+ * See https://google.aip.dev/132#ordering for more details.
+ * If no value is present the default ordering is unspecified.
+ * Only supports ordering by:
+ * * `update_time`
+ *
+ * Generated from protobuf field string order_by = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getOrderBy()
+ {
+ return $this->order_by;
+ }
+
+ /**
+ * Optional. Ordering expression for sorting the results.
+ * See https://google.aip.dev/132#ordering for more details.
+ * If no value is present the default ordering is unspecified.
+ * Only supports ordering by:
+ * * `update_time`
+ *
+ * Generated from protobuf field string order_by = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setOrderBy($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->order_by = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/ListPrivateOffersResponse.php b/Commerceproducer/src/V1beta/ListPrivateOffersResponse.php
new file mode 100644
index 00000000000..8a06379b2a9
--- /dev/null
+++ b/Commerceproducer/src/V1beta/ListPrivateOffersResponse.php
@@ -0,0 +1,105 @@
+google.cloud.commerceproducer.v1beta.ListPrivateOffersResponse
+ */
+class ListPrivateOffersResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The list of PrivateOffer
+ *
+ * Generated from protobuf field repeated .google.cloud.commerceproducer.v1beta.PrivateOffer private_offers = 1;
+ */
+ private $private_offers;
+ /**
+ * A token, which can be sent as `page_token` to retrieve the next page.
+ * If this field is omitted, there are no subsequent pages.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ */
+ protected $next_page_token = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Commerceproducer\V1beta\PrivateOffer[] $private_offers
+ * The list of PrivateOffer
+ * @type string $next_page_token
+ * A token, which can be sent as `page_token` to retrieve the next page.
+ * If this field is omitted, there are no subsequent pages.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\CommerceTransaction::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The list of PrivateOffer
+ *
+ * Generated from protobuf field repeated .google.cloud.commerceproducer.v1beta.PrivateOffer private_offers = 1;
+ * @return RepeatedField<\Google\Cloud\Commerceproducer\V1beta\PrivateOffer>
+ */
+ public function getPrivateOffers()
+ {
+ return $this->private_offers;
+ }
+
+ /**
+ * The list of PrivateOffer
+ *
+ * Generated from protobuf field repeated .google.cloud.commerceproducer.v1beta.PrivateOffer private_offers = 1;
+ * @param \Google\Cloud\Commerceproducer\V1beta\PrivateOffer[] $var
+ * @return $this
+ */
+ public function setPrivateOffers($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Commerceproducer\V1beta\PrivateOffer::class);
+ $this->private_offers = $arr;
+
+ return $this;
+ }
+
+ /**
+ * A token, which can be sent as `page_token` to retrieve the next page.
+ * If this field is omitted, there are no subsequent pages.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @return string
+ */
+ public function getNextPageToken()
+ {
+ return $this->next_page_token;
+ }
+
+ /**
+ * A token, which can be sent as `page_token` to retrieve the next page.
+ * If this field is omitted, there are no subsequent pages.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setNextPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->next_page_token = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/ListServicesRequest.php b/Commerceproducer/src/V1beta/ListServicesRequest.php
new file mode 100644
index 00000000000..e666446d34f
--- /dev/null
+++ b/Commerceproducer/src/V1beta/ListServicesRequest.php
@@ -0,0 +1,157 @@
+google.cloud.commerceproducer.v1beta.ListServicesRequest
+ */
+class ListServicesRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Parent value for ListServicesRequest
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Optional. Maximum results to return. The service may return fewer than this
+ * value. The maximum value is 500; values above 500 will be coerced to 500.
+ * If unspecified, the server will default to the maximum.
+ *
+ * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $page_size = 0;
+ /**
+ * Optional. A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $page_token = '';
+
+ /**
+ * @param string $parent Required. Parent value for ListServicesRequest
+ * Please see {@see CommerceTransactionClient::locationName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Commerceproducer\V1beta\ListServicesRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent): self
+ {
+ return (new self())
+ ->setParent($parent);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. Parent value for ListServicesRequest
+ * @type int $page_size
+ * Optional. Maximum results to return. The service may return fewer than this
+ * value. The maximum value is 500; values above 500 will be coerced to 500.
+ * If unspecified, the server will default to the maximum.
+ * @type string $page_token
+ * Optional. A token identifying a page of results the server should return.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\CommerceTransaction::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Parent value for ListServicesRequest
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. Parent value for ListServicesRequest
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Maximum results to return. The service may return fewer than this
+ * value. The maximum value is 500; values above 500 will be coerced to 500.
+ * If unspecified, the server will default to the maximum.
+ *
+ * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return int
+ */
+ public function getPageSize()
+ {
+ return $this->page_size;
+ }
+
+ /**
+ * Optional. Maximum results to return. The service may return fewer than this
+ * value. The maximum value is 500; values above 500 will be coerced to 500.
+ * If unspecified, the server will default to the maximum.
+ *
+ * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param int $var
+ * @return $this
+ */
+ public function setPageSize($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->page_size = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getPageToken()
+ {
+ return $this->page_token;
+ }
+
+ /**
+ * Optional. A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->page_token = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/ListServicesResponse.php b/Commerceproducer/src/V1beta/ListServicesResponse.php
new file mode 100644
index 00000000000..d331d0e11f9
--- /dev/null
+++ b/Commerceproducer/src/V1beta/ListServicesResponse.php
@@ -0,0 +1,105 @@
+google.cloud.commerceproducer.v1beta.ListServicesResponse
+ */
+class ListServicesResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The list of Service
+ *
+ * Generated from protobuf field repeated .google.cloud.commerceproducer.v1beta.Service services = 1;
+ */
+ private $services;
+ /**
+ * A token, which can be sent as `page_token` to retrieve the next page.
+ * If this field is omitted, there are no subsequent pages.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ */
+ protected $next_page_token = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Commerceproducer\V1beta\Service[] $services
+ * The list of Service
+ * @type string $next_page_token
+ * A token, which can be sent as `page_token` to retrieve the next page.
+ * If this field is omitted, there are no subsequent pages.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\CommerceTransaction::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The list of Service
+ *
+ * Generated from protobuf field repeated .google.cloud.commerceproducer.v1beta.Service services = 1;
+ * @return RepeatedField<\Google\Cloud\Commerceproducer\V1beta\Service>
+ */
+ public function getServices()
+ {
+ return $this->services;
+ }
+
+ /**
+ * The list of Service
+ *
+ * Generated from protobuf field repeated .google.cloud.commerceproducer.v1beta.Service services = 1;
+ * @param \Google\Cloud\Commerceproducer\V1beta\Service[] $var
+ * @return $this
+ */
+ public function setServices($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Commerceproducer\V1beta\Service::class);
+ $this->services = $arr;
+
+ return $this;
+ }
+
+ /**
+ * A token, which can be sent as `page_token` to retrieve the next page.
+ * If this field is omitted, there are no subsequent pages.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @return string
+ */
+ public function getNextPageToken()
+ {
+ return $this->next_page_token;
+ }
+
+ /**
+ * A token, which can be sent as `page_token` to retrieve the next page.
+ * If this field is omitted, there are no subsequent pages.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setNextPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->next_page_token = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/ListSkuGroupsRequest.php b/Commerceproducer/src/V1beta/ListSkuGroupsRequest.php
new file mode 100644
index 00000000000..5c1acc5645a
--- /dev/null
+++ b/Commerceproducer/src/V1beta/ListSkuGroupsRequest.php
@@ -0,0 +1,169 @@
+google.cloud.commerceproducer.v1beta.ListSkuGroupsRequest
+ */
+class ListSkuGroupsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Parent value for ListSkuGroupsRequest
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Optional. Maximum results to return. The service may return fewer than this
+ * value. The maximum value is 500; values above 500 will be coerced to 500.
+ * If unspecified, the server will default to the maximum.
+ *
+ * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $page_size = 0;
+ /**
+ * Optional. A page token, received from a previous list response message.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters of the list request must match the
+ * request that returned the page token.
+ *
+ * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $page_token = '';
+
+ /**
+ * @param string $parent Required. Parent value for ListSkuGroupsRequest
+ * Please see {@see CommerceTransactionClient::locationName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Commerceproducer\V1beta\ListSkuGroupsRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent): self
+ {
+ return (new self())
+ ->setParent($parent);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. Parent value for ListSkuGroupsRequest
+ * @type int $page_size
+ * Optional. Maximum results to return. The service may return fewer than this
+ * value. The maximum value is 500; values above 500 will be coerced to 500.
+ * If unspecified, the server will default to the maximum.
+ * @type string $page_token
+ * Optional. A page token, received from a previous list response message.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters of the list request must match the
+ * request that returned the page token.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\CommerceTransaction::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Parent value for ListSkuGroupsRequest
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. Parent value for ListSkuGroupsRequest
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Maximum results to return. The service may return fewer than this
+ * value. The maximum value is 500; values above 500 will be coerced to 500.
+ * If unspecified, the server will default to the maximum.
+ *
+ * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return int
+ */
+ public function getPageSize()
+ {
+ return $this->page_size;
+ }
+
+ /**
+ * Optional. Maximum results to return. The service may return fewer than this
+ * value. The maximum value is 500; values above 500 will be coerced to 500.
+ * If unspecified, the server will default to the maximum.
+ *
+ * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param int $var
+ * @return $this
+ */
+ public function setPageSize($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->page_size = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. A page token, received from a previous list response message.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters of the list request must match the
+ * request that returned the page token.
+ *
+ * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getPageToken()
+ {
+ return $this->page_token;
+ }
+
+ /**
+ * Optional. A page token, received from a previous list response message.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters of the list request must match the
+ * request that returned the page token.
+ *
+ * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->page_token = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/ListSkuGroupsResponse.php b/Commerceproducer/src/V1beta/ListSkuGroupsResponse.php
new file mode 100644
index 00000000000..14f78c1af3e
--- /dev/null
+++ b/Commerceproducer/src/V1beta/ListSkuGroupsResponse.php
@@ -0,0 +1,105 @@
+google.cloud.commerceproducer.v1beta.ListSkuGroupsResponse
+ */
+class ListSkuGroupsResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The list of SkuGroup
+ *
+ * Generated from protobuf field repeated .google.cloud.commerceproducer.v1beta.SkuGroup sku_groups = 1;
+ */
+ private $sku_groups;
+ /**
+ * A token, which can be sent as `page_token` to retrieve the next page.
+ * If this field is omitted, there are no subsequent pages.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ */
+ protected $next_page_token = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Commerceproducer\V1beta\SkuGroup[] $sku_groups
+ * The list of SkuGroup
+ * @type string $next_page_token
+ * A token, which can be sent as `page_token` to retrieve the next page.
+ * If this field is omitted, there are no subsequent pages.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\CommerceTransaction::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The list of SkuGroup
+ *
+ * Generated from protobuf field repeated .google.cloud.commerceproducer.v1beta.SkuGroup sku_groups = 1;
+ * @return RepeatedField<\Google\Cloud\Commerceproducer\V1beta\SkuGroup>
+ */
+ public function getSkuGroups()
+ {
+ return $this->sku_groups;
+ }
+
+ /**
+ * The list of SkuGroup
+ *
+ * Generated from protobuf field repeated .google.cloud.commerceproducer.v1beta.SkuGroup sku_groups = 1;
+ * @param \Google\Cloud\Commerceproducer\V1beta\SkuGroup[] $var
+ * @return $this
+ */
+ public function setSkuGroups($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Commerceproducer\V1beta\SkuGroup::class);
+ $this->sku_groups = $arr;
+
+ return $this;
+ }
+
+ /**
+ * A token, which can be sent as `page_token` to retrieve the next page.
+ * If this field is omitted, there are no subsequent pages.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @return string
+ */
+ public function getNextPageToken()
+ {
+ return $this->next_page_token;
+ }
+
+ /**
+ * A token, which can be sent as `page_token` to retrieve the next page.
+ * If this field is omitted, there are no subsequent pages.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setNextPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->next_page_token = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/ListSkusRequest.php b/Commerceproducer/src/V1beta/ListSkusRequest.php
new file mode 100644
index 00000000000..0d4a53143c3
--- /dev/null
+++ b/Commerceproducer/src/V1beta/ListSkusRequest.php
@@ -0,0 +1,169 @@
+google.cloud.commerceproducer.v1beta.ListSkusRequest
+ */
+class ListSkusRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Parent value for ListSkusRequest
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Optional. Maximum results to return. The service may return fewer than this
+ * value. The maximum value is 500; values above 500 will be coerced to 500.
+ * If unspecified, the server will default to the maximum.
+ *
+ * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $page_size = 0;
+ /**
+ * Optional. A page token, received from a previous list response message.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters of the list request must match the
+ * request that returned the page token.
+ *
+ * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $page_token = '';
+
+ /**
+ * @param string $parent Required. Parent value for ListSkusRequest
+ * Please see {@see CommerceTransactionClient::serviceName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Commerceproducer\V1beta\ListSkusRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent): self
+ {
+ return (new self())
+ ->setParent($parent);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. Parent value for ListSkusRequest
+ * @type int $page_size
+ * Optional. Maximum results to return. The service may return fewer than this
+ * value. The maximum value is 500; values above 500 will be coerced to 500.
+ * If unspecified, the server will default to the maximum.
+ * @type string $page_token
+ * Optional. A page token, received from a previous list response message.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters of the list request must match the
+ * request that returned the page token.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\CommerceTransaction::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Parent value for ListSkusRequest
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. Parent value for ListSkusRequest
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Maximum results to return. The service may return fewer than this
+ * value. The maximum value is 500; values above 500 will be coerced to 500.
+ * If unspecified, the server will default to the maximum.
+ *
+ * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return int
+ */
+ public function getPageSize()
+ {
+ return $this->page_size;
+ }
+
+ /**
+ * Optional. Maximum results to return. The service may return fewer than this
+ * value. The maximum value is 500; values above 500 will be coerced to 500.
+ * If unspecified, the server will default to the maximum.
+ *
+ * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param int $var
+ * @return $this
+ */
+ public function setPageSize($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->page_size = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. A page token, received from a previous list response message.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters of the list request must match the
+ * request that returned the page token.
+ *
+ * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getPageToken()
+ {
+ return $this->page_token;
+ }
+
+ /**
+ * Optional. A page token, received from a previous list response message.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters of the list request must match the
+ * request that returned the page token.
+ *
+ * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->page_token = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/ListSkusResponse.php b/Commerceproducer/src/V1beta/ListSkusResponse.php
new file mode 100644
index 00000000000..97d0f690e52
--- /dev/null
+++ b/Commerceproducer/src/V1beta/ListSkusResponse.php
@@ -0,0 +1,105 @@
+google.cloud.commerceproducer.v1beta.ListSkusResponse
+ */
+class ListSkusResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The list of Sku
+ *
+ * Generated from protobuf field repeated .google.cloud.commerceproducer.v1beta.Sku skus = 1;
+ */
+ private $skus;
+ /**
+ * A token, which can be sent as `page_token` to retrieve the next page.
+ * If this field is omitted, there are no subsequent pages.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ */
+ protected $next_page_token = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Commerceproducer\V1beta\Sku[] $skus
+ * The list of Sku
+ * @type string $next_page_token
+ * A token, which can be sent as `page_token` to retrieve the next page.
+ * If this field is omitted, there are no subsequent pages.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\CommerceTransaction::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The list of Sku
+ *
+ * Generated from protobuf field repeated .google.cloud.commerceproducer.v1beta.Sku skus = 1;
+ * @return RepeatedField<\Google\Cloud\Commerceproducer\V1beta\Sku>
+ */
+ public function getSkus()
+ {
+ return $this->skus;
+ }
+
+ /**
+ * The list of Sku
+ *
+ * Generated from protobuf field repeated .google.cloud.commerceproducer.v1beta.Sku skus = 1;
+ * @param \Google\Cloud\Commerceproducer\V1beta\Sku[] $var
+ * @return $this
+ */
+ public function setSkus($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Commerceproducer\V1beta\Sku::class);
+ $this->skus = $arr;
+
+ return $this;
+ }
+
+ /**
+ * A token, which can be sent as `page_token` to retrieve the next page.
+ * If this field is omitted, there are no subsequent pages.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @return string
+ */
+ public function getNextPageToken()
+ {
+ return $this->next_page_token;
+ }
+
+ /**
+ * A token, which can be sent as `page_token` to retrieve the next page.
+ * If this field is omitted, there are no subsequent pages.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setNextPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->next_page_token = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/ListStandardOffersRequest.php b/Commerceproducer/src/V1beta/ListStandardOffersRequest.php
new file mode 100644
index 00000000000..da2a7185a25
--- /dev/null
+++ b/Commerceproducer/src/V1beta/ListStandardOffersRequest.php
@@ -0,0 +1,277 @@
+google.cloud.commerceproducer.v1beta.ListStandardOffersRequest
+ */
+class ListStandardOffersRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Parent value for ListStandardOffersRequest
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Optional. Maximum results to return. The service may return fewer than this
+ * value. The maximum value is 500; values above 500 will be coerced to 500.
+ * If unspecified, the server will default to the maximum.
+ *
+ * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $page_size = 0;
+ /**
+ * Optional. A page token, received from a previous list response message.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters of the list request must match the
+ * request that returned the page token.
+ *
+ * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $page_token = '';
+ /**
+ * Optional. Filter expression that matches a subset of resources to show.
+ * See https://google.aip.dev/160 for more details.
+ * Supports filtering by:
+ * * `effective_time`.
+ * Example: `effective_time > "2012-04-21T11:30:00-04:00"`.
+ * * `expire_time`. Example: `expire_time < "2026-05-06T00:00:00Z"`.
+ *
+ * Generated from protobuf field string filter = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $filter = '';
+ /**
+ * Optional. Ordering expression for sorting the results.
+ * See https://google.aip.dev/132#ordering for more details.
+ * If no value is present the default ordering is unspecified.
+ * Supports ordering by:
+ * * `effective_time`
+ * * `expire_time`
+ *
+ * Generated from protobuf field string order_by = 5 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $order_by = '';
+
+ /**
+ * @param string $parent Required. Parent value for ListStandardOffersRequest
+ * Please see {@see CommerceTransactionClient::serviceName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Commerceproducer\V1beta\ListStandardOffersRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent): self
+ {
+ return (new self())
+ ->setParent($parent);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. Parent value for ListStandardOffersRequest
+ * @type int $page_size
+ * Optional. Maximum results to return. The service may return fewer than this
+ * value. The maximum value is 500; values above 500 will be coerced to 500.
+ * If unspecified, the server will default to the maximum.
+ * @type string $page_token
+ * Optional. A page token, received from a previous list response message.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters of the list request must match the
+ * request that returned the page token.
+ * @type string $filter
+ * Optional. Filter expression that matches a subset of resources to show.
+ * See https://google.aip.dev/160 for more details.
+ * Supports filtering by:
+ * * `effective_time`.
+ * Example: `effective_time > "2012-04-21T11:30:00-04:00"`.
+ * * `expire_time`. Example: `expire_time < "2026-05-06T00:00:00Z"`.
+ * @type string $order_by
+ * Optional. Ordering expression for sorting the results.
+ * See https://google.aip.dev/132#ordering for more details.
+ * If no value is present the default ordering is unspecified.
+ * Supports ordering by:
+ * * `effective_time`
+ * * `expire_time`
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\CommerceTransaction::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Parent value for ListStandardOffersRequest
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. Parent value for ListStandardOffersRequest
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Maximum results to return. The service may return fewer than this
+ * value. The maximum value is 500; values above 500 will be coerced to 500.
+ * If unspecified, the server will default to the maximum.
+ *
+ * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return int
+ */
+ public function getPageSize()
+ {
+ return $this->page_size;
+ }
+
+ /**
+ * Optional. Maximum results to return. The service may return fewer than this
+ * value. The maximum value is 500; values above 500 will be coerced to 500.
+ * If unspecified, the server will default to the maximum.
+ *
+ * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param int $var
+ * @return $this
+ */
+ public function setPageSize($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->page_size = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. A page token, received from a previous list response message.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters of the list request must match the
+ * request that returned the page token.
+ *
+ * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getPageToken()
+ {
+ return $this->page_token;
+ }
+
+ /**
+ * Optional. A page token, received from a previous list response message.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters of the list request must match the
+ * request that returned the page token.
+ *
+ * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->page_token = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Filter expression that matches a subset of resources to show.
+ * See https://google.aip.dev/160 for more details.
+ * Supports filtering by:
+ * * `effective_time`.
+ * Example: `effective_time > "2012-04-21T11:30:00-04:00"`.
+ * * `expire_time`. Example: `expire_time < "2026-05-06T00:00:00Z"`.
+ *
+ * Generated from protobuf field string filter = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getFilter()
+ {
+ return $this->filter;
+ }
+
+ /**
+ * Optional. Filter expression that matches a subset of resources to show.
+ * See https://google.aip.dev/160 for more details.
+ * Supports filtering by:
+ * * `effective_time`.
+ * Example: `effective_time > "2012-04-21T11:30:00-04:00"`.
+ * * `expire_time`. Example: `expire_time < "2026-05-06T00:00:00Z"`.
+ *
+ * Generated from protobuf field string filter = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setFilter($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->filter = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Ordering expression for sorting the results.
+ * See https://google.aip.dev/132#ordering for more details.
+ * If no value is present the default ordering is unspecified.
+ * Supports ordering by:
+ * * `effective_time`
+ * * `expire_time`
+ *
+ * Generated from protobuf field string order_by = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getOrderBy()
+ {
+ return $this->order_by;
+ }
+
+ /**
+ * Optional. Ordering expression for sorting the results.
+ * See https://google.aip.dev/132#ordering for more details.
+ * If no value is present the default ordering is unspecified.
+ * Supports ordering by:
+ * * `effective_time`
+ * * `expire_time`
+ *
+ * Generated from protobuf field string order_by = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setOrderBy($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->order_by = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/ListStandardOffersResponse.php b/Commerceproducer/src/V1beta/ListStandardOffersResponse.php
new file mode 100644
index 00000000000..8d5e5d8a4e5
--- /dev/null
+++ b/Commerceproducer/src/V1beta/ListStandardOffersResponse.php
@@ -0,0 +1,105 @@
+google.cloud.commerceproducer.v1beta.ListStandardOffersResponse
+ */
+class ListStandardOffersResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The list of StandardOffer
+ *
+ * Generated from protobuf field repeated .google.cloud.commerceproducer.v1beta.StandardOffer standard_offers = 1;
+ */
+ private $standard_offers;
+ /**
+ * A token, which can be sent as `page_token` to retrieve the next page.
+ * If this field is omitted, there are no subsequent pages.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ */
+ protected $next_page_token = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Commerceproducer\V1beta\StandardOffer[] $standard_offers
+ * The list of StandardOffer
+ * @type string $next_page_token
+ * A token, which can be sent as `page_token` to retrieve the next page.
+ * If this field is omitted, there are no subsequent pages.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\CommerceTransaction::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The list of StandardOffer
+ *
+ * Generated from protobuf field repeated .google.cloud.commerceproducer.v1beta.StandardOffer standard_offers = 1;
+ * @return RepeatedField<\Google\Cloud\Commerceproducer\V1beta\StandardOffer>
+ */
+ public function getStandardOffers()
+ {
+ return $this->standard_offers;
+ }
+
+ /**
+ * The list of StandardOffer
+ *
+ * Generated from protobuf field repeated .google.cloud.commerceproducer.v1beta.StandardOffer standard_offers = 1;
+ * @param \Google\Cloud\Commerceproducer\V1beta\StandardOffer[] $var
+ * @return $this
+ */
+ public function setStandardOffers($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Commerceproducer\V1beta\StandardOffer::class);
+ $this->standard_offers = $arr;
+
+ return $this;
+ }
+
+ /**
+ * A token, which can be sent as `page_token` to retrieve the next page.
+ * If this field is omitted, there are no subsequent pages.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @return string
+ */
+ public function getNextPageToken()
+ {
+ return $this->next_page_token;
+ }
+
+ /**
+ * A token, which can be sent as `page_token` to retrieve the next page.
+ * If this field is omitted, there are no subsequent pages.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setNextPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->next_page_token = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/PrivateOffer.php b/Commerceproducer/src/V1beta/PrivateOffer.php
new file mode 100644
index 00000000000..885a2de9d3e
--- /dev/null
+++ b/Commerceproducer/src/V1beta/PrivateOffer.php
@@ -0,0 +1,1048 @@
+google.cloud.commerceproducer.v1beta.PrivateOffer
+ */
+class PrivateOffer extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Identifier. Name of the resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IDENTIFIER];
+ */
+ protected $name = '';
+ /**
+ * Output only. The state of the private offer.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOffer.State state = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $state = 0;
+ /**
+ * Output only. Information about the Google review process.
+ * Present only when the offer is determined to require review by Google.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOffer.PublishRequirementGoogleReview publish_requirement_google_review = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $publish_requirement_google_review = null;
+ /**
+ * Output only. The creation time.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $create_time = null;
+ /**
+ * Output only. The last update time.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $update_time = null;
+ /**
+ * Output only. The time the offer transitioned to PUBLISHED state.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp publish_time = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $publish_time = null;
+ /**
+ * Output only. The time the offer transitioned to ACCEPTED state.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp accept_time = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $accept_time = null;
+ /**
+ * Output only. The time the offer transited to CANCELLED state.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp cancel_time = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $cancel_time = null;
+ /**
+ * Output only. The time when the offer ended. This can only be set for offers
+ * with `ENDED` state.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp end_time = 22 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $end_time = null;
+ /**
+ * Output only. Internal note supplied when the offer was cancelled.
+ * Present only for cancelled offers and only if a note was supplied.
+ *
+ * Generated from protobuf field string cancellation_note = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $cancellation_note = '';
+ /**
+ * Output only. Information about the reseller contact.
+ * Present only for offers created by a reseller.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOffer.ResellerContact reseller_contact = 20 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $reseller_contact = null;
+ /**
+ * Optional. Unstructured text content that is not visible to the customer.
+ * Intended to be used by partners for storing notes about the private offer.
+ * Maximum length: 1500 characters.
+ *
+ * Generated from protobuf field string internal_note = 16 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $internal_note = '';
+ /**
+ * Optional. The type of the deal transacted with the offer.
+ * The deal type is not visible to customers.
+ * Must be present to publish the offer.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOffer.OfferDealType offer_deal_type = 21 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $offer_deal_type = 0;
+ /**
+ * Optional. A title that describes the offer and helps your customers
+ * identify it. This title will be visible to the customer. Maximum length:
+ * 256 characters. Must be present to publish the offer.
+ *
+ * Generated from protobuf field string title = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $title = '';
+ /**
+ * Optional. Unstructured text content that is visible to the customer.
+ * Maximum length: 120 characters.
+ *
+ * Generated from protobuf field string customer_note = 17 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $customer_note = '';
+ /**
+ * Optional. Information about the partner contact.
+ * Must be provided when publishing the offer.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOffer.PartnerContact partner_contact = 14 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $partner_contact = null;
+ /**
+ * Optional. Information identifying the intended recipient of the offer.
+ * Must be provided when publishing the offer.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOffer.Customer customer = 13 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $customer = null;
+ /**
+ * Optional. Deadline for acceptance of published offers.
+ * A published offer not accepted by this time will expire.
+ * Only day boundaries in the America/Los_Angeles time zone are supported.
+ * Must be present to publish the offer.
+ * When publishing an offer the deadline must be set to a time in the future
+ * not more than 3 months from the time of publishing. For example, if the
+ * offer is published on 03/05 at 1PM, then the deadline must be at or before
+ * 06/05 12AM America/Los_Angeles time.
+ * The deadline must also be:
+ * * Before or equal to the scheduled start time of this offer (if
+ * `term.scheduled_start_time` is set and the term's start policy is
+ * `SCHEDULED_START_TIME`).
+ * * Before or equal to the scheduled end time of this offer, if
+ * `term.scheduled_end_time` is set and the term's end policy is
+ * `SCHEDULED_END_TIME`.
+ * * Before or equal to the upcoming installment start times on this offer.
+ * * Before or equal to the amended offer's end time, if the offer amends
+ * another private or standard offer.
+ * * Before or equal to the start time of the next pending installment of the
+ * amended offer, if amending a private offer with custom installments. For
+ * example, if the amended offer has installments on 01/01, 02/01, 03/01,
+ * 04/01, and today is 02/15, then this offer's `accept_deadline_time`
+ * must be at or before 03/01.
+ * In addition, if the offer amends another private offer, but there is
+ * already an accepted upcoming amendment against that private offer, then
+ * this deadline must be before or equal to the start time of the accepted
+ * upcoming offer.
+ * For example, today is 02/15, and this offer (offer C) amends private offer
+ * A, and private offer B has already been accepted which also amends private
+ * offer A. Private offer B has a start time of 03/01. Then this deadline
+ * must be at or before 03/01. Otherwise, on 03/01, private offer B would
+ * take effect, superseding offer A. This would mean offer C is no longer
+ * amending the currently active offer (Offer A), which is required for
+ * valid amendments.
+ * Once the offer is published, this field is still updatable to extend the
+ * deadline of the offer. However, the extension is still limited to be
+ * at most 3 months from the time of publishing.
+ *
+ * Generated from protobuf field .google.type.DateTime accept_deadline_time = 5 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $accept_deadline_time = null;
+ /**
+ * Optional. Configuration for the offer term.
+ * Must be set when publishing the offer.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOffer.Term term = 15 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $term = null;
+ protected $content;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\SingleProductOffer $single_product_offer
+ * Optional. Configurations for the offer that is associated with a single
+ * product.
+ * @type string $name
+ * Identifier. Name of the resource.
+ * @type int $state
+ * Output only. The state of the private offer.
+ * @type \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\PublishRequirementGoogleReview $publish_requirement_google_review
+ * Output only. Information about the Google review process.
+ * Present only when the offer is determined to require review by Google.
+ * @type \Google\Protobuf\Timestamp $create_time
+ * Output only. The creation time.
+ * @type \Google\Protobuf\Timestamp $update_time
+ * Output only. The last update time.
+ * @type \Google\Protobuf\Timestamp $publish_time
+ * Output only. The time the offer transitioned to PUBLISHED state.
+ * @type \Google\Protobuf\Timestamp $accept_time
+ * Output only. The time the offer transitioned to ACCEPTED state.
+ * @type \Google\Protobuf\Timestamp $cancel_time
+ * Output only. The time the offer transited to CANCELLED state.
+ * @type \Google\Protobuf\Timestamp $end_time
+ * Output only. The time when the offer ended. This can only be set for offers
+ * with `ENDED` state.
+ * @type string $cancellation_note
+ * Output only. Internal note supplied when the offer was cancelled.
+ * Present only for cancelled offers and only if a note was supplied.
+ * @type \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\ResellerContact $reseller_contact
+ * Output only. Information about the reseller contact.
+ * Present only for offers created by a reseller.
+ * @type string $internal_note
+ * Optional. Unstructured text content that is not visible to the customer.
+ * Intended to be used by partners for storing notes about the private offer.
+ * Maximum length: 1500 characters.
+ * @type int $offer_deal_type
+ * Optional. The type of the deal transacted with the offer.
+ * The deal type is not visible to customers.
+ * Must be present to publish the offer.
+ * @type string $title
+ * Optional. A title that describes the offer and helps your customers
+ * identify it. This title will be visible to the customer. Maximum length:
+ * 256 characters. Must be present to publish the offer.
+ * @type string $customer_note
+ * Optional. Unstructured text content that is visible to the customer.
+ * Maximum length: 120 characters.
+ * @type \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\PartnerContact $partner_contact
+ * Optional. Information about the partner contact.
+ * Must be provided when publishing the offer.
+ * @type \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\Customer $customer
+ * Optional. Information identifying the intended recipient of the offer.
+ * Must be provided when publishing the offer.
+ * @type \Google\Type\DateTime $accept_deadline_time
+ * Optional. Deadline for acceptance of published offers.
+ * A published offer not accepted by this time will expire.
+ * Only day boundaries in the America/Los_Angeles time zone are supported.
+ * Must be present to publish the offer.
+ * When publishing an offer the deadline must be set to a time in the future
+ * not more than 3 months from the time of publishing. For example, if the
+ * offer is published on 03/05 at 1PM, then the deadline must be at or before
+ * 06/05 12AM America/Los_Angeles time.
+ * The deadline must also be:
+ * * Before or equal to the scheduled start time of this offer (if
+ * `term.scheduled_start_time` is set and the term's start policy is
+ * `SCHEDULED_START_TIME`).
+ * * Before or equal to the scheduled end time of this offer, if
+ * `term.scheduled_end_time` is set and the term's end policy is
+ * `SCHEDULED_END_TIME`.
+ * * Before or equal to the upcoming installment start times on this offer.
+ * * Before or equal to the amended offer's end time, if the offer amends
+ * another private or standard offer.
+ * * Before or equal to the start time of the next pending installment of the
+ * amended offer, if amending a private offer with custom installments. For
+ * example, if the amended offer has installments on 01/01, 02/01, 03/01,
+ * 04/01, and today is 02/15, then this offer's `accept_deadline_time`
+ * must be at or before 03/01.
+ * In addition, if the offer amends another private offer, but there is
+ * already an accepted upcoming amendment against that private offer, then
+ * this deadline must be before or equal to the start time of the accepted
+ * upcoming offer.
+ * For example, today is 02/15, and this offer (offer C) amends private offer
+ * A, and private offer B has already been accepted which also amends private
+ * offer A. Private offer B has a start time of 03/01. Then this deadline
+ * must be at or before 03/01. Otherwise, on 03/01, private offer B would
+ * take effect, superseding offer A. This would mean offer C is no longer
+ * amending the currently active offer (Offer A), which is required for
+ * valid amendments.
+ * Once the offer is published, this field is still updatable to extend the
+ * deadline of the offer. However, the extension is still limited to be
+ * at most 3 months from the time of publishing.
+ * @type \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\Term $term
+ * Optional. Configuration for the offer term.
+ * Must be set when publishing the offer.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\PrivateOffer::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Optional. Configurations for the offer that is associated with a single
+ * product.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer single_product_offer = 12 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\SingleProductOffer|null
+ */
+ public function getSingleProductOffer()
+ {
+ return $this->readOneof(12);
+ }
+
+ public function hasSingleProductOffer()
+ {
+ return $this->hasOneof(12);
+ }
+
+ /**
+ * Optional. Configurations for the offer that is associated with a single
+ * product.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer single_product_offer = 12 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\SingleProductOffer $var
+ * @return $this
+ */
+ public function setSingleProductOffer($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\SingleProductOffer::class);
+ $this->writeOneof(12, $var);
+
+ return $this;
+ }
+
+ /**
+ * Identifier. Name of the resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IDENTIFIER];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Identifier. Name of the resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IDENTIFIER];
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The state of the private offer.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOffer.State state = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getState()
+ {
+ return $this->state;
+ }
+
+ /**
+ * Output only. The state of the private offer.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOffer.State state = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setState($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\State::class);
+ $this->state = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Information about the Google review process.
+ * Present only when the offer is determined to require review by Google.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOffer.PublishRequirementGoogleReview publish_requirement_google_review = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\PublishRequirementGoogleReview|null
+ */
+ public function getPublishRequirementGoogleReview()
+ {
+ return $this->publish_requirement_google_review;
+ }
+
+ public function hasPublishRequirementGoogleReview()
+ {
+ return isset($this->publish_requirement_google_review);
+ }
+
+ public function clearPublishRequirementGoogleReview()
+ {
+ unset($this->publish_requirement_google_review);
+ }
+
+ /**
+ * Output only. Information about the Google review process.
+ * Present only when the offer is determined to require review by Google.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOffer.PublishRequirementGoogleReview publish_requirement_google_review = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\PublishRequirementGoogleReview $var
+ * @return $this
+ */
+ public function setPublishRequirementGoogleReview($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\PublishRequirementGoogleReview::class);
+ $this->publish_requirement_google_review = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The creation time.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getCreateTime()
+ {
+ return $this->create_time;
+ }
+
+ public function hasCreateTime()
+ {
+ return isset($this->create_time);
+ }
+
+ public function clearCreateTime()
+ {
+ unset($this->create_time);
+ }
+
+ /**
+ * Output only. The creation time.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setCreateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->create_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The last update time.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getUpdateTime()
+ {
+ return $this->update_time;
+ }
+
+ public function hasUpdateTime()
+ {
+ return isset($this->update_time);
+ }
+
+ public function clearUpdateTime()
+ {
+ unset($this->update_time);
+ }
+
+ /**
+ * Output only. The last update time.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setUpdateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->update_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The time the offer transitioned to PUBLISHED state.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp publish_time = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getPublishTime()
+ {
+ return $this->publish_time;
+ }
+
+ public function hasPublishTime()
+ {
+ return isset($this->publish_time);
+ }
+
+ public function clearPublishTime()
+ {
+ unset($this->publish_time);
+ }
+
+ /**
+ * Output only. The time the offer transitioned to PUBLISHED state.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp publish_time = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setPublishTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->publish_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The time the offer transitioned to ACCEPTED state.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp accept_time = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getAcceptTime()
+ {
+ return $this->accept_time;
+ }
+
+ public function hasAcceptTime()
+ {
+ return isset($this->accept_time);
+ }
+
+ public function clearAcceptTime()
+ {
+ unset($this->accept_time);
+ }
+
+ /**
+ * Output only. The time the offer transitioned to ACCEPTED state.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp accept_time = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setAcceptTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->accept_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The time the offer transited to CANCELLED state.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp cancel_time = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getCancelTime()
+ {
+ return $this->cancel_time;
+ }
+
+ public function hasCancelTime()
+ {
+ return isset($this->cancel_time);
+ }
+
+ public function clearCancelTime()
+ {
+ unset($this->cancel_time);
+ }
+
+ /**
+ * Output only. The time the offer transited to CANCELLED state.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp cancel_time = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setCancelTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->cancel_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The time when the offer ended. This can only be set for offers
+ * with `ENDED` state.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp end_time = 22 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getEndTime()
+ {
+ return $this->end_time;
+ }
+
+ public function hasEndTime()
+ {
+ return isset($this->end_time);
+ }
+
+ public function clearEndTime()
+ {
+ unset($this->end_time);
+ }
+
+ /**
+ * Output only. The time when the offer ended. This can only be set for offers
+ * with `ENDED` state.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp end_time = 22 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setEndTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->end_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Internal note supplied when the offer was cancelled.
+ * Present only for cancelled offers and only if a note was supplied.
+ *
+ * Generated from protobuf field string cancellation_note = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getCancellationNote()
+ {
+ return $this->cancellation_note;
+ }
+
+ /**
+ * Output only. Internal note supplied when the offer was cancelled.
+ * Present only for cancelled offers and only if a note was supplied.
+ *
+ * Generated from protobuf field string cancellation_note = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setCancellationNote($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->cancellation_note = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Information about the reseller contact.
+ * Present only for offers created by a reseller.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOffer.ResellerContact reseller_contact = 20 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\ResellerContact|null
+ */
+ public function getResellerContact()
+ {
+ return $this->reseller_contact;
+ }
+
+ public function hasResellerContact()
+ {
+ return isset($this->reseller_contact);
+ }
+
+ public function clearResellerContact()
+ {
+ unset($this->reseller_contact);
+ }
+
+ /**
+ * Output only. Information about the reseller contact.
+ * Present only for offers created by a reseller.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOffer.ResellerContact reseller_contact = 20 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\ResellerContact $var
+ * @return $this
+ */
+ public function setResellerContact($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\ResellerContact::class);
+ $this->reseller_contact = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Unstructured text content that is not visible to the customer.
+ * Intended to be used by partners for storing notes about the private offer.
+ * Maximum length: 1500 characters.
+ *
+ * Generated from protobuf field string internal_note = 16 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getInternalNote()
+ {
+ return $this->internal_note;
+ }
+
+ /**
+ * Optional. Unstructured text content that is not visible to the customer.
+ * Intended to be used by partners for storing notes about the private offer.
+ * Maximum length: 1500 characters.
+ *
+ * Generated from protobuf field string internal_note = 16 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setInternalNote($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->internal_note = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The type of the deal transacted with the offer.
+ * The deal type is not visible to customers.
+ * Must be present to publish the offer.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOffer.OfferDealType offer_deal_type = 21 [(.google.api.field_behavior) = OPTIONAL];
+ * @return int
+ */
+ public function getOfferDealType()
+ {
+ return $this->offer_deal_type;
+ }
+
+ /**
+ * Optional. The type of the deal transacted with the offer.
+ * The deal type is not visible to customers.
+ * Must be present to publish the offer.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOffer.OfferDealType offer_deal_type = 21 [(.google.api.field_behavior) = OPTIONAL];
+ * @param int $var
+ * @return $this
+ */
+ public function setOfferDealType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\OfferDealType::class);
+ $this->offer_deal_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. A title that describes the offer and helps your customers
+ * identify it. This title will be visible to the customer. Maximum length:
+ * 256 characters. Must be present to publish the offer.
+ *
+ * Generated from protobuf field string title = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getTitle()
+ {
+ return $this->title;
+ }
+
+ /**
+ * Optional. A title that describes the offer and helps your customers
+ * identify it. This title will be visible to the customer. Maximum length:
+ * 256 characters. Must be present to publish the offer.
+ *
+ * Generated from protobuf field string title = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setTitle($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->title = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Unstructured text content that is visible to the customer.
+ * Maximum length: 120 characters.
+ *
+ * Generated from protobuf field string customer_note = 17 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getCustomerNote()
+ {
+ return $this->customer_note;
+ }
+
+ /**
+ * Optional. Unstructured text content that is visible to the customer.
+ * Maximum length: 120 characters.
+ *
+ * Generated from protobuf field string customer_note = 17 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setCustomerNote($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->customer_note = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Information about the partner contact.
+ * Must be provided when publishing the offer.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOffer.PartnerContact partner_contact = 14 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\PartnerContact|null
+ */
+ public function getPartnerContact()
+ {
+ return $this->partner_contact;
+ }
+
+ public function hasPartnerContact()
+ {
+ return isset($this->partner_contact);
+ }
+
+ public function clearPartnerContact()
+ {
+ unset($this->partner_contact);
+ }
+
+ /**
+ * Optional. Information about the partner contact.
+ * Must be provided when publishing the offer.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOffer.PartnerContact partner_contact = 14 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\PartnerContact $var
+ * @return $this
+ */
+ public function setPartnerContact($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\PartnerContact::class);
+ $this->partner_contact = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Information identifying the intended recipient of the offer.
+ * Must be provided when publishing the offer.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOffer.Customer customer = 13 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\Customer|null
+ */
+ public function getCustomer()
+ {
+ return $this->customer;
+ }
+
+ public function hasCustomer()
+ {
+ return isset($this->customer);
+ }
+
+ public function clearCustomer()
+ {
+ unset($this->customer);
+ }
+
+ /**
+ * Optional. Information identifying the intended recipient of the offer.
+ * Must be provided when publishing the offer.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOffer.Customer customer = 13 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\Customer $var
+ * @return $this
+ */
+ public function setCustomer($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\Customer::class);
+ $this->customer = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Deadline for acceptance of published offers.
+ * A published offer not accepted by this time will expire.
+ * Only day boundaries in the America/Los_Angeles time zone are supported.
+ * Must be present to publish the offer.
+ * When publishing an offer the deadline must be set to a time in the future
+ * not more than 3 months from the time of publishing. For example, if the
+ * offer is published on 03/05 at 1PM, then the deadline must be at or before
+ * 06/05 12AM America/Los_Angeles time.
+ * The deadline must also be:
+ * * Before or equal to the scheduled start time of this offer (if
+ * `term.scheduled_start_time` is set and the term's start policy is
+ * `SCHEDULED_START_TIME`).
+ * * Before or equal to the scheduled end time of this offer, if
+ * `term.scheduled_end_time` is set and the term's end policy is
+ * `SCHEDULED_END_TIME`.
+ * * Before or equal to the upcoming installment start times on this offer.
+ * * Before or equal to the amended offer's end time, if the offer amends
+ * another private or standard offer.
+ * * Before or equal to the start time of the next pending installment of the
+ * amended offer, if amending a private offer with custom installments. For
+ * example, if the amended offer has installments on 01/01, 02/01, 03/01,
+ * 04/01, and today is 02/15, then this offer's `accept_deadline_time`
+ * must be at or before 03/01.
+ * In addition, if the offer amends another private offer, but there is
+ * already an accepted upcoming amendment against that private offer, then
+ * this deadline must be before or equal to the start time of the accepted
+ * upcoming offer.
+ * For example, today is 02/15, and this offer (offer C) amends private offer
+ * A, and private offer B has already been accepted which also amends private
+ * offer A. Private offer B has a start time of 03/01. Then this deadline
+ * must be at or before 03/01. Otherwise, on 03/01, private offer B would
+ * take effect, superseding offer A. This would mean offer C is no longer
+ * amending the currently active offer (Offer A), which is required for
+ * valid amendments.
+ * Once the offer is published, this field is still updatable to extend the
+ * deadline of the offer. However, the extension is still limited to be
+ * at most 3 months from the time of publishing.
+ *
+ * Generated from protobuf field .google.type.DateTime accept_deadline_time = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Type\DateTime|null
+ */
+ public function getAcceptDeadlineTime()
+ {
+ return $this->accept_deadline_time;
+ }
+
+ public function hasAcceptDeadlineTime()
+ {
+ return isset($this->accept_deadline_time);
+ }
+
+ public function clearAcceptDeadlineTime()
+ {
+ unset($this->accept_deadline_time);
+ }
+
+ /**
+ * Optional. Deadline for acceptance of published offers.
+ * A published offer not accepted by this time will expire.
+ * Only day boundaries in the America/Los_Angeles time zone are supported.
+ * Must be present to publish the offer.
+ * When publishing an offer the deadline must be set to a time in the future
+ * not more than 3 months from the time of publishing. For example, if the
+ * offer is published on 03/05 at 1PM, then the deadline must be at or before
+ * 06/05 12AM America/Los_Angeles time.
+ * The deadline must also be:
+ * * Before or equal to the scheduled start time of this offer (if
+ * `term.scheduled_start_time` is set and the term's start policy is
+ * `SCHEDULED_START_TIME`).
+ * * Before or equal to the scheduled end time of this offer, if
+ * `term.scheduled_end_time` is set and the term's end policy is
+ * `SCHEDULED_END_TIME`.
+ * * Before or equal to the upcoming installment start times on this offer.
+ * * Before or equal to the amended offer's end time, if the offer amends
+ * another private or standard offer.
+ * * Before or equal to the start time of the next pending installment of the
+ * amended offer, if amending a private offer with custom installments. For
+ * example, if the amended offer has installments on 01/01, 02/01, 03/01,
+ * 04/01, and today is 02/15, then this offer's `accept_deadline_time`
+ * must be at or before 03/01.
+ * In addition, if the offer amends another private offer, but there is
+ * already an accepted upcoming amendment against that private offer, then
+ * this deadline must be before or equal to the start time of the accepted
+ * upcoming offer.
+ * For example, today is 02/15, and this offer (offer C) amends private offer
+ * A, and private offer B has already been accepted which also amends private
+ * offer A. Private offer B has a start time of 03/01. Then this deadline
+ * must be at or before 03/01. Otherwise, on 03/01, private offer B would
+ * take effect, superseding offer A. This would mean offer C is no longer
+ * amending the currently active offer (Offer A), which is required for
+ * valid amendments.
+ * Once the offer is published, this field is still updatable to extend the
+ * deadline of the offer. However, the extension is still limited to be
+ * at most 3 months from the time of publishing.
+ *
+ * Generated from protobuf field .google.type.DateTime accept_deadline_time = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Type\DateTime $var
+ * @return $this
+ */
+ public function setAcceptDeadlineTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Type\DateTime::class);
+ $this->accept_deadline_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Configuration for the offer term.
+ * Must be set when publishing the offer.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOffer.Term term = 15 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\Term|null
+ */
+ public function getTerm()
+ {
+ return $this->term;
+ }
+
+ public function hasTerm()
+ {
+ return isset($this->term);
+ }
+
+ public function clearTerm()
+ {
+ unset($this->term);
+ }
+
+ /**
+ * Optional. Configuration for the offer term.
+ * Must be set when publishing the offer.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOffer.Term term = 15 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\Term $var
+ * @return $this
+ */
+ public function setTerm($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\Term::class);
+ $this->term = $var;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getContent()
+ {
+ return $this->whichOneof("content");
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/PrivateOffer/Customer.php b/Commerceproducer/src/V1beta/PrivateOffer/Customer.php
new file mode 100644
index 00000000000..52d44345169
--- /dev/null
+++ b/Commerceproducer/src/V1beta/PrivateOffer/Customer.php
@@ -0,0 +1,286 @@
+google.cloud.commerceproducer.v1beta.PrivateOffer.Customer
+ */
+class Customer extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Optional. A string identifying the customer's entity (for example, the
+ * customer's organization or company name). Must be provided when
+ * publishing the offer. Maximum length: 256 characters.
+ *
+ * Generated from protobuf field string entity_title = 1 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $entity_title = '';
+ /**
+ * Optional. A string identifying the customer contact.
+ * Must be provided when publishing the offer.
+ * Maximum length: 256 characters.
+ *
+ * Generated from protobuf field string contact = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $contact = '';
+ /**
+ * Optional. Email of customer contact.
+ * If provided, it must be a well-formed email address.
+ *
+ * Generated from protobuf field string email = 3 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $email = '';
+ /**
+ * Output only. Legal address of the customer organization.
+ * This field can no longer be set, but it is preserved to return the
+ * data from existing offers where address is set.
+ *
+ * Generated from protobuf field string address = 4 [deprecated = true, (.google.api.field_behavior) = OUTPUT_ONLY];
+ * @deprecated
+ */
+ protected $address = '';
+ /**
+ * Optional. The customer's billing account targeted by the offer.
+ * The private offer once published can be accepted by a billing
+ * administrator of the target billing account. If the customer accepts the
+ * offer and later moves the resulting order to a new billing account, this
+ * field will continue to reflect the original billing account to which the
+ * private offer was extended. Must be provided when publishing the offer.
+ * To publish this private offer:
+ * * The billing account must exist.
+ * * The billing account must not be in a free trial.
+ * * The billing account must comply with Marketplace Reselling Policies.
+ * * Reseller parent billing accounts are prohibited. Reseller subaccounts
+ * are prohibited unless the service is enabled for reselling.
+ * Format: billingAccounts/012345-567890-ABCDEF
+ *
+ * Generated from protobuf field string target_billing_account = 5 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = {
+ */
+ protected $target_billing_account = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $entity_title
+ * Optional. A string identifying the customer's entity (for example, the
+ * customer's organization or company name). Must be provided when
+ * publishing the offer. Maximum length: 256 characters.
+ * @type string $contact
+ * Optional. A string identifying the customer contact.
+ * Must be provided when publishing the offer.
+ * Maximum length: 256 characters.
+ * @type string $email
+ * Optional. Email of customer contact.
+ * If provided, it must be a well-formed email address.
+ * @type string $address
+ * Output only. Legal address of the customer organization.
+ * This field can no longer be set, but it is preserved to return the
+ * data from existing offers where address is set.
+ * @type string $target_billing_account
+ * Optional. The customer's billing account targeted by the offer.
+ * The private offer once published can be accepted by a billing
+ * administrator of the target billing account. If the customer accepts the
+ * offer and later moves the resulting order to a new billing account, this
+ * field will continue to reflect the original billing account to which the
+ * private offer was extended. Must be provided when publishing the offer.
+ * To publish this private offer:
+ * * The billing account must exist.
+ * * The billing account must not be in a free trial.
+ * * The billing account must comply with Marketplace Reselling Policies.
+ * * Reseller parent billing accounts are prohibited. Reseller subaccounts
+ * are prohibited unless the service is enabled for reselling.
+ * Format: billingAccounts/012345-567890-ABCDEF
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\PrivateOffer::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Optional. A string identifying the customer's entity (for example, the
+ * customer's organization or company name). Must be provided when
+ * publishing the offer. Maximum length: 256 characters.
+ *
+ * Generated from protobuf field string entity_title = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getEntityTitle()
+ {
+ return $this->entity_title;
+ }
+
+ /**
+ * Optional. A string identifying the customer's entity (for example, the
+ * customer's organization or company name). Must be provided when
+ * publishing the offer. Maximum length: 256 characters.
+ *
+ * Generated from protobuf field string entity_title = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setEntityTitle($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->entity_title = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. A string identifying the customer contact.
+ * Must be provided when publishing the offer.
+ * Maximum length: 256 characters.
+ *
+ * Generated from protobuf field string contact = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getContact()
+ {
+ return $this->contact;
+ }
+
+ /**
+ * Optional. A string identifying the customer contact.
+ * Must be provided when publishing the offer.
+ * Maximum length: 256 characters.
+ *
+ * Generated from protobuf field string contact = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setContact($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->contact = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Email of customer contact.
+ * If provided, it must be a well-formed email address.
+ *
+ * Generated from protobuf field string email = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getEmail()
+ {
+ return $this->email;
+ }
+
+ /**
+ * Optional. Email of customer contact.
+ * If provided, it must be a well-formed email address.
+ *
+ * Generated from protobuf field string email = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setEmail($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->email = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Legal address of the customer organization.
+ * This field can no longer be set, but it is preserved to return the
+ * data from existing offers where address is set.
+ *
+ * Generated from protobuf field string address = 4 [deprecated = true, (.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ * @deprecated
+ */
+ public function getAddress()
+ {
+ if ($this->address !== '') {
+ @trigger_error('address is deprecated.', E_USER_DEPRECATED);
+ }
+ return $this->address;
+ }
+
+ /**
+ * Output only. Legal address of the customer organization.
+ * This field can no longer be set, but it is preserved to return the
+ * data from existing offers where address is set.
+ *
+ * Generated from protobuf field string address = 4 [deprecated = true, (.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ * @deprecated
+ */
+ public function setAddress($var)
+ {
+ @trigger_error('address is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkString($var, True);
+ $this->address = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The customer's billing account targeted by the offer.
+ * The private offer once published can be accepted by a billing
+ * administrator of the target billing account. If the customer accepts the
+ * offer and later moves the resulting order to a new billing account, this
+ * field will continue to reflect the original billing account to which the
+ * private offer was extended. Must be provided when publishing the offer.
+ * To publish this private offer:
+ * * The billing account must exist.
+ * * The billing account must not be in a free trial.
+ * * The billing account must comply with Marketplace Reselling Policies.
+ * * Reseller parent billing accounts are prohibited. Reseller subaccounts
+ * are prohibited unless the service is enabled for reselling.
+ * Format: billingAccounts/012345-567890-ABCDEF
+ *
+ * Generated from protobuf field string target_billing_account = 5 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getTargetBillingAccount()
+ {
+ return $this->target_billing_account;
+ }
+
+ /**
+ * Optional. The customer's billing account targeted by the offer.
+ * The private offer once published can be accepted by a billing
+ * administrator of the target billing account. If the customer accepts the
+ * offer and later moves the resulting order to a new billing account, this
+ * field will continue to reflect the original billing account to which the
+ * private offer was extended. Must be provided when publishing the offer.
+ * To publish this private offer:
+ * * The billing account must exist.
+ * * The billing account must not be in a free trial.
+ * * The billing account must comply with Marketplace Reselling Policies.
+ * * Reseller parent billing accounts are prohibited. Reseller subaccounts
+ * are prohibited unless the service is enabled for reselling.
+ * Format: billingAccounts/012345-567890-ABCDEF
+ *
+ * Generated from protobuf field string target_billing_account = 5 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setTargetBillingAccount($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->target_billing_account = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/PrivateOffer/OfferDealType.php b/Commerceproducer/src/V1beta/PrivateOffer/OfferDealType.php
new file mode 100644
index 00000000000..f66797ee1b1
--- /dev/null
+++ b/Commerceproducer/src/V1beta/PrivateOffer/OfferDealType.php
@@ -0,0 +1,89 @@
+google.cloud.commerceproducer.v1beta.PrivateOffer.OfferDealType
+ */
+class OfferDealType
+{
+ /**
+ * Default value. This value is unused.
+ *
+ * Generated from protobuf enum OFFER_DEAL_TYPE_UNSPECIFIED = 0;
+ */
+ const OFFER_DEAL_TYPE_UNSPECIFIED = 0;
+ /**
+ * The offer corresponds to a preexisting commercial arrangement for a
+ * workload on Google Cloud that is being transferred to the Cloud
+ * Marketplace.
+ *
+ * Generated from protobuf enum CHANNEL_SHIFT = 1;
+ */
+ const CHANNEL_SHIFT = 1;
+ /**
+ * The offer corresponds to a preexisting commercial arrangement for a
+ * workload previously not on Google Cloud that is being transferred to
+ * Google Cloud.
+ *
+ * Generated from protobuf enum MIGRATION = 2;
+ */
+ const MIGRATION = 2;
+ /**
+ * The offer corresponds to a renewal of a deal initially transacted on
+ * the Google Cloud Marketplace.
+ *
+ * Generated from protobuf enum NATIVE_RENEWAL = 3;
+ */
+ const NATIVE_RENEWAL = 3;
+ /**
+ * The offer corresponds to a new deal transacted on the Google Cloud
+ * Marketplace.
+ * This value is not allowed if the offer amends another private offer
+ * where the term has not ended, and the amended private offer has a deal
+ * type of `MIGRATION`, `CHANNEL_SHIFT` or `NATIVE_RENEWAL`.
+ *
+ * Generated from protobuf enum NEW = 4;
+ */
+ const PBNEW = 4;
+
+ private static $valueToName = [
+ self::OFFER_DEAL_TYPE_UNSPECIFIED => 'OFFER_DEAL_TYPE_UNSPECIFIED',
+ self::CHANNEL_SHIFT => 'CHANNEL_SHIFT',
+ self::MIGRATION => 'MIGRATION',
+ self::NATIVE_RENEWAL => 'NATIVE_RENEWAL',
+ self::PBNEW => 'NEW',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ $pbconst = __CLASS__. '::PB' . strtoupper($name);
+ if (!defined($pbconst)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($pbconst);
+ }
+ return constant($const);
+ }
+}
+
diff --git a/Commerceproducer/src/V1beta/PrivateOffer/PartnerContact.php b/Commerceproducer/src/V1beta/PrivateOffer/PartnerContact.php
new file mode 100644
index 00000000000..4d04fd5032c
--- /dev/null
+++ b/Commerceproducer/src/V1beta/PrivateOffer/PartnerContact.php
@@ -0,0 +1,129 @@
+google.cloud.commerceproducer.v1beta.PrivateOffer.PartnerContact
+ */
+class PartnerContact extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Optional. Display text identifying the partner sales contact.
+ * Displayed to the customer.
+ * Must be provided when publishing the offer.
+ * Maximum length: 256 characters.
+ *
+ * Generated from protobuf field string contact = 1 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $contact = '';
+ /**
+ * Optional. The email address of the partner sales contact.
+ * Displayed to the customer.
+ * The format of the provided email address is validated when publishing the
+ * offer, but no verification is performed that the email address actually
+ * exists, accepts email, or is otherwise functional.
+ *
+ * Generated from protobuf field string email = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $email = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $contact
+ * Optional. Display text identifying the partner sales contact.
+ * Displayed to the customer.
+ * Must be provided when publishing the offer.
+ * Maximum length: 256 characters.
+ * @type string $email
+ * Optional. The email address of the partner sales contact.
+ * Displayed to the customer.
+ * The format of the provided email address is validated when publishing the
+ * offer, but no verification is performed that the email address actually
+ * exists, accepts email, or is otherwise functional.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\PrivateOffer::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Optional. Display text identifying the partner sales contact.
+ * Displayed to the customer.
+ * Must be provided when publishing the offer.
+ * Maximum length: 256 characters.
+ *
+ * Generated from protobuf field string contact = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getContact()
+ {
+ return $this->contact;
+ }
+
+ /**
+ * Optional. Display text identifying the partner sales contact.
+ * Displayed to the customer.
+ * Must be provided when publishing the offer.
+ * Maximum length: 256 characters.
+ *
+ * Generated from protobuf field string contact = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setContact($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->contact = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The email address of the partner sales contact.
+ * Displayed to the customer.
+ * The format of the provided email address is validated when publishing the
+ * offer, but no verification is performed that the email address actually
+ * exists, accepts email, or is otherwise functional.
+ *
+ * Generated from protobuf field string email = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getEmail()
+ {
+ return $this->email;
+ }
+
+ /**
+ * Optional. The email address of the partner sales contact.
+ * Displayed to the customer.
+ * The format of the provided email address is validated when publishing the
+ * offer, but no verification is performed that the email address actually
+ * exists, accepts email, or is otherwise functional.
+ *
+ * Generated from protobuf field string email = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setEmail($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->email = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/PrivateOffer/PublishRequirementGoogleReview.php b/Commerceproducer/src/V1beta/PrivateOffer/PublishRequirementGoogleReview.php
new file mode 100644
index 00000000000..09d1f6c46a3
--- /dev/null
+++ b/Commerceproducer/src/V1beta/PrivateOffer/PublishRequirementGoogleReview.php
@@ -0,0 +1,77 @@
+google.cloud.commerceproducer.v1beta.PrivateOffer.PublishRequirementGoogleReview
+ */
+class PublishRequirementGoogleReview extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The approval time of the Google review process.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp review_approve_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $review_approve_time = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Protobuf\Timestamp $review_approve_time
+ * Output only. The approval time of the Google review process.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\PrivateOffer::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The approval time of the Google review process.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp review_approve_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getReviewApproveTime()
+ {
+ return $this->review_approve_time;
+ }
+
+ public function hasReviewApproveTime()
+ {
+ return isset($this->review_approve_time);
+ }
+
+ public function clearReviewApproveTime()
+ {
+ unset($this->review_approve_time);
+ }
+
+ /**
+ * Output only. The approval time of the Google review process.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp review_approve_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setReviewApproveTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->review_approve_time = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/PrivateOffer/ResellerContact.php b/Commerceproducer/src/V1beta/PrivateOffer/ResellerContact.php
new file mode 100644
index 00000000000..5af8b771287
--- /dev/null
+++ b/Commerceproducer/src/V1beta/PrivateOffer/ResellerContact.php
@@ -0,0 +1,101 @@
+google.cloud.commerceproducer.v1beta.PrivateOffer.ResellerContact
+ */
+class ResellerContact extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The name of the reseller contact for this offer.
+ *
+ * Generated from protobuf field string contact = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $contact = '';
+ /**
+ * Output only. The email of the reseller contact for this offer.
+ *
+ * Generated from protobuf field string email = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $email = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $contact
+ * Output only. The name of the reseller contact for this offer.
+ * @type string $email
+ * Output only. The email of the reseller contact for this offer.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\PrivateOffer::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The name of the reseller contact for this offer.
+ *
+ * Generated from protobuf field string contact = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getContact()
+ {
+ return $this->contact;
+ }
+
+ /**
+ * Output only. The name of the reseller contact for this offer.
+ *
+ * Generated from protobuf field string contact = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setContact($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->contact = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The email of the reseller contact for this offer.
+ *
+ * Generated from protobuf field string email = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getEmail()
+ {
+ return $this->email;
+ }
+
+ /**
+ * Output only. The email of the reseller contact for this offer.
+ *
+ * Generated from protobuf field string email = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setEmail($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->email = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/PrivateOffer/SingleProductOffer.php b/Commerceproducer/src/V1beta/PrivateOffer/SingleProductOffer.php
new file mode 100644
index 00000000000..c16cc29df89
--- /dev/null
+++ b/Commerceproducer/src/V1beta/PrivateOffer/SingleProductOffer.php
@@ -0,0 +1,700 @@
+google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer
+ */
+class SingleProductOffer extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Optional. The StandardOffer this PrivateOffer is based on.
+ * Must be in the same project as the private offer, and must be effective
+ * at the time of publishing. Must be present to publish the offer.
+ * Format:
+ * projects/{project}/locations/{location}/services/{service}/standardOffers/{standard_offer}
+ *
+ * Generated from protobuf field string base_standard_offer = 1 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = {
+ */
+ protected $base_standard_offer = '';
+ /**
+ * Output only. The service level (also known as the 'plan') of the base
+ * standard offer. The value is populated at publish time from the base
+ * standard offer.
+ *
+ * Generated from protobuf field string service_level = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $service_level = '';
+ /**
+ * Output only. Present for offers created by a reseller from a reseller
+ * private offer plan (RPOP). When set, contains the ID of the originating
+ * RPOP. Not included for `PRIVATE_OFFER_VIEW_BASIC`.
+ *
+ * Generated from protobuf field string reseller_private_offer_plan_id = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $reseller_private_offer_plan_id = '';
+ /**
+ * Optional. The custom product features to display for this offer.
+ * Feature `display_name` values must be unique to publish the offer.
+ * The set of features specified here should generally include all features
+ * included in the base service level, with optionally customized values,
+ * but is not required to match exactly and may include additional features.
+ *
+ * Generated from protobuf field repeated .google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer.Feature features = 8 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ private $features;
+ /**
+ * Output only. The effective installment timeline of the offer.
+ * Not included for `PRIVATE_OFFER_VIEW_BASIC`.
+ * Included for `PRIVATE_OFFER_VIEW_FULL` if all necessary information is
+ * available to generate the timeline, and if the offer has
+ * 'standard_interval_price' of 'MONTHLY_PRORATED', 'MONTHLY_NOT_PRORATED',
+ * 'QUARTERLY_NOT_PRORATED', or 'YEARLY_NOT_PRORATED'.
+ *
+ * Generated from protobuf field repeated .google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer.Installment effective_installment_timeline = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ private $effective_installment_timeline;
+ /**
+ * Output only. Contract value of the offer.
+ * Not included for `PRIVATE_OFFER_VIEW_BASIC`.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer.ContractValue contract_value = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $contract_value = null;
+ /**
+ * Output only. Revenue share information for this Private Offer.
+ * Not included for `PRIVATE_OFFER_VIEW_BASIC`.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer.RevenueShare revenue_share = 12 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $revenue_share = null;
+ protected $amended_offer;
+ protected $price;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $amended_private_offer
+ * Optional. An existing private offer that will be superseded by this
+ * offer. Unless the private offer is for a product type that supports
+ * [multiple active
+ * orders](https://cloud.google.com/marketplace/docs/partners/offers/multiple-offers),
+ * an amendment private offer must be transacted if and only if the
+ * destination customer billing account already contains an active order
+ * for the same product. The offer to be superseded must be the offer
+ * associated with an active order.
+ * Amendments generally fall into one of two scenarios:
+ * 1. **Active Order / Ended Offer**: The term of the amended offer has
+ * ended but it is still associated with an active order. The new
+ * offer must amend the ended private offer.
+ * 2. **Active Order / Active Offer**: The term of the amended offer is
+ * still active and the associated order is active. Similar to above,
+ * the new offer must amend the currently active offer (unless
+ * "multiple active orders" are supported).
+ * If this is set, then the `base_standard_offer` parent service must
+ * match the parent service of the `base_standard_offer` in the
+ * `amended_private_offer`.
+ * **Active Term Restrictions**:
+ * If the term of the amended private offer has *NOT* ended, then the
+ * following compatibility rules apply:
+ * * **Price Model Compatibility**:
+ * * Flat Fee (with or without usage) offers can amend Flat Fee
+ * offers.
+ * * Usage-only or CUD offers can amend usage-only offers.
+ * * Commitment-based offers must amend offers of the same price
+ * model subtype (e.g., "additional usage at list price" vs "all
+ * usage discounted").
+ * * **Billing Frequency Compatibility**: Determined by
+ * `standard_interval` or `custom_interval_price`.
+ * * If the amended offer has a custom billing frequency, the new
+ * offer must also have a custom frequency.
+ * * If the amended offer has a standard frequency (Monthly,
+ * Quarterly, or Yearly), the new offer must maintain the same
+ * frequency or transition to a custom frequency.
+ * * Switching between different standard frequencies (e.g., Monthly
+ * to Quarterly) is not supported.
+ * * For Monthly frequency, switching between `MONTHLY_PRORATED`
+ * and `MONTHLY_NOT_PRORATED` is supported, unless the offer's
+ * `term.end_policy` is `MATCH_AMENDED_OFFER`.
+ * * For usage-only offers, there are no billing frequency
+ * restrictions.
+ * Other criteria for offer amendment are detailed elsewhere.
+ * @type string $amended_standard_offer
+ * Optional. An existing standard offer that will be superseded by this
+ * offer. An amendment private offer must be transacted if the destination
+ * customer billing account already contains an active order for the same
+ * product, and otherwise cannot be transacted. The offer to be superseded
+ * must be the offer associated with the active order.
+ * If this is set, then the `base_standard_offer` must contain the same
+ * parent service as the parent service of the `amended_standard_offer`.
+ * The price model of this offer must be compatible with the price model
+ * of the `amended_standard_offer`:
+ * * Flat Fee, or Flat Fee with usage offers can amend Flat Fee or Flat
+ * Fee with usage standard offers.
+ * * Usage-only offers, or CUD offers can amend usage-only standard
+ * offers.
+ * Other criteria for offer amendment are detailed elsewhere.
+ * @type \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\SingleProductOffer\StandardIntervalPrice $standard_interval_price
+ * Optional. Price configurations for offers with standard intervals.
+ * A price must be set when publishing the offer.
+ * @type \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\SingleProductOffer\CustomIntervalPrice $custom_interval_price
+ * Optional. Price configurations for offers with custom intervals.
+ * Custom interval corresponds to "custom billing frequency",
+ * see
+ * https://docs.cloud.google.com/marketplace/docs/partners/offers/select-payment-schedule.
+ * A price must be set when publishing the offer.
+ * @type string $base_standard_offer
+ * Optional. The StandardOffer this PrivateOffer is based on.
+ * Must be in the same project as the private offer, and must be effective
+ * at the time of publishing. Must be present to publish the offer.
+ * Format:
+ * projects/{project}/locations/{location}/services/{service}/standardOffers/{standard_offer}
+ * @type string $service_level
+ * Output only. The service level (also known as the 'plan') of the base
+ * standard offer. The value is populated at publish time from the base
+ * standard offer.
+ * @type string $reseller_private_offer_plan_id
+ * Output only. Present for offers created by a reseller from a reseller
+ * private offer plan (RPOP). When set, contains the ID of the originating
+ * RPOP. Not included for `PRIVATE_OFFER_VIEW_BASIC`.
+ * @type \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\SingleProductOffer\Feature[] $features
+ * Optional. The custom product features to display for this offer.
+ * Feature `display_name` values must be unique to publish the offer.
+ * The set of features specified here should generally include all features
+ * included in the base service level, with optionally customized values,
+ * but is not required to match exactly and may include additional features.
+ * @type \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\SingleProductOffer\Installment[] $effective_installment_timeline
+ * Output only. The effective installment timeline of the offer.
+ * Not included for `PRIVATE_OFFER_VIEW_BASIC`.
+ * Included for `PRIVATE_OFFER_VIEW_FULL` if all necessary information is
+ * available to generate the timeline, and if the offer has
+ * 'standard_interval_price' of 'MONTHLY_PRORATED', 'MONTHLY_NOT_PRORATED',
+ * 'QUARTERLY_NOT_PRORATED', or 'YEARLY_NOT_PRORATED'.
+ * @type \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\SingleProductOffer\ContractValue $contract_value
+ * Output only. Contract value of the offer.
+ * Not included for `PRIVATE_OFFER_VIEW_BASIC`.
+ * @type \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\SingleProductOffer\RevenueShare $revenue_share
+ * Output only. Revenue share information for this Private Offer.
+ * Not included for `PRIVATE_OFFER_VIEW_BASIC`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\PrivateOffer::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Optional. An existing private offer that will be superseded by this
+ * offer. Unless the private offer is for a product type that supports
+ * [multiple active
+ * orders](https://cloud.google.com/marketplace/docs/partners/offers/multiple-offers),
+ * an amendment private offer must be transacted if and only if the
+ * destination customer billing account already contains an active order
+ * for the same product. The offer to be superseded must be the offer
+ * associated with an active order.
+ * Amendments generally fall into one of two scenarios:
+ * 1. **Active Order / Ended Offer**: The term of the amended offer has
+ * ended but it is still associated with an active order. The new
+ * offer must amend the ended private offer.
+ * 2. **Active Order / Active Offer**: The term of the amended offer is
+ * still active and the associated order is active. Similar to above,
+ * the new offer must amend the currently active offer (unless
+ * "multiple active orders" are supported).
+ * If this is set, then the `base_standard_offer` parent service must
+ * match the parent service of the `base_standard_offer` in the
+ * `amended_private_offer`.
+ * **Active Term Restrictions**:
+ * If the term of the amended private offer has *NOT* ended, then the
+ * following compatibility rules apply:
+ * * **Price Model Compatibility**:
+ * * Flat Fee (with or without usage) offers can amend Flat Fee
+ * offers.
+ * * Usage-only or CUD offers can amend usage-only offers.
+ * * Commitment-based offers must amend offers of the same price
+ * model subtype (e.g., "additional usage at list price" vs "all
+ * usage discounted").
+ * * **Billing Frequency Compatibility**: Determined by
+ * `standard_interval` or `custom_interval_price`.
+ * * If the amended offer has a custom billing frequency, the new
+ * offer must also have a custom frequency.
+ * * If the amended offer has a standard frequency (Monthly,
+ * Quarterly, or Yearly), the new offer must maintain the same
+ * frequency or transition to a custom frequency.
+ * * Switching between different standard frequencies (e.g., Monthly
+ * to Quarterly) is not supported.
+ * * For Monthly frequency, switching between `MONTHLY_PRORATED`
+ * and `MONTHLY_NOT_PRORATED` is supported, unless the offer's
+ * `term.end_policy` is `MATCH_AMENDED_OFFER`.
+ * * For usage-only offers, there are no billing frequency
+ * restrictions.
+ * Other criteria for offer amendment are detailed elsewhere.
+ *
+ * Generated from protobuf field string amended_private_offer = 3 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getAmendedPrivateOffer()
+ {
+ return $this->readOneof(3);
+ }
+
+ public function hasAmendedPrivateOffer()
+ {
+ return $this->hasOneof(3);
+ }
+
+ /**
+ * Optional. An existing private offer that will be superseded by this
+ * offer. Unless the private offer is for a product type that supports
+ * [multiple active
+ * orders](https://cloud.google.com/marketplace/docs/partners/offers/multiple-offers),
+ * an amendment private offer must be transacted if and only if the
+ * destination customer billing account already contains an active order
+ * for the same product. The offer to be superseded must be the offer
+ * associated with an active order.
+ * Amendments generally fall into one of two scenarios:
+ * 1. **Active Order / Ended Offer**: The term of the amended offer has
+ * ended but it is still associated with an active order. The new
+ * offer must amend the ended private offer.
+ * 2. **Active Order / Active Offer**: The term of the amended offer is
+ * still active and the associated order is active. Similar to above,
+ * the new offer must amend the currently active offer (unless
+ * "multiple active orders" are supported).
+ * If this is set, then the `base_standard_offer` parent service must
+ * match the parent service of the `base_standard_offer` in the
+ * `amended_private_offer`.
+ * **Active Term Restrictions**:
+ * If the term of the amended private offer has *NOT* ended, then the
+ * following compatibility rules apply:
+ * * **Price Model Compatibility**:
+ * * Flat Fee (with or without usage) offers can amend Flat Fee
+ * offers.
+ * * Usage-only or CUD offers can amend usage-only offers.
+ * * Commitment-based offers must amend offers of the same price
+ * model subtype (e.g., "additional usage at list price" vs "all
+ * usage discounted").
+ * * **Billing Frequency Compatibility**: Determined by
+ * `standard_interval` or `custom_interval_price`.
+ * * If the amended offer has a custom billing frequency, the new
+ * offer must also have a custom frequency.
+ * * If the amended offer has a standard frequency (Monthly,
+ * Quarterly, or Yearly), the new offer must maintain the same
+ * frequency or transition to a custom frequency.
+ * * Switching between different standard frequencies (e.g., Monthly
+ * to Quarterly) is not supported.
+ * * For Monthly frequency, switching between `MONTHLY_PRORATED`
+ * and `MONTHLY_NOT_PRORATED` is supported, unless the offer's
+ * `term.end_policy` is `MATCH_AMENDED_OFFER`.
+ * * For usage-only offers, there are no billing frequency
+ * restrictions.
+ * Other criteria for offer amendment are detailed elsewhere.
+ *
+ * Generated from protobuf field string amended_private_offer = 3 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setAmendedPrivateOffer($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->writeOneof(3, $var);
+
+ return $this;
+ }
+
+ /**
+ * Optional. An existing standard offer that will be superseded by this
+ * offer. An amendment private offer must be transacted if the destination
+ * customer billing account already contains an active order for the same
+ * product, and otherwise cannot be transacted. The offer to be superseded
+ * must be the offer associated with the active order.
+ * If this is set, then the `base_standard_offer` must contain the same
+ * parent service as the parent service of the `amended_standard_offer`.
+ * The price model of this offer must be compatible with the price model
+ * of the `amended_standard_offer`:
+ * * Flat Fee, or Flat Fee with usage offers can amend Flat Fee or Flat
+ * Fee with usage standard offers.
+ * * Usage-only offers, or CUD offers can amend usage-only standard
+ * offers.
+ * Other criteria for offer amendment are detailed elsewhere.
+ *
+ * Generated from protobuf field string amended_standard_offer = 4 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getAmendedStandardOffer()
+ {
+ return $this->readOneof(4);
+ }
+
+ public function hasAmendedStandardOffer()
+ {
+ return $this->hasOneof(4);
+ }
+
+ /**
+ * Optional. An existing standard offer that will be superseded by this
+ * offer. An amendment private offer must be transacted if the destination
+ * customer billing account already contains an active order for the same
+ * product, and otherwise cannot be transacted. The offer to be superseded
+ * must be the offer associated with the active order.
+ * If this is set, then the `base_standard_offer` must contain the same
+ * parent service as the parent service of the `amended_standard_offer`.
+ * The price model of this offer must be compatible with the price model
+ * of the `amended_standard_offer`:
+ * * Flat Fee, or Flat Fee with usage offers can amend Flat Fee or Flat
+ * Fee with usage standard offers.
+ * * Usage-only offers, or CUD offers can amend usage-only standard
+ * offers.
+ * Other criteria for offer amendment are detailed elsewhere.
+ *
+ * Generated from protobuf field string amended_standard_offer = 4 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setAmendedStandardOffer($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->writeOneof(4, $var);
+
+ return $this;
+ }
+
+ /**
+ * Optional. Price configurations for offers with standard intervals.
+ * A price must be set when publishing the offer.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer.StandardIntervalPrice standard_interval_price = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\SingleProductOffer\StandardIntervalPrice|null
+ */
+ public function getStandardIntervalPrice()
+ {
+ return $this->readOneof(5);
+ }
+
+ public function hasStandardIntervalPrice()
+ {
+ return $this->hasOneof(5);
+ }
+
+ /**
+ * Optional. Price configurations for offers with standard intervals.
+ * A price must be set when publishing the offer.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer.StandardIntervalPrice standard_interval_price = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\SingleProductOffer\StandardIntervalPrice $var
+ * @return $this
+ */
+ public function setStandardIntervalPrice($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\SingleProductOffer\StandardIntervalPrice::class);
+ $this->writeOneof(5, $var);
+
+ return $this;
+ }
+
+ /**
+ * Optional. Price configurations for offers with custom intervals.
+ * Custom interval corresponds to "custom billing frequency",
+ * see
+ * https://docs.cloud.google.com/marketplace/docs/partners/offers/select-payment-schedule.
+ * A price must be set when publishing the offer.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer.CustomIntervalPrice custom_interval_price = 6 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\SingleProductOffer\CustomIntervalPrice|null
+ */
+ public function getCustomIntervalPrice()
+ {
+ return $this->readOneof(6);
+ }
+
+ public function hasCustomIntervalPrice()
+ {
+ return $this->hasOneof(6);
+ }
+
+ /**
+ * Optional. Price configurations for offers with custom intervals.
+ * Custom interval corresponds to "custom billing frequency",
+ * see
+ * https://docs.cloud.google.com/marketplace/docs/partners/offers/select-payment-schedule.
+ * A price must be set when publishing the offer.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer.CustomIntervalPrice custom_interval_price = 6 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\SingleProductOffer\CustomIntervalPrice $var
+ * @return $this
+ */
+ public function setCustomIntervalPrice($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\SingleProductOffer\CustomIntervalPrice::class);
+ $this->writeOneof(6, $var);
+
+ return $this;
+ }
+
+ /**
+ * Optional. The StandardOffer this PrivateOffer is based on.
+ * Must be in the same project as the private offer, and must be effective
+ * at the time of publishing. Must be present to publish the offer.
+ * Format:
+ * projects/{project}/locations/{location}/services/{service}/standardOffers/{standard_offer}
+ *
+ * Generated from protobuf field string base_standard_offer = 1 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getBaseStandardOffer()
+ {
+ return $this->base_standard_offer;
+ }
+
+ /**
+ * Optional. The StandardOffer this PrivateOffer is based on.
+ * Must be in the same project as the private offer, and must be effective
+ * at the time of publishing. Must be present to publish the offer.
+ * Format:
+ * projects/{project}/locations/{location}/services/{service}/standardOffers/{standard_offer}
+ *
+ * Generated from protobuf field string base_standard_offer = 1 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setBaseStandardOffer($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->base_standard_offer = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The service level (also known as the 'plan') of the base
+ * standard offer. The value is populated at publish time from the base
+ * standard offer.
+ *
+ * Generated from protobuf field string service_level = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getServiceLevel()
+ {
+ return $this->service_level;
+ }
+
+ /**
+ * Output only. The service level (also known as the 'plan') of the base
+ * standard offer. The value is populated at publish time from the base
+ * standard offer.
+ *
+ * Generated from protobuf field string service_level = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setServiceLevel($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->service_level = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Present for offers created by a reseller from a reseller
+ * private offer plan (RPOP). When set, contains the ID of the originating
+ * RPOP. Not included for `PRIVATE_OFFER_VIEW_BASIC`.
+ *
+ * Generated from protobuf field string reseller_private_offer_plan_id = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getResellerPrivateOfferPlanId()
+ {
+ return $this->reseller_private_offer_plan_id;
+ }
+
+ /**
+ * Output only. Present for offers created by a reseller from a reseller
+ * private offer plan (RPOP). When set, contains the ID of the originating
+ * RPOP. Not included for `PRIVATE_OFFER_VIEW_BASIC`.
+ *
+ * Generated from protobuf field string reseller_private_offer_plan_id = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setResellerPrivateOfferPlanId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->reseller_private_offer_plan_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The custom product features to display for this offer.
+ * Feature `display_name` values must be unique to publish the offer.
+ * The set of features specified here should generally include all features
+ * included in the base service level, with optionally customized values,
+ * but is not required to match exactly and may include additional features.
+ *
+ * Generated from protobuf field repeated .google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer.Feature features = 8 [(.google.api.field_behavior) = OPTIONAL];
+ * @return RepeatedField<\Google\Cloud\Commerceproducer\V1beta\PrivateOffer\SingleProductOffer\Feature>
+ */
+ public function getFeatures()
+ {
+ return $this->features;
+ }
+
+ /**
+ * Optional. The custom product features to display for this offer.
+ * Feature `display_name` values must be unique to publish the offer.
+ * The set of features specified here should generally include all features
+ * included in the base service level, with optionally customized values,
+ * but is not required to match exactly and may include additional features.
+ *
+ * Generated from protobuf field repeated .google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer.Feature features = 8 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\SingleProductOffer\Feature[] $var
+ * @return $this
+ */
+ public function setFeatures($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\SingleProductOffer\Feature::class);
+ $this->features = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The effective installment timeline of the offer.
+ * Not included for `PRIVATE_OFFER_VIEW_BASIC`.
+ * Included for `PRIVATE_OFFER_VIEW_FULL` if all necessary information is
+ * available to generate the timeline, and if the offer has
+ * 'standard_interval_price' of 'MONTHLY_PRORATED', 'MONTHLY_NOT_PRORATED',
+ * 'QUARTERLY_NOT_PRORATED', or 'YEARLY_NOT_PRORATED'.
+ *
+ * Generated from protobuf field repeated .google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer.Installment effective_installment_timeline = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return RepeatedField<\Google\Cloud\Commerceproducer\V1beta\PrivateOffer\SingleProductOffer\Installment>
+ */
+ public function getEffectiveInstallmentTimeline()
+ {
+ return $this->effective_installment_timeline;
+ }
+
+ /**
+ * Output only. The effective installment timeline of the offer.
+ * Not included for `PRIVATE_OFFER_VIEW_BASIC`.
+ * Included for `PRIVATE_OFFER_VIEW_FULL` if all necessary information is
+ * available to generate the timeline, and if the offer has
+ * 'standard_interval_price' of 'MONTHLY_PRORATED', 'MONTHLY_NOT_PRORATED',
+ * 'QUARTERLY_NOT_PRORATED', or 'YEARLY_NOT_PRORATED'.
+ *
+ * Generated from protobuf field repeated .google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer.Installment effective_installment_timeline = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\SingleProductOffer\Installment[] $var
+ * @return $this
+ */
+ public function setEffectiveInstallmentTimeline($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\SingleProductOffer\Installment::class);
+ $this->effective_installment_timeline = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Contract value of the offer.
+ * Not included for `PRIVATE_OFFER_VIEW_BASIC`.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer.ContractValue contract_value = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\SingleProductOffer\ContractValue|null
+ */
+ public function getContractValue()
+ {
+ return $this->contract_value;
+ }
+
+ public function hasContractValue()
+ {
+ return isset($this->contract_value);
+ }
+
+ public function clearContractValue()
+ {
+ unset($this->contract_value);
+ }
+
+ /**
+ * Output only. Contract value of the offer.
+ * Not included for `PRIVATE_OFFER_VIEW_BASIC`.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer.ContractValue contract_value = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\SingleProductOffer\ContractValue $var
+ * @return $this
+ */
+ public function setContractValue($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\SingleProductOffer\ContractValue::class);
+ $this->contract_value = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Revenue share information for this Private Offer.
+ * Not included for `PRIVATE_OFFER_VIEW_BASIC`.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer.RevenueShare revenue_share = 12 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\SingleProductOffer\RevenueShare|null
+ */
+ public function getRevenueShare()
+ {
+ return $this->revenue_share;
+ }
+
+ public function hasRevenueShare()
+ {
+ return isset($this->revenue_share);
+ }
+
+ public function clearRevenueShare()
+ {
+ unset($this->revenue_share);
+ }
+
+ /**
+ * Output only. Revenue share information for this Private Offer.
+ * Not included for `PRIVATE_OFFER_VIEW_BASIC`.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer.RevenueShare revenue_share = 12 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\SingleProductOffer\RevenueShare $var
+ * @return $this
+ */
+ public function setRevenueShare($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\SingleProductOffer\RevenueShare::class);
+ $this->revenue_share = $var;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getAmendedOffer()
+ {
+ return $this->whichOneof("amended_offer");
+ }
+
+ /**
+ * @return string
+ */
+ public function getPrice()
+ {
+ return $this->whichOneof("price");
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/PrivateOffer/SingleProductOffer/ContractValue.php b/Commerceproducer/src/V1beta/PrivateOffer/SingleProductOffer/ContractValue.php
new file mode 100644
index 00000000000..0909de1a41c
--- /dev/null
+++ b/Commerceproducer/src/V1beta/PrivateOffer/SingleProductOffer/ContractValue.php
@@ -0,0 +1,97 @@
+google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer.ContractValue
+ */
+class ContractValue extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The total contract value of the offer.
+ * This will be set for all non-draft private offers, as long as
+ * 'PRIVATE_OFFER_VIEW_FULL' is requested. For DRAFT private offers,
+ * this will be populated only when the end user's billing account is
+ * set and when the pricing and term configuration is sufficiently
+ * complete to allow for a calculation.
+ *
+ * Generated from protobuf field .google.type.Money total_contract_value = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $total_contract_value = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Type\Money $total_contract_value
+ * Output only. The total contract value of the offer.
+ * This will be set for all non-draft private offers, as long as
+ * 'PRIVATE_OFFER_VIEW_FULL' is requested. For DRAFT private offers,
+ * this will be populated only when the end user's billing account is
+ * set and when the pricing and term configuration is sufficiently
+ * complete to allow for a calculation.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\PrivateOffer::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The total contract value of the offer.
+ * This will be set for all non-draft private offers, as long as
+ * 'PRIVATE_OFFER_VIEW_FULL' is requested. For DRAFT private offers,
+ * this will be populated only when the end user's billing account is
+ * set and when the pricing and term configuration is sufficiently
+ * complete to allow for a calculation.
+ *
+ * Generated from protobuf field .google.type.Money total_contract_value = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Type\Money|null
+ */
+ public function getTotalContractValue()
+ {
+ return $this->total_contract_value;
+ }
+
+ public function hasTotalContractValue()
+ {
+ return isset($this->total_contract_value);
+ }
+
+ public function clearTotalContractValue()
+ {
+ unset($this->total_contract_value);
+ }
+
+ /**
+ * Output only. The total contract value of the offer.
+ * This will be set for all non-draft private offers, as long as
+ * 'PRIVATE_OFFER_VIEW_FULL' is requested. For DRAFT private offers,
+ * this will be populated only when the end user's billing account is
+ * set and when the pricing and term configuration is sufficiently
+ * complete to allow for a calculation.
+ *
+ * Generated from protobuf field .google.type.Money total_contract_value = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Type\Money $var
+ * @return $this
+ */
+ public function setTotalContractValue($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Type\Money::class);
+ $this->total_contract_value = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/PrivateOffer/SingleProductOffer/CustomIntervalPrice.php b/Commerceproducer/src/V1beta/PrivateOffer/SingleProductOffer/CustomIntervalPrice.php
new file mode 100644
index 00000000000..adbeaad524b
--- /dev/null
+++ b/Commerceproducer/src/V1beta/PrivateOffer/SingleProductOffer/CustomIntervalPrice.php
@@ -0,0 +1,83 @@
+google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer.CustomIntervalPrice
+ */
+class CustomIntervalPrice extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Optional. The installments that make up the installment timeline.
+ * All installments must have the same form of price model (e.g.
+ * all commitment, or all flat fee). A subscription must be present
+ * under the price model for every installment.
+ * Must contain at least one installment to publish the offer.
+ *
+ * Generated from protobuf field repeated .google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer.Installment installments = 1 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ private $installments;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\SingleProductOffer\Installment[] $installments
+ * Optional. The installments that make up the installment timeline.
+ * All installments must have the same form of price model (e.g.
+ * all commitment, or all flat fee). A subscription must be present
+ * under the price model for every installment.
+ * Must contain at least one installment to publish the offer.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\PrivateOffer::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Optional. The installments that make up the installment timeline.
+ * All installments must have the same form of price model (e.g.
+ * all commitment, or all flat fee). A subscription must be present
+ * under the price model for every installment.
+ * Must contain at least one installment to publish the offer.
+ *
+ * Generated from protobuf field repeated .google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer.Installment installments = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @return RepeatedField<\Google\Cloud\Commerceproducer\V1beta\PrivateOffer\SingleProductOffer\Installment>
+ */
+ public function getInstallments()
+ {
+ return $this->installments;
+ }
+
+ /**
+ * Optional. The installments that make up the installment timeline.
+ * All installments must have the same form of price model (e.g.
+ * all commitment, or all flat fee). A subscription must be present
+ * under the price model for every installment.
+ * Must contain at least one installment to publish the offer.
+ *
+ * Generated from protobuf field repeated .google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer.Installment installments = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\SingleProductOffer\Installment[] $var
+ * @return $this
+ */
+ public function setInstallments($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\SingleProductOffer\Installment::class);
+ $this->installments = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/PrivateOffer/SingleProductOffer/Feature.php b/Commerceproducer/src/V1beta/PrivateOffer/SingleProductOffer/Feature.php
new file mode 100644
index 00000000000..4cab304d3ac
--- /dev/null
+++ b/Commerceproducer/src/V1beta/PrivateOffer/SingleProductOffer/Feature.php
@@ -0,0 +1,150 @@
+google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer.Feature
+ */
+class Feature extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Optional. Human readable display text characterizing the feature.
+ * Should be sufficiently detailed to identify the feature, allowing
+ * features to be correlated across separate offers and service levels.
+ * Must be non-empty to publish the offer.
+ * The maximum allowed length is 128 characters.
+ * Allows characters from the following Unicode Property Classes:
+ * Letters, Numbers, Punctuation, Symbols, and Separators
+ *
+ * Generated from protobuf field string display_name = 1 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $display_name = '';
+ /**
+ * Optional. Human readable display text reflecting the value of the
+ * feature. Used for variable features not captured by the display_name
+ * alone. The maximum allowed length is 3000 characters. Allows characters
+ * from the following Unicode Property Classes: Letters, Numbers,
+ * Punctuation, Symbols, and Separators
+ *
+ * Generated from protobuf field string value = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $value = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $display_name
+ * Optional. Human readable display text characterizing the feature.
+ * Should be sufficiently detailed to identify the feature, allowing
+ * features to be correlated across separate offers and service levels.
+ * Must be non-empty to publish the offer.
+ * The maximum allowed length is 128 characters.
+ * Allows characters from the following Unicode Property Classes:
+ * Letters, Numbers, Punctuation, Symbols, and Separators
+ * @type string $value
+ * Optional. Human readable display text reflecting the value of the
+ * feature. Used for variable features not captured by the display_name
+ * alone. The maximum allowed length is 3000 characters. Allows characters
+ * from the following Unicode Property Classes: Letters, Numbers,
+ * Punctuation, Symbols, and Separators
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\PrivateOffer::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Optional. Human readable display text characterizing the feature.
+ * Should be sufficiently detailed to identify the feature, allowing
+ * features to be correlated across separate offers and service levels.
+ * Must be non-empty to publish the offer.
+ * The maximum allowed length is 128 characters.
+ * Allows characters from the following Unicode Property Classes:
+ * Letters, Numbers, Punctuation, Symbols, and Separators
+ *
+ * Generated from protobuf field string display_name = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getDisplayName()
+ {
+ return $this->display_name;
+ }
+
+ /**
+ * Optional. Human readable display text characterizing the feature.
+ * Should be sufficiently detailed to identify the feature, allowing
+ * features to be correlated across separate offers and service levels.
+ * Must be non-empty to publish the offer.
+ * The maximum allowed length is 128 characters.
+ * Allows characters from the following Unicode Property Classes:
+ * Letters, Numbers, Punctuation, Symbols, and Separators
+ *
+ * Generated from protobuf field string display_name = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setDisplayName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->display_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Human readable display text reflecting the value of the
+ * feature. Used for variable features not captured by the display_name
+ * alone. The maximum allowed length is 3000 characters. Allows characters
+ * from the following Unicode Property Classes: Letters, Numbers,
+ * Punctuation, Symbols, and Separators
+ *
+ * Generated from protobuf field string value = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getValue()
+ {
+ return $this->value;
+ }
+
+ /**
+ * Optional. Human readable display text reflecting the value of the
+ * feature. Used for variable features not captured by the display_name
+ * alone. The maximum allowed length is 3000 characters. Allows characters
+ * from the following Unicode Property Classes: Letters, Numbers,
+ * Punctuation, Symbols, and Separators
+ *
+ * Generated from protobuf field string value = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setValue($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->value = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/PrivateOffer/SingleProductOffer/Installment.php b/Commerceproducer/src/V1beta/PrivateOffer/SingleProductOffer/Installment.php
new file mode 100644
index 00000000000..890d4c15e1e
--- /dev/null
+++ b/Commerceproducer/src/V1beta/PrivateOffer/SingleProductOffer/Installment.php
@@ -0,0 +1,193 @@
+google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer.Installment
+ */
+class Installment extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Optional. The start time of the installment.
+ * Each installment must have a unique start time with one exception:
+ * When the `term.start_policy` of the offer's term is `IMMEDIATE`,
+ * the `start_time` of the first installment must be unset.
+ * The actual start time is not recorded in the offer and instead is
+ * determined by the time the resulting order became active.
+ * When the `term.start_policy` of the offer's term is
+ * `SCHEDULED_START_TIME`, then the first installment's `start_time` must
+ * match `term.scheduled_start_time`.
+ * If the `term.end_policy` of the offer's term is `SCHEDULED_END_TIME`,
+ * then installment `start_time` must be before `term.scheduled_end_time`.
+ * If it's `AFTER_DURATION`, then installment `start_time` must be before
+ * the time calculated by adding the `term.duration_months` to
+ * the start time of the offer.
+ * The `start_time` of the installments cannot be before the
+ * `accept_deadline_time` of the offer.
+ * Installment start times must be in strictly increasing chronological
+ * order.
+ *
+ * Generated from protobuf field .google.type.DateTime start_time = 1 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $start_time = null;
+ /**
+ * Optional. The price model of the installment.
+ * All installments must have the same form of price model.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer.PriceModel price_model = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $price_model = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Type\DateTime $start_time
+ * Optional. The start time of the installment.
+ * Each installment must have a unique start time with one exception:
+ * When the `term.start_policy` of the offer's term is `IMMEDIATE`,
+ * the `start_time` of the first installment must be unset.
+ * The actual start time is not recorded in the offer and instead is
+ * determined by the time the resulting order became active.
+ * When the `term.start_policy` of the offer's term is
+ * `SCHEDULED_START_TIME`, then the first installment's `start_time` must
+ * match `term.scheduled_start_time`.
+ * If the `term.end_policy` of the offer's term is `SCHEDULED_END_TIME`,
+ * then installment `start_time` must be before `term.scheduled_end_time`.
+ * If it's `AFTER_DURATION`, then installment `start_time` must be before
+ * the time calculated by adding the `term.duration_months` to
+ * the start time of the offer.
+ * The `start_time` of the installments cannot be before the
+ * `accept_deadline_time` of the offer.
+ * Installment start times must be in strictly increasing chronological
+ * order.
+ * @type \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\SingleProductOffer\PriceModel $price_model
+ * Optional. The price model of the installment.
+ * All installments must have the same form of price model.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\PrivateOffer::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Optional. The start time of the installment.
+ * Each installment must have a unique start time with one exception:
+ * When the `term.start_policy` of the offer's term is `IMMEDIATE`,
+ * the `start_time` of the first installment must be unset.
+ * The actual start time is not recorded in the offer and instead is
+ * determined by the time the resulting order became active.
+ * When the `term.start_policy` of the offer's term is
+ * `SCHEDULED_START_TIME`, then the first installment's `start_time` must
+ * match `term.scheduled_start_time`.
+ * If the `term.end_policy` of the offer's term is `SCHEDULED_END_TIME`,
+ * then installment `start_time` must be before `term.scheduled_end_time`.
+ * If it's `AFTER_DURATION`, then installment `start_time` must be before
+ * the time calculated by adding the `term.duration_months` to
+ * the start time of the offer.
+ * The `start_time` of the installments cannot be before the
+ * `accept_deadline_time` of the offer.
+ * Installment start times must be in strictly increasing chronological
+ * order.
+ *
+ * Generated from protobuf field .google.type.DateTime start_time = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Type\DateTime|null
+ */
+ public function getStartTime()
+ {
+ return $this->start_time;
+ }
+
+ public function hasStartTime()
+ {
+ return isset($this->start_time);
+ }
+
+ public function clearStartTime()
+ {
+ unset($this->start_time);
+ }
+
+ /**
+ * Optional. The start time of the installment.
+ * Each installment must have a unique start time with one exception:
+ * When the `term.start_policy` of the offer's term is `IMMEDIATE`,
+ * the `start_time` of the first installment must be unset.
+ * The actual start time is not recorded in the offer and instead is
+ * determined by the time the resulting order became active.
+ * When the `term.start_policy` of the offer's term is
+ * `SCHEDULED_START_TIME`, then the first installment's `start_time` must
+ * match `term.scheduled_start_time`.
+ * If the `term.end_policy` of the offer's term is `SCHEDULED_END_TIME`,
+ * then installment `start_time` must be before `term.scheduled_end_time`.
+ * If it's `AFTER_DURATION`, then installment `start_time` must be before
+ * the time calculated by adding the `term.duration_months` to
+ * the start time of the offer.
+ * The `start_time` of the installments cannot be before the
+ * `accept_deadline_time` of the offer.
+ * Installment start times must be in strictly increasing chronological
+ * order.
+ *
+ * Generated from protobuf field .google.type.DateTime start_time = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Type\DateTime $var
+ * @return $this
+ */
+ public function setStartTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Type\DateTime::class);
+ $this->start_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The price model of the installment.
+ * All installments must have the same form of price model.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer.PriceModel price_model = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\SingleProductOffer\PriceModel|null
+ */
+ public function getPriceModel()
+ {
+ return $this->price_model;
+ }
+
+ public function hasPriceModel()
+ {
+ return isset($this->price_model);
+ }
+
+ public function clearPriceModel()
+ {
+ unset($this->price_model);
+ }
+
+ /**
+ * Optional. The price model of the installment.
+ * All installments must have the same form of price model.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer.PriceModel price_model = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\SingleProductOffer\PriceModel $var
+ * @return $this
+ */
+ public function setPriceModel($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\SingleProductOffer\PriceModel::class);
+ $this->price_model = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/PrivateOffer/SingleProductOffer/PriceModel.php b/Commerceproducer/src/V1beta/PrivateOffer/SingleProductOffer/PriceModel.php
new file mode 100644
index 00000000000..b3c595d81ba
--- /dev/null
+++ b/Commerceproducer/src/V1beta/PrivateOffer/SingleProductOffer/PriceModel.php
@@ -0,0 +1,199 @@
+google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer.PriceModel
+ */
+class PriceModel extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Optional. The price configurations for the usage part.
+ * If this field is set, the `Commitment.discount_percent` must be unset.
+ * A private offer can apply a discount to all usage or to a usage
+ * commitment, but not both.
+ * Must be unset when the base standard offer's price model includes no
+ * usage SKUs.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer.PriceModel.Usage usage = 1 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $usage = null;
+ protected $subscription;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\SingleProductOffer\PriceModel\FlatFee $flat_fee
+ * Optional. The price configurations for the flat fee subscription.
+ * Must be unset when the base standard offer's price model does not
+ * include subscription SKUs.
+ * @type \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\SingleProductOffer\PriceModel\Commitment $commitment
+ * Optional. The price configurations for the commitment based
+ * subscription. Must be unset when the base standard offer's price
+ * model includes subscription SKUs.
+ * @type \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\SingleProductOffer\PriceModel\Usage $usage
+ * Optional. The price configurations for the usage part.
+ * If this field is set, the `Commitment.discount_percent` must be unset.
+ * A private offer can apply a discount to all usage or to a usage
+ * commitment, but not both.
+ * Must be unset when the base standard offer's price model includes no
+ * usage SKUs.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\PrivateOffer::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Optional. The price configurations for the flat fee subscription.
+ * Must be unset when the base standard offer's price model does not
+ * include subscription SKUs.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer.PriceModel.FlatFee flat_fee = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\SingleProductOffer\PriceModel\FlatFee|null
+ */
+ public function getFlatFee()
+ {
+ return $this->readOneof(2);
+ }
+
+ public function hasFlatFee()
+ {
+ return $this->hasOneof(2);
+ }
+
+ /**
+ * Optional. The price configurations for the flat fee subscription.
+ * Must be unset when the base standard offer's price model does not
+ * include subscription SKUs.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer.PriceModel.FlatFee flat_fee = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\SingleProductOffer\PriceModel\FlatFee $var
+ * @return $this
+ */
+ public function setFlatFee($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\SingleProductOffer\PriceModel\FlatFee::class);
+ $this->writeOneof(2, $var);
+
+ return $this;
+ }
+
+ /**
+ * Optional. The price configurations for the commitment based
+ * subscription. Must be unset when the base standard offer's price
+ * model includes subscription SKUs.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer.PriceModel.Commitment commitment = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\SingleProductOffer\PriceModel\Commitment|null
+ */
+ public function getCommitment()
+ {
+ return $this->readOneof(3);
+ }
+
+ public function hasCommitment()
+ {
+ return $this->hasOneof(3);
+ }
+
+ /**
+ * Optional. The price configurations for the commitment based
+ * subscription. Must be unset when the base standard offer's price
+ * model includes subscription SKUs.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer.PriceModel.Commitment commitment = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\SingleProductOffer\PriceModel\Commitment $var
+ * @return $this
+ */
+ public function setCommitment($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\SingleProductOffer\PriceModel\Commitment::class);
+ $this->writeOneof(3, $var);
+
+ return $this;
+ }
+
+ /**
+ * Optional. The price configurations for the usage part.
+ * If this field is set, the `Commitment.discount_percent` must be unset.
+ * A private offer can apply a discount to all usage or to a usage
+ * commitment, but not both.
+ * Must be unset when the base standard offer's price model includes no
+ * usage SKUs.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer.PriceModel.Usage usage = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\SingleProductOffer\PriceModel\Usage|null
+ */
+ public function getUsage()
+ {
+ return $this->usage;
+ }
+
+ public function hasUsage()
+ {
+ return isset($this->usage);
+ }
+
+ public function clearUsage()
+ {
+ unset($this->usage);
+ }
+
+ /**
+ * Optional. The price configurations for the usage part.
+ * If this field is set, the `Commitment.discount_percent` must be unset.
+ * A private offer can apply a discount to all usage or to a usage
+ * commitment, but not both.
+ * Must be unset when the base standard offer's price model includes no
+ * usage SKUs.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer.PriceModel.Usage usage = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\SingleProductOffer\PriceModel\Usage $var
+ * @return $this
+ */
+ public function setUsage($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\SingleProductOffer\PriceModel\Usage::class);
+ $this->usage = $var;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getSubscription()
+ {
+ return $this->whichOneof("subscription");
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/PrivateOffer/SingleProductOffer/PriceModel/Commitment.php b/Commerceproducer/src/V1beta/PrivateOffer/SingleProductOffer/PriceModel/Commitment.php
new file mode 100644
index 00000000000..61d282a89c2
--- /dev/null
+++ b/Commerceproducer/src/V1beta/PrivateOffer/SingleProductOffer/PriceModel/Commitment.php
@@ -0,0 +1,331 @@
+google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer.PriceModel.Commitment
+ */
+class Commitment extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Optional. The commitment balance that the customer will receive.
+ * Value cannot be negative.
+ * The currency must be "USD" and precision is limited to cents.
+ * Must be present to publish the offer, if the parent message is set.
+ * The maximum allowed value is 1,000,000,000 USD.
+ * If the current offer amends a private offer where the term has not
+ * ended, and if the field
+ * `single_product_offer.standard_interval_price.price_model.commitment.commitment_amount`
+ * is set on both the current offer and the amended private offer, then
+ * the commitment amount must be equal or higher on the current offer,
+ * compared to the amended private offer.
+ *
+ * Generated from protobuf field .google.type.Money commitment_amount = 1 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $commitment_amount = null;
+ /**
+ * Optional. The discount percent on `commitment_amount`.
+ * For example, `10` means a discount of 10%. If the original
+ * `commitment_amount` is $100 then the discounted amount will be $90.
+ * The customer is charged $90 and receives $100 in credits.
+ * All reported usage will be charged at the standard price.
+ * If this field is set, the `price_model.usage` must be unset. A
+ * private offer can apply a discount to all usage or to a usage
+ * commitment, but not both.
+ * Must be between 0 and 100 inclusive, with precision up to 2 decimal
+ * places. If this field is set, then the allowed pattern for 'value'
+ * is `^([0-9]{1,2}(\\.\\d{1,2})?|100(\\.0{1,2})?)$`.
+ * Examples of valid values: "0", "100.0", "12.34", "40.0".
+ * Example of invalid values: ".3", "-1", "100.1", "12.345", "+12", "".
+ * Must be present to publish the offer.
+ *
+ * Generated from protobuf field .google.type.Decimal discount_percent = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $discount_percent = null;
+ /**
+ * Optional. Additional credit granted to the customer.
+ * Additional credits are only supported for custom interval offers.
+ * Equivalent behavior can be achieved for standard interval offers by
+ * varying the `commitment_amount` and `discount_percent`.
+ * Value cannot be negative.
+ * The currency must be "USD" and precision is limited to cents.
+ * The maximum allowed value is 1,000,000 USD.
+ *
+ * Generated from protobuf field .google.type.Money additional_credit = 3 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $additional_credit = null;
+ /**
+ * Optional. Whether to discard the previous credit balance when the
+ * associated installment starts. If not set, the previous credit
+ * balance will be rolled over to the current installment.
+ * If there are no previous installments, then the value of this field
+ * will not matter - since it has no effect when no credits exist.
+ *
+ * Generated from protobuf field bool discard_previous_credit_balance = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $discard_previous_credit_balance = false;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Type\Money $commitment_amount
+ * Optional. The commitment balance that the customer will receive.
+ * Value cannot be negative.
+ * The currency must be "USD" and precision is limited to cents.
+ * Must be present to publish the offer, if the parent message is set.
+ * The maximum allowed value is 1,000,000,000 USD.
+ * If the current offer amends a private offer where the term has not
+ * ended, and if the field
+ * `single_product_offer.standard_interval_price.price_model.commitment.commitment_amount`
+ * is set on both the current offer and the amended private offer, then
+ * the commitment amount must be equal or higher on the current offer,
+ * compared to the amended private offer.
+ * @type \Google\Type\Decimal $discount_percent
+ * Optional. The discount percent on `commitment_amount`.
+ * For example, `10` means a discount of 10%. If the original
+ * `commitment_amount` is $100 then the discounted amount will be $90.
+ * The customer is charged $90 and receives $100 in credits.
+ * All reported usage will be charged at the standard price.
+ * If this field is set, the `price_model.usage` must be unset. A
+ * private offer can apply a discount to all usage or to a usage
+ * commitment, but not both.
+ * Must be between 0 and 100 inclusive, with precision up to 2 decimal
+ * places. If this field is set, then the allowed pattern for 'value'
+ * is `^([0-9]{1,2}(\\.\\d{1,2})?|100(\\.0{1,2})?)$`.
+ * Examples of valid values: "0", "100.0", "12.34", "40.0".
+ * Example of invalid values: ".3", "-1", "100.1", "12.345", "+12", "".
+ * Must be present to publish the offer.
+ * @type \Google\Type\Money $additional_credit
+ * Optional. Additional credit granted to the customer.
+ * Additional credits are only supported for custom interval offers.
+ * Equivalent behavior can be achieved for standard interval offers by
+ * varying the `commitment_amount` and `discount_percent`.
+ * Value cannot be negative.
+ * The currency must be "USD" and precision is limited to cents.
+ * The maximum allowed value is 1,000,000 USD.
+ * @type bool $discard_previous_credit_balance
+ * Optional. Whether to discard the previous credit balance when the
+ * associated installment starts. If not set, the previous credit
+ * balance will be rolled over to the current installment.
+ * If there are no previous installments, then the value of this field
+ * will not matter - since it has no effect when no credits exist.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\PrivateOffer::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Optional. The commitment balance that the customer will receive.
+ * Value cannot be negative.
+ * The currency must be "USD" and precision is limited to cents.
+ * Must be present to publish the offer, if the parent message is set.
+ * The maximum allowed value is 1,000,000,000 USD.
+ * If the current offer amends a private offer where the term has not
+ * ended, and if the field
+ * `single_product_offer.standard_interval_price.price_model.commitment.commitment_amount`
+ * is set on both the current offer and the amended private offer, then
+ * the commitment amount must be equal or higher on the current offer,
+ * compared to the amended private offer.
+ *
+ * Generated from protobuf field .google.type.Money commitment_amount = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Type\Money|null
+ */
+ public function getCommitmentAmount()
+ {
+ return $this->commitment_amount;
+ }
+
+ public function hasCommitmentAmount()
+ {
+ return isset($this->commitment_amount);
+ }
+
+ public function clearCommitmentAmount()
+ {
+ unset($this->commitment_amount);
+ }
+
+ /**
+ * Optional. The commitment balance that the customer will receive.
+ * Value cannot be negative.
+ * The currency must be "USD" and precision is limited to cents.
+ * Must be present to publish the offer, if the parent message is set.
+ * The maximum allowed value is 1,000,000,000 USD.
+ * If the current offer amends a private offer where the term has not
+ * ended, and if the field
+ * `single_product_offer.standard_interval_price.price_model.commitment.commitment_amount`
+ * is set on both the current offer and the amended private offer, then
+ * the commitment amount must be equal or higher on the current offer,
+ * compared to the amended private offer.
+ *
+ * Generated from protobuf field .google.type.Money commitment_amount = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Type\Money $var
+ * @return $this
+ */
+ public function setCommitmentAmount($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Type\Money::class);
+ $this->commitment_amount = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The discount percent on `commitment_amount`.
+ * For example, `10` means a discount of 10%. If the original
+ * `commitment_amount` is $100 then the discounted amount will be $90.
+ * The customer is charged $90 and receives $100 in credits.
+ * All reported usage will be charged at the standard price.
+ * If this field is set, the `price_model.usage` must be unset. A
+ * private offer can apply a discount to all usage or to a usage
+ * commitment, but not both.
+ * Must be between 0 and 100 inclusive, with precision up to 2 decimal
+ * places. If this field is set, then the allowed pattern for 'value'
+ * is `^([0-9]{1,2}(\\.\\d{1,2})?|100(\\.0{1,2})?)$`.
+ * Examples of valid values: "0", "100.0", "12.34", "40.0".
+ * Example of invalid values: ".3", "-1", "100.1", "12.345", "+12", "".
+ * Must be present to publish the offer.
+ *
+ * Generated from protobuf field .google.type.Decimal discount_percent = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Type\Decimal|null
+ */
+ public function getDiscountPercent()
+ {
+ return $this->discount_percent;
+ }
+
+ public function hasDiscountPercent()
+ {
+ return isset($this->discount_percent);
+ }
+
+ public function clearDiscountPercent()
+ {
+ unset($this->discount_percent);
+ }
+
+ /**
+ * Optional. The discount percent on `commitment_amount`.
+ * For example, `10` means a discount of 10%. If the original
+ * `commitment_amount` is $100 then the discounted amount will be $90.
+ * The customer is charged $90 and receives $100 in credits.
+ * All reported usage will be charged at the standard price.
+ * If this field is set, the `price_model.usage` must be unset. A
+ * private offer can apply a discount to all usage or to a usage
+ * commitment, but not both.
+ * Must be between 0 and 100 inclusive, with precision up to 2 decimal
+ * places. If this field is set, then the allowed pattern for 'value'
+ * is `^([0-9]{1,2}(\\.\\d{1,2})?|100(\\.0{1,2})?)$`.
+ * Examples of valid values: "0", "100.0", "12.34", "40.0".
+ * Example of invalid values: ".3", "-1", "100.1", "12.345", "+12", "".
+ * Must be present to publish the offer.
+ *
+ * Generated from protobuf field .google.type.Decimal discount_percent = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Type\Decimal $var
+ * @return $this
+ */
+ public function setDiscountPercent($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Type\Decimal::class);
+ $this->discount_percent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Additional credit granted to the customer.
+ * Additional credits are only supported for custom interval offers.
+ * Equivalent behavior can be achieved for standard interval offers by
+ * varying the `commitment_amount` and `discount_percent`.
+ * Value cannot be negative.
+ * The currency must be "USD" and precision is limited to cents.
+ * The maximum allowed value is 1,000,000 USD.
+ *
+ * Generated from protobuf field .google.type.Money additional_credit = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Type\Money|null
+ */
+ public function getAdditionalCredit()
+ {
+ return $this->additional_credit;
+ }
+
+ public function hasAdditionalCredit()
+ {
+ return isset($this->additional_credit);
+ }
+
+ public function clearAdditionalCredit()
+ {
+ unset($this->additional_credit);
+ }
+
+ /**
+ * Optional. Additional credit granted to the customer.
+ * Additional credits are only supported for custom interval offers.
+ * Equivalent behavior can be achieved for standard interval offers by
+ * varying the `commitment_amount` and `discount_percent`.
+ * Value cannot be negative.
+ * The currency must be "USD" and precision is limited to cents.
+ * The maximum allowed value is 1,000,000 USD.
+ *
+ * Generated from protobuf field .google.type.Money additional_credit = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Type\Money $var
+ * @return $this
+ */
+ public function setAdditionalCredit($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Type\Money::class);
+ $this->additional_credit = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Whether to discard the previous credit balance when the
+ * associated installment starts. If not set, the previous credit
+ * balance will be rolled over to the current installment.
+ * If there are no previous installments, then the value of this field
+ * will not matter - since it has no effect when no credits exist.
+ *
+ * Generated from protobuf field bool discard_previous_credit_balance = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return bool
+ */
+ public function getDiscardPreviousCreditBalance()
+ {
+ return $this->discard_previous_credit_balance;
+ }
+
+ /**
+ * Optional. Whether to discard the previous credit balance when the
+ * associated installment starts. If not set, the previous credit
+ * balance will be rolled over to the current installment.
+ * If there are no previous installments, then the value of this field
+ * will not matter - since it has no effect when no credits exist.
+ *
+ * Generated from protobuf field bool discard_previous_credit_balance = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @param bool $var
+ * @return $this
+ */
+ public function setDiscardPreviousCreditBalance($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->discard_previous_credit_balance = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/PrivateOffer/SingleProductOffer/PriceModel/FlatFee.php b/Commerceproducer/src/V1beta/PrivateOffer/SingleProductOffer/PriceModel/FlatFee.php
new file mode 100644
index 00000000000..9da9b582d80
--- /dev/null
+++ b/Commerceproducer/src/V1beta/PrivateOffer/SingleProductOffer/PriceModel/FlatFee.php
@@ -0,0 +1,93 @@
+google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer.PriceModel.FlatFee
+ */
+class FlatFee extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Optional. Flat fee overriding the default flat fee in the base
+ * standard offer. Value cannot be negative. The currency must be "USD"
+ * and precision is limited to cents. Must be present to publish the
+ * offer, if the parent message is set. The maximum allowed value is
+ * 1,000,000,000 USD.
+ *
+ * Generated from protobuf field .google.type.Money flat_fee_override = 1 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $flat_fee_override = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Type\Money $flat_fee_override
+ * Optional. Flat fee overriding the default flat fee in the base
+ * standard offer. Value cannot be negative. The currency must be "USD"
+ * and precision is limited to cents. Must be present to publish the
+ * offer, if the parent message is set. The maximum allowed value is
+ * 1,000,000,000 USD.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\PrivateOffer::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Optional. Flat fee overriding the default flat fee in the base
+ * standard offer. Value cannot be negative. The currency must be "USD"
+ * and precision is limited to cents. Must be present to publish the
+ * offer, if the parent message is set. The maximum allowed value is
+ * 1,000,000,000 USD.
+ *
+ * Generated from protobuf field .google.type.Money flat_fee_override = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Type\Money|null
+ */
+ public function getFlatFeeOverride()
+ {
+ return $this->flat_fee_override;
+ }
+
+ public function hasFlatFeeOverride()
+ {
+ return isset($this->flat_fee_override);
+ }
+
+ public function clearFlatFeeOverride()
+ {
+ unset($this->flat_fee_override);
+ }
+
+ /**
+ * Optional. Flat fee overriding the default flat fee in the base
+ * standard offer. Value cannot be negative. The currency must be "USD"
+ * and precision is limited to cents. Must be present to publish the
+ * offer, if the parent message is set. The maximum allowed value is
+ * 1,000,000,000 USD.
+ *
+ * Generated from protobuf field .google.type.Money flat_fee_override = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Type\Money $var
+ * @return $this
+ */
+ public function setFlatFeeOverride($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Type\Money::class);
+ $this->flat_fee_override = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/PrivateOffer/SingleProductOffer/PriceModel/SkuDiscount.php b/Commerceproducer/src/V1beta/PrivateOffer/SingleProductOffer/PriceModel/SkuDiscount.php
new file mode 100644
index 00000000000..54c76db8cd3
--- /dev/null
+++ b/Commerceproducer/src/V1beta/PrivateOffer/SingleProductOffer/PriceModel/SkuDiscount.php
@@ -0,0 +1,219 @@
+google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer.PriceModel.SkuDiscount
+ */
+class SkuDiscount extends \Google\Protobuf\Internal\Message
+{
+ protected $target;
+ protected $discount;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $sku
+ * Optional. The name of a partner SKU from this API.
+ * Must refer to a SKU in the price model of the base standard offer.
+ * Inclusion in the base price model can occur either directly or
+ * indirectly via inclusion in an included SkuGroup.
+ * Currently, standard offer price models include only partner SKUs
+ * in the same project as the standard offer. This may change.
+ * Format:
+ * projects/{project}/locations/{location}/services/{service}/skus/{sku}
+ * @type string $cloud_billing_sku
+ * Optional. The name of a Google SKU from the Cloud Billing API.
+ * Used for partner products sold by Google, such as Premium Operating
+ * System Images sold for use in Compute Engine. This is not common.
+ * SKUs of this type are not present on this API and can instead be
+ * found on the Cloud Billing API or at https://cloud.google.com/skus.
+ * Must refer to a SKU in the price model of the base standard offer.
+ * Google SKUs are always referenced in standard offers via SkuGroups.
+ * Format: services/{service}/skus/{sku}
+ * @type \Google\Type\Decimal $discount_percent
+ * Optional. The discount percent for the SKU.
+ * For example, `10` means a discount of 10%. If the original SKU
+ * price is $100/hour then the discounted price will be $90/hour.
+ * Must be between 0 and 100 inclusive, with precision up to 2 decimal
+ * places. If this field is set, then the allowed pattern for 'value'
+ * is `^([0-9]{1,2}(\\.\\d{1,2})?|100(\\.0{1,2})?)$`.
+ * Examples of valid values: "0", "100.0", "12.34", "40.0".
+ * Example of invalid values: ".3", "-1", "100.1", "12.345", "+12",
+ * and "".
+ * Must be present to publish the offer.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\PrivateOffer::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Optional. The name of a partner SKU from this API.
+ * Must refer to a SKU in the price model of the base standard offer.
+ * Inclusion in the base price model can occur either directly or
+ * indirectly via inclusion in an included SkuGroup.
+ * Currently, standard offer price models include only partner SKUs
+ * in the same project as the standard offer. This may change.
+ * Format:
+ * projects/{project}/locations/{location}/services/{service}/skus/{sku}
+ *
+ * Generated from protobuf field string sku = 1 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getSku()
+ {
+ return $this->readOneof(1);
+ }
+
+ public function hasSku()
+ {
+ return $this->hasOneof(1);
+ }
+
+ /**
+ * Optional. The name of a partner SKU from this API.
+ * Must refer to a SKU in the price model of the base standard offer.
+ * Inclusion in the base price model can occur either directly or
+ * indirectly via inclusion in an included SkuGroup.
+ * Currently, standard offer price models include only partner SKUs
+ * in the same project as the standard offer. This may change.
+ * Format:
+ * projects/{project}/locations/{location}/services/{service}/skus/{sku}
+ *
+ * Generated from protobuf field string sku = 1 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setSku($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->writeOneof(1, $var);
+
+ return $this;
+ }
+
+ /**
+ * Optional. The name of a Google SKU from the Cloud Billing API.
+ * Used for partner products sold by Google, such as Premium Operating
+ * System Images sold for use in Compute Engine. This is not common.
+ * SKUs of this type are not present on this API and can instead be
+ * found on the Cloud Billing API or at https://cloud.google.com/skus.
+ * Must refer to a SKU in the price model of the base standard offer.
+ * Google SKUs are always referenced in standard offers via SkuGroups.
+ * Format: services/{service}/skus/{sku}
+ *
+ * Generated from protobuf field string cloud_billing_sku = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getCloudBillingSku()
+ {
+ return $this->readOneof(3);
+ }
+
+ public function hasCloudBillingSku()
+ {
+ return $this->hasOneof(3);
+ }
+
+ /**
+ * Optional. The name of a Google SKU from the Cloud Billing API.
+ * Used for partner products sold by Google, such as Premium Operating
+ * System Images sold for use in Compute Engine. This is not common.
+ * SKUs of this type are not present on this API and can instead be
+ * found on the Cloud Billing API or at https://cloud.google.com/skus.
+ * Must refer to a SKU in the price model of the base standard offer.
+ * Google SKUs are always referenced in standard offers via SkuGroups.
+ * Format: services/{service}/skus/{sku}
+ *
+ * Generated from protobuf field string cloud_billing_sku = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setCloudBillingSku($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->writeOneof(3, $var);
+
+ return $this;
+ }
+
+ /**
+ * Optional. The discount percent for the SKU.
+ * For example, `10` means a discount of 10%. If the original SKU
+ * price is $100/hour then the discounted price will be $90/hour.
+ * Must be between 0 and 100 inclusive, with precision up to 2 decimal
+ * places. If this field is set, then the allowed pattern for 'value'
+ * is `^([0-9]{1,2}(\\.\\d{1,2})?|100(\\.0{1,2})?)$`.
+ * Examples of valid values: "0", "100.0", "12.34", "40.0".
+ * Example of invalid values: ".3", "-1", "100.1", "12.345", "+12",
+ * and "".
+ * Must be present to publish the offer.
+ *
+ * Generated from protobuf field .google.type.Decimal discount_percent = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Type\Decimal|null
+ */
+ public function getDiscountPercent()
+ {
+ return $this->readOneof(2);
+ }
+
+ public function hasDiscountPercent()
+ {
+ return $this->hasOneof(2);
+ }
+
+ /**
+ * Optional. The discount percent for the SKU.
+ * For example, `10` means a discount of 10%. If the original SKU
+ * price is $100/hour then the discounted price will be $90/hour.
+ * Must be between 0 and 100 inclusive, with precision up to 2 decimal
+ * places. If this field is set, then the allowed pattern for 'value'
+ * is `^([0-9]{1,2}(\\.\\d{1,2})?|100(\\.0{1,2})?)$`.
+ * Examples of valid values: "0", "100.0", "12.34", "40.0".
+ * Example of invalid values: ".3", "-1", "100.1", "12.345", "+12",
+ * and "".
+ * Must be present to publish the offer.
+ *
+ * Generated from protobuf field .google.type.Decimal discount_percent = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Type\Decimal $var
+ * @return $this
+ */
+ public function setDiscountPercent($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Type\Decimal::class);
+ $this->writeOneof(2, $var);
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getTarget()
+ {
+ return $this->whichOneof("target");
+ }
+
+ /**
+ * @return string
+ */
+ public function getDiscount()
+ {
+ return $this->whichOneof("discount");
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/PrivateOffer/SingleProductOffer/PriceModel/Usage.php b/Commerceproducer/src/V1beta/PrivateOffer/SingleProductOffer/PriceModel/Usage.php
new file mode 100644
index 00000000000..8f4dea2dec0
--- /dev/null
+++ b/Commerceproducer/src/V1beta/PrivateOffer/SingleProductOffer/PriceModel/Usage.php
@@ -0,0 +1,139 @@
+google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer.PriceModel.Usage
+ */
+class Usage extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Optional. The default discount percent for usage SKUs.
+ * An unset default discount percent is equivalent to 0 (no discount).
+ * Must be between 0 and 100 inclusive, with precision up to 2 decimal
+ * places. If this field is set, then the allowed pattern for 'value'
+ * is `^([0-9]{1,2}(\\.\\d{1,2})?|100(\\.0{1,2})?)$`.
+ * Examples of valid values: "0", "100.0", "12.34", "40.0".
+ * Example of invalid values: ".3", "-1", "100.1", "12.345", "+12", "".
+ *
+ * Generated from protobuf field .google.type.Decimal default_discount_percent = 1 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $default_discount_percent = null;
+ /**
+ * Optional. The discounts for the specific SKUs that override the
+ * `default_discount_percent`.
+ *
+ * Generated from protobuf field repeated .google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer.PriceModel.SkuDiscount sku_discounts = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ private $sku_discounts;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Type\Decimal $default_discount_percent
+ * Optional. The default discount percent for usage SKUs.
+ * An unset default discount percent is equivalent to 0 (no discount).
+ * Must be between 0 and 100 inclusive, with precision up to 2 decimal
+ * places. If this field is set, then the allowed pattern for 'value'
+ * is `^([0-9]{1,2}(\\.\\d{1,2})?|100(\\.0{1,2})?)$`.
+ * Examples of valid values: "0", "100.0", "12.34", "40.0".
+ * Example of invalid values: ".3", "-1", "100.1", "12.345", "+12", "".
+ * @type \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\SingleProductOffer\PriceModel\SkuDiscount[] $sku_discounts
+ * Optional. The discounts for the specific SKUs that override the
+ * `default_discount_percent`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\PrivateOffer::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Optional. The default discount percent for usage SKUs.
+ * An unset default discount percent is equivalent to 0 (no discount).
+ * Must be between 0 and 100 inclusive, with precision up to 2 decimal
+ * places. If this field is set, then the allowed pattern for 'value'
+ * is `^([0-9]{1,2}(\\.\\d{1,2})?|100(\\.0{1,2})?)$`.
+ * Examples of valid values: "0", "100.0", "12.34", "40.0".
+ * Example of invalid values: ".3", "-1", "100.1", "12.345", "+12", "".
+ *
+ * Generated from protobuf field .google.type.Decimal default_discount_percent = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Type\Decimal|null
+ */
+ public function getDefaultDiscountPercent()
+ {
+ return $this->default_discount_percent;
+ }
+
+ public function hasDefaultDiscountPercent()
+ {
+ return isset($this->default_discount_percent);
+ }
+
+ public function clearDefaultDiscountPercent()
+ {
+ unset($this->default_discount_percent);
+ }
+
+ /**
+ * Optional. The default discount percent for usage SKUs.
+ * An unset default discount percent is equivalent to 0 (no discount).
+ * Must be between 0 and 100 inclusive, with precision up to 2 decimal
+ * places. If this field is set, then the allowed pattern for 'value'
+ * is `^([0-9]{1,2}(\\.\\d{1,2})?|100(\\.0{1,2})?)$`.
+ * Examples of valid values: "0", "100.0", "12.34", "40.0".
+ * Example of invalid values: ".3", "-1", "100.1", "12.345", "+12", "".
+ *
+ * Generated from protobuf field .google.type.Decimal default_discount_percent = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Type\Decimal $var
+ * @return $this
+ */
+ public function setDefaultDiscountPercent($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Type\Decimal::class);
+ $this->default_discount_percent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The discounts for the specific SKUs that override the
+ * `default_discount_percent`.
+ *
+ * Generated from protobuf field repeated .google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer.PriceModel.SkuDiscount sku_discounts = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return RepeatedField<\Google\Cloud\Commerceproducer\V1beta\PrivateOffer\SingleProductOffer\PriceModel\SkuDiscount>
+ */
+ public function getSkuDiscounts()
+ {
+ return $this->sku_discounts;
+ }
+
+ /**
+ * Optional. The discounts for the specific SKUs that override the
+ * `default_discount_percent`.
+ *
+ * Generated from protobuf field repeated .google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer.PriceModel.SkuDiscount sku_discounts = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\SingleProductOffer\PriceModel\SkuDiscount[] $var
+ * @return $this
+ */
+ public function setSkuDiscounts($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\SingleProductOffer\PriceModel\SkuDiscount::class);
+ $this->sku_discounts = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/PrivateOffer/SingleProductOffer/RevenueShare.php b/Commerceproducer/src/V1beta/PrivateOffer/SingleProductOffer/RevenueShare.php
new file mode 100644
index 00000000000..5643dffdcc2
--- /dev/null
+++ b/Commerceproducer/src/V1beta/PrivateOffer/SingleProductOffer/RevenueShare.php
@@ -0,0 +1,168 @@
+google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer.RevenueShare
+ */
+class RevenueShare extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The revenue share currently in effect.
+ * The range of the value is between 0 and 100. For example, 80
+ * means the Vendor's current term revenue share is 80%. The vendor
+ * will keep 80% of the revenue.
+ * .
+ *
+ * Generated from protobuf field .google.type.Decimal current_term_vendor_net_revenue_percent = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $current_term_vendor_net_revenue_percent = null;
+ /**
+ * Output only. The expected revenue share for the renewal term.
+ * Not included if the offer does not have renewal terms.
+ * The range of the value is between 0 and 100. For example, 80
+ * means the Vendor's current term revenue share is 80%. The vendor
+ * will keep 80% of the revenue after renewal.
+ * .
+ *
+ * Generated from protobuf field .google.type.Decimal renewal_term_vendor_net_revenue_percent = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $renewal_term_vendor_net_revenue_percent = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Type\Decimal $current_term_vendor_net_revenue_percent
+ * Output only. The revenue share currently in effect.
+ * The range of the value is between 0 and 100. For example, 80
+ * means the Vendor's current term revenue share is 80%. The vendor
+ * will keep 80% of the revenue.
+ * .
+ * @type \Google\Type\Decimal $renewal_term_vendor_net_revenue_percent
+ * Output only. The expected revenue share for the renewal term.
+ * Not included if the offer does not have renewal terms.
+ * The range of the value is between 0 and 100. For example, 80
+ * means the Vendor's current term revenue share is 80%. The vendor
+ * will keep 80% of the revenue after renewal.
+ * .
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\PrivateOffer::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The revenue share currently in effect.
+ * The range of the value is between 0 and 100. For example, 80
+ * means the Vendor's current term revenue share is 80%. The vendor
+ * will keep 80% of the revenue.
+ * .
+ *
+ * Generated from protobuf field .google.type.Decimal current_term_vendor_net_revenue_percent = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Type\Decimal|null
+ */
+ public function getCurrentTermVendorNetRevenuePercent()
+ {
+ return $this->current_term_vendor_net_revenue_percent;
+ }
+
+ public function hasCurrentTermVendorNetRevenuePercent()
+ {
+ return isset($this->current_term_vendor_net_revenue_percent);
+ }
+
+ public function clearCurrentTermVendorNetRevenuePercent()
+ {
+ unset($this->current_term_vendor_net_revenue_percent);
+ }
+
+ /**
+ * Output only. The revenue share currently in effect.
+ * The range of the value is between 0 and 100. For example, 80
+ * means the Vendor's current term revenue share is 80%. The vendor
+ * will keep 80% of the revenue.
+ * .
+ *
+ * Generated from protobuf field .google.type.Decimal current_term_vendor_net_revenue_percent = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Type\Decimal $var
+ * @return $this
+ */
+ public function setCurrentTermVendorNetRevenuePercent($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Type\Decimal::class);
+ $this->current_term_vendor_net_revenue_percent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The expected revenue share for the renewal term.
+ * Not included if the offer does not have renewal terms.
+ * The range of the value is between 0 and 100. For example, 80
+ * means the Vendor's current term revenue share is 80%. The vendor
+ * will keep 80% of the revenue after renewal.
+ * .
+ *
+ * Generated from protobuf field .google.type.Decimal renewal_term_vendor_net_revenue_percent = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Type\Decimal|null
+ */
+ public function getRenewalTermVendorNetRevenuePercent()
+ {
+ return $this->renewal_term_vendor_net_revenue_percent;
+ }
+
+ public function hasRenewalTermVendorNetRevenuePercent()
+ {
+ return isset($this->renewal_term_vendor_net_revenue_percent);
+ }
+
+ public function clearRenewalTermVendorNetRevenuePercent()
+ {
+ unset($this->renewal_term_vendor_net_revenue_percent);
+ }
+
+ /**
+ * Output only. The expected revenue share for the renewal term.
+ * Not included if the offer does not have renewal terms.
+ * The range of the value is between 0 and 100. For example, 80
+ * means the Vendor's current term revenue share is 80%. The vendor
+ * will keep 80% of the revenue after renewal.
+ * .
+ *
+ * Generated from protobuf field .google.type.Decimal renewal_term_vendor_net_revenue_percent = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Type\Decimal $var
+ * @return $this
+ */
+ public function setRenewalTermVendorNetRevenuePercent($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Type\Decimal::class);
+ $this->renewal_term_vendor_net_revenue_percent = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/PrivateOffer/SingleProductOffer/StandardIntervalPrice.php b/Commerceproducer/src/V1beta/PrivateOffer/SingleProductOffer/StandardIntervalPrice.php
new file mode 100644
index 00000000000..246e3456d5b
--- /dev/null
+++ b/Commerceproducer/src/V1beta/PrivateOffer/SingleProductOffer/StandardIntervalPrice.php
@@ -0,0 +1,119 @@
+google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer.StandardIntervalPrice
+ */
+class StandardIntervalPrice extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Optional. The standard interval of the offer.
+ * Must be present to publish unless the price model is usage-only.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer.StandardIntervalPrice.StandardInterval standard_interval = 1 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $standard_interval = 0;
+ /**
+ * Optional. The price model of the offer.
+ * Must be present to publish the offer.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer.PriceModel price_model = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $price_model = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $standard_interval
+ * Optional. The standard interval of the offer.
+ * Must be present to publish unless the price model is usage-only.
+ * @type \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\SingleProductOffer\PriceModel $price_model
+ * Optional. The price model of the offer.
+ * Must be present to publish the offer.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\PrivateOffer::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Optional. The standard interval of the offer.
+ * Must be present to publish unless the price model is usage-only.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer.StandardIntervalPrice.StandardInterval standard_interval = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @return int
+ */
+ public function getStandardInterval()
+ {
+ return $this->standard_interval;
+ }
+
+ /**
+ * Optional. The standard interval of the offer.
+ * Must be present to publish unless the price model is usage-only.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer.StandardIntervalPrice.StandardInterval standard_interval = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @param int $var
+ * @return $this
+ */
+ public function setStandardInterval($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\SingleProductOffer\StandardIntervalPrice\StandardInterval::class);
+ $this->standard_interval = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The price model of the offer.
+ * Must be present to publish the offer.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer.PriceModel price_model = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\SingleProductOffer\PriceModel|null
+ */
+ public function getPriceModel()
+ {
+ return $this->price_model;
+ }
+
+ public function hasPriceModel()
+ {
+ return isset($this->price_model);
+ }
+
+ public function clearPriceModel()
+ {
+ unset($this->price_model);
+ }
+
+ /**
+ * Optional. The price model of the offer.
+ * Must be present to publish the offer.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer.PriceModel price_model = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\SingleProductOffer\PriceModel $var
+ * @return $this
+ */
+ public function setPriceModel($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\SingleProductOffer\PriceModel::class);
+ $this->price_model = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/PrivateOffer/SingleProductOffer/StandardIntervalPrice/StandardInterval.php b/Commerceproducer/src/V1beta/PrivateOffer/SingleProductOffer/StandardIntervalPrice/StandardInterval.php
new file mode 100644
index 00000000000..20e1ff61824
--- /dev/null
+++ b/Commerceproducer/src/V1beta/PrivateOffer/SingleProductOffer/StandardIntervalPrice/StandardInterval.php
@@ -0,0 +1,137 @@
+google.cloud.commerceproducer.v1beta.PrivateOffer.SingleProductOffer.StandardIntervalPrice.StandardInterval
+ */
+class StandardInterval
+{
+ /**
+ * The private offer does not have an interval.
+ * If this is set, then the offer is "usage-only".
+ * Field `term.duration_months` must be positive.
+ *
+ * Generated from protobuf enum STANDARD_INTERVAL_UNSPECIFIED = 0;
+ */
+ const STANDARD_INTERVAL_UNSPECIFIED = 0;
+ /**
+ * The schedule of the monthly postpay offers.
+ * This type of offer has "Monthly" billing frequency (see
+ * https://docs.cloud.google.com/marketplace/docs/partners/offers/select-payment-schedule).
+ * No longer supported as of May 2024. Cannot be used to publish
+ * new offers.
+ *
+ * Generated from protobuf enum MONTHLY_POSTPAY = 1 [deprecated = true];
+ */
+ const MONTHLY_POSTPAY = 1;
+ /**
+ * Monthly installments with proration.
+ * This type of offer has "Monthly" billing frequency (see
+ * https://docs.cloud.google.com/marketplace/docs/partners/offers/select-payment-schedule).
+ * For example, if the offer starts on 04/15, and the offer duration is
+ * 3 months, the following installments will be created:
+ * # 1: from 04/15 to 05/01, at the prorated price for April.
+ * # 2: from 05/01 to 06/01, at the full monthly price for May.
+ * # 3: from 06/01 to 07/01, at the full monthly price for June.
+ * # 4: from 07/01 to 07/15, at the prorated price for July.
+ * All dates represent the start of that day in the America/Los_Angeles
+ * time zone.
+ * If this is set:
+ * * The `PriceModel.subscription` oneof must be set.
+ * * Field `term.duration_months` must be positive.
+ *
+ * Generated from protobuf enum MONTHLY_PRORATED = 2;
+ */
+ const MONTHLY_PRORATED = 2;
+ /**
+ * Monthly installments without proration.
+ * This type of offer has "Monthly" billing frequency (see
+ * https://docs.cloud.google.com/marketplace/docs/partners/offers/select-payment-schedule).
+ * For example, if the offer starts on 04/15, and the offer duration is
+ * 3 months, the following installments will be created:
+ * # 1: from 04/15 to 05/15, at the full monthly price.
+ * # 2: from 05/15 to 06/15, at the full monthly price.
+ * # 3: from 06/15 to 07/15, at the full monthly price.
+ * All dates represent the start of that day in the America/Los_Angeles
+ * time zone.
+ * If this is set:
+ * * The `PriceModel.subscription` oneof must be set.
+ * * Field `term.duration_months` must be positive.
+ *
+ * Generated from protobuf enum MONTHLY_NOT_PRORATED = 3;
+ */
+ const MONTHLY_NOT_PRORATED = 3;
+ /**
+ * Quarterly installments which are not prorated.
+ * This type of offer has "Quarterly" billing frequency (see
+ * https://docs.cloud.google.com/marketplace/docs/partners/offers/select-payment-schedule).
+ * For example, if the offer starts on 01/15, and the offer duration is
+ * 3 quarters, the following installments will be created:
+ * # 1: from 01/15 to 04/15, at the full quarterly price.
+ * # 2: from 04/15 to 07/15, at the full quarterly price.
+ * # 3: from 07/15 to 10/15, at the full quarterly price.
+ * All dates represent the start of that day in the America/Los_Angeles
+ * time zone.
+ * If this is set:
+ * * The `PriceModel.subscription` oneof must be set.
+ * * Field `term.duration_months` must be positive.
+ *
+ * Generated from protobuf enum QUARTERLY_NOT_PRORATED = 4;
+ */
+ const QUARTERLY_NOT_PRORATED = 4;
+ /**
+ * Yearly installments which are not prorated.
+ * This type of offer has "Yearly" billing frequency (see
+ * https://docs.cloud.google.com/marketplace/docs/partners/offers/select-payment-schedule).
+ * For example, if the offer starts on 01/15/2025, and the offer
+ * duration is 3 years, the following installments will be created:
+ * # 1: from 01/15/2025 to 01/15/2026, at the full yearly price.
+ * # 2: from 01/15/2026 to 01/15/2027, at the full yearly price.
+ * # 3: from 01/15/2027 to 01/15/2028, at the full yearly price.
+ * All dates represent the start of that day in the America/Los_Angeles
+ * time zone.
+ * If this is set:
+ * * The `PriceModel.subscription` oneof must be set.
+ * * Field `term.duration_months` must be positive.
+ *
+ * Generated from protobuf enum YEARLY_NOT_PRORATED = 5;
+ */
+ const YEARLY_NOT_PRORATED = 5;
+
+ private static $valueToName = [
+ self::STANDARD_INTERVAL_UNSPECIFIED => 'STANDARD_INTERVAL_UNSPECIFIED',
+ self::MONTHLY_POSTPAY => 'MONTHLY_POSTPAY',
+ self::MONTHLY_PRORATED => 'MONTHLY_PRORATED',
+ self::MONTHLY_NOT_PRORATED => 'MONTHLY_NOT_PRORATED',
+ self::QUARTERLY_NOT_PRORATED => 'QUARTERLY_NOT_PRORATED',
+ self::YEARLY_NOT_PRORATED => 'YEARLY_NOT_PRORATED',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
diff --git a/Commerceproducer/src/V1beta/PrivateOffer/State.php b/Commerceproducer/src/V1beta/PrivateOffer/State.php
new file mode 100644
index 00000000000..a3c341b5b44
--- /dev/null
+++ b/Commerceproducer/src/V1beta/PrivateOffer/State.php
@@ -0,0 +1,102 @@
+google.cloud.commerceproducer.v1beta.PrivateOffer.State
+ */
+class State
+{
+ /**
+ * Default value. This value is unused.
+ *
+ * Generated from protobuf enum STATE_UNSPECIFIED = 0;
+ */
+ const STATE_UNSPECIFIED = 0;
+ /**
+ * The default state after creation when the offer can be edited.
+ * In all other states, the contents of the offer cannot be edited.
+ *
+ * Generated from protobuf enum DRAFT = 1;
+ */
+ const DRAFT = 1;
+ /**
+ * The offer is publishing.
+ * Publishing will complete when all publishing requirements are satisfied.
+ *
+ * Generated from protobuf enum PUBLISHING = 2;
+ */
+ const PUBLISHING = 2;
+ /**
+ * The offer has been published and is available to the customer to accept.
+ *
+ * Generated from protobuf enum PUBLISHED = 3;
+ */
+ const PUBLISHED = 3;
+ /**
+ * The offer has been accepted by the customer.
+ *
+ * Generated from protobuf enum ACCEPTED = 4;
+ */
+ const ACCEPTED = 4;
+ /**
+ * The offer was cancelled by the provider before it was transacted.
+ * Cancelled offers can no longer be accepted by the customer.
+ *
+ * Generated from protobuf enum CANCELLED = 5;
+ */
+ const CANCELLED = 5;
+ /**
+ * The offer expired without being accepted by the customer.
+ * Expired offers can no longer be accepted by the customer.
+ *
+ * Generated from protobuf enum EXPIRED = 6;
+ */
+ const EXPIRED = 6;
+ /**
+ * The offer has ended.
+ * Ended offers were accepted and active in the past, but have now reached
+ * the end of their term or have been terminated.
+ *
+ * Generated from protobuf enum ENDED = 7;
+ */
+ const ENDED = 7;
+
+ private static $valueToName = [
+ self::STATE_UNSPECIFIED => 'STATE_UNSPECIFIED',
+ self::DRAFT => 'DRAFT',
+ self::PUBLISHING => 'PUBLISHING',
+ self::PUBLISHED => 'PUBLISHED',
+ self::ACCEPTED => 'ACCEPTED',
+ self::CANCELLED => 'CANCELLED',
+ self::EXPIRED => 'EXPIRED',
+ self::ENDED => 'ENDED',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
diff --git a/Commerceproducer/src/V1beta/PrivateOffer/Term.php b/Commerceproducer/src/V1beta/PrivateOffer/Term.php
new file mode 100644
index 00000000000..c119a1c5a4c
--- /dev/null
+++ b/Commerceproducer/src/V1beta/PrivateOffer/Term.php
@@ -0,0 +1,578 @@
+google.cloud.commerceproducer.v1beta.PrivateOffer.Term
+ */
+class Term extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Optional. Defines when the resulting order should start.
+ * Must be set when publishing the offer.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOffer.Term.StartPolicy start_policy = 1 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $start_policy = 0;
+ /**
+ * Optional. The scheduled start time of the offer. Cannot exceed one year
+ * from the time of publish.
+ * If the start policy is `SCHEDULED_START_TIME`, a future time at a day
+ * boundary in the America/Los_Angeles time zone must be provided when
+ * publishing the offer.
+ * If the offer amends another private or standard offer, then the
+ * scheduled start time must be:
+ * * Before or equal to the amended offer's end time if the offer's
+ * end policy is not MATCH_AMENDED_OFFER. Otherwise, it has to be
+ * strictly before the amended offer's end time.
+ * * Before or equal to the start time of the next pending installment of
+ * the amended offer, if amending a private offer with custom
+ * installments. For example, if the amended offer has installments on
+ * 01/01, 02/01, 03/01, 04/01, and today is 02/15, then the new offer's
+ * `scheduled_start_time` must be at or before 03/01.
+ *
+ * Generated from protobuf field .google.type.DateTime scheduled_start_time = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $scheduled_start_time = null;
+ /**
+ * Optional. Defines when an offer should end.
+ * Must be set when publishing the offer.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOffer.Term.EndPolicy end_policy = 3 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $end_policy = 0;
+ /**
+ * Output only. The expected end time of the current offer term.
+ * At the end of each offer term, an offer associated with an active
+ * order will either renew or end. When an offer renews, a new term begins
+ * and this value changes to reflect the end time of the new term.
+ * When an offer ends this value is no longer set and instead `end_time` is
+ * set.
+ * When the term of an offer ends and the offer does not renew, the
+ * associated order also ends if the base standard offer has a
+ * subscription price model. Otherwise, the associated order does not end
+ * and remains active.
+ * Not included for PRIVATE_OFFER_VIEW_BASIC.
+ * Included for PRIVATE_OFFER_VIEW_FULL when the offer has not ended and
+ * either the offer has started or the value can be derived from other
+ * fields.
+ * For offers that have not started, this field is set when one of the
+ * following conditions is true.
+ * * The offer sets `term.scheduled_end_time`.
+ * * The offer sets `term.scheduled_start_time` and `term.duration_months`,
+ * the offer's `term.end_policy` is not `MATCH_AMENDED_OFFER`, and the
+ * offer does not have standard_interval set to `MONTHLY_POSTPAY`.
+ *
+ * Generated from protobuf field .google.type.DateTime effective_term_end_time = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $effective_term_end_time = null;
+ protected $end_policy_data;
+ protected $renewal;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $duration_months
+ * Optional. Duration in months of the offer term.
+ * The offer will end on the same day of the month after this duration. If
+ * that date is not available, the offer will end on the last day of the
+ * month. For example, if the offer starts on 01/31/2024 and the duration
+ * is 13 months, the offer will end on 02/28/2025.
+ * Must be set to publish the offer if the end policy is `AFTER_DURATION`
+ * or `MATCH_AMENDED_OFFER`, and must be a positive value.
+ * The maximum possible offer duration, including all renewal terms,
+ * cannot exceed 7 years. For example, if `duration_months` is 9 and
+ * `term.max_renewal_count` is 9, then the maximum possible offer duration
+ * is 90 months and exceeds the 7 year limit.
+ * @type \Google\Type\DateTime $scheduled_end_time
+ * Optional. Specified end time of the offer.
+ * Must be set to publish the offer if the end policy is
+ * `SCHEDULED_END_TIME`.
+ * When set, the time must be in the future and at a day boundary in the
+ * America/Los_Angeles time zone, and must be after
+ * `term.scheduled_start_time` if applicable.
+ * @type int $max_renewal_count
+ * Optional. The max number of renewals allowed, after the initial term
+ * ends. This field is only relevant to standard interval offers with
+ * interval of 'MONTHLY_PRORATED', 'MONTHLY_NOT_PRORATED',
+ * 'QUARTERLY_NOT_PRORATED' or 'YEARLY_NOT_PRORATED'. Other types of
+ * offers cannot be renewed.
+ * For example, if the initial term is 1 year and the max renewals is 3,
+ * the customer can renew the offer for up to 3 additional years after the
+ * initial term ends. Customers control whether they renew the offer.
+ * Allowing a customer to renew an offer does not constitute a guarantee
+ * to the customer that the offered product will still be available to be
+ * renewed at the renewal date.
+ * An offer with a max renewal count of 0 cannot be renewed.
+ * Must be non-negative.
+ * @type bool $unlimited_renewal
+ * Output only. Deprecated: This field can only be true on existing offers
+ * with standard interval of 'MONTHLY_POSTPAY'. As of May 2024, we no
+ * longer allow unlimited renewals.
+ * @type int $start_policy
+ * Optional. Defines when the resulting order should start.
+ * Must be set when publishing the offer.
+ * @type \Google\Type\DateTime $scheduled_start_time
+ * Optional. The scheduled start time of the offer. Cannot exceed one year
+ * from the time of publish.
+ * If the start policy is `SCHEDULED_START_TIME`, a future time at a day
+ * boundary in the America/Los_Angeles time zone must be provided when
+ * publishing the offer.
+ * If the offer amends another private or standard offer, then the
+ * scheduled start time must be:
+ * * Before or equal to the amended offer's end time if the offer's
+ * end policy is not MATCH_AMENDED_OFFER. Otherwise, it has to be
+ * strictly before the amended offer's end time.
+ * * Before or equal to the start time of the next pending installment of
+ * the amended offer, if amending a private offer with custom
+ * installments. For example, if the amended offer has installments on
+ * 01/01, 02/01, 03/01, 04/01, and today is 02/15, then the new offer's
+ * `scheduled_start_time` must be at or before 03/01.
+ * @type int $end_policy
+ * Optional. Defines when an offer should end.
+ * Must be set when publishing the offer.
+ * @type \Google\Type\DateTime $effective_term_end_time
+ * Output only. The expected end time of the current offer term.
+ * At the end of each offer term, an offer associated with an active
+ * order will either renew or end. When an offer renews, a new term begins
+ * and this value changes to reflect the end time of the new term.
+ * When an offer ends this value is no longer set and instead `end_time` is
+ * set.
+ * When the term of an offer ends and the offer does not renew, the
+ * associated order also ends if the base standard offer has a
+ * subscription price model. Otherwise, the associated order does not end
+ * and remains active.
+ * Not included for PRIVATE_OFFER_VIEW_BASIC.
+ * Included for PRIVATE_OFFER_VIEW_FULL when the offer has not ended and
+ * either the offer has started or the value can be derived from other
+ * fields.
+ * For offers that have not started, this field is set when one of the
+ * following conditions is true.
+ * * The offer sets `term.scheduled_end_time`.
+ * * The offer sets `term.scheduled_start_time` and `term.duration_months`,
+ * the offer's `term.end_policy` is not `MATCH_AMENDED_OFFER`, and the
+ * offer does not have standard_interval set to `MONTHLY_POSTPAY`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\PrivateOffer::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Optional. Duration in months of the offer term.
+ * The offer will end on the same day of the month after this duration. If
+ * that date is not available, the offer will end on the last day of the
+ * month. For example, if the offer starts on 01/31/2024 and the duration
+ * is 13 months, the offer will end on 02/28/2025.
+ * Must be set to publish the offer if the end policy is `AFTER_DURATION`
+ * or `MATCH_AMENDED_OFFER`, and must be a positive value.
+ * The maximum possible offer duration, including all renewal terms,
+ * cannot exceed 7 years. For example, if `duration_months` is 9 and
+ * `term.max_renewal_count` is 9, then the maximum possible offer duration
+ * is 90 months and exceeds the 7 year limit.
+ *
+ * Generated from protobuf field int32 duration_months = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return int
+ */
+ public function getDurationMonths()
+ {
+ return $this->readOneof(4);
+ }
+
+ public function hasDurationMonths()
+ {
+ return $this->hasOneof(4);
+ }
+
+ /**
+ * Optional. Duration in months of the offer term.
+ * The offer will end on the same day of the month after this duration. If
+ * that date is not available, the offer will end on the last day of the
+ * month. For example, if the offer starts on 01/31/2024 and the duration
+ * is 13 months, the offer will end on 02/28/2025.
+ * Must be set to publish the offer if the end policy is `AFTER_DURATION`
+ * or `MATCH_AMENDED_OFFER`, and must be a positive value.
+ * The maximum possible offer duration, including all renewal terms,
+ * cannot exceed 7 years. For example, if `duration_months` is 9 and
+ * `term.max_renewal_count` is 9, then the maximum possible offer duration
+ * is 90 months and exceeds the 7 year limit.
+ *
+ * Generated from protobuf field int32 duration_months = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @param int $var
+ * @return $this
+ */
+ public function setDurationMonths($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->writeOneof(4, $var);
+
+ return $this;
+ }
+
+ /**
+ * Optional. Specified end time of the offer.
+ * Must be set to publish the offer if the end policy is
+ * `SCHEDULED_END_TIME`.
+ * When set, the time must be in the future and at a day boundary in the
+ * America/Los_Angeles time zone, and must be after
+ * `term.scheduled_start_time` if applicable.
+ *
+ * Generated from protobuf field .google.type.DateTime scheduled_end_time = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Type\DateTime|null
+ */
+ public function getScheduledEndTime()
+ {
+ return $this->readOneof(5);
+ }
+
+ public function hasScheduledEndTime()
+ {
+ return $this->hasOneof(5);
+ }
+
+ /**
+ * Optional. Specified end time of the offer.
+ * Must be set to publish the offer if the end policy is
+ * `SCHEDULED_END_TIME`.
+ * When set, the time must be in the future and at a day boundary in the
+ * America/Los_Angeles time zone, and must be after
+ * `term.scheduled_start_time` if applicable.
+ *
+ * Generated from protobuf field .google.type.DateTime scheduled_end_time = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Type\DateTime $var
+ * @return $this
+ */
+ public function setScheduledEndTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Type\DateTime::class);
+ $this->writeOneof(5, $var);
+
+ return $this;
+ }
+
+ /**
+ * Optional. The max number of renewals allowed, after the initial term
+ * ends. This field is only relevant to standard interval offers with
+ * interval of 'MONTHLY_PRORATED', 'MONTHLY_NOT_PRORATED',
+ * 'QUARTERLY_NOT_PRORATED' or 'YEARLY_NOT_PRORATED'. Other types of
+ * offers cannot be renewed.
+ * For example, if the initial term is 1 year and the max renewals is 3,
+ * the customer can renew the offer for up to 3 additional years after the
+ * initial term ends. Customers control whether they renew the offer.
+ * Allowing a customer to renew an offer does not constitute a guarantee
+ * to the customer that the offered product will still be available to be
+ * renewed at the renewal date.
+ * An offer with a max renewal count of 0 cannot be renewed.
+ * Must be non-negative.
+ *
+ * Generated from protobuf field int32 max_renewal_count = 6 [(.google.api.field_behavior) = OPTIONAL];
+ * @return int
+ */
+ public function getMaxRenewalCount()
+ {
+ return $this->readOneof(6);
+ }
+
+ public function hasMaxRenewalCount()
+ {
+ return $this->hasOneof(6);
+ }
+
+ /**
+ * Optional. The max number of renewals allowed, after the initial term
+ * ends. This field is only relevant to standard interval offers with
+ * interval of 'MONTHLY_PRORATED', 'MONTHLY_NOT_PRORATED',
+ * 'QUARTERLY_NOT_PRORATED' or 'YEARLY_NOT_PRORATED'. Other types of
+ * offers cannot be renewed.
+ * For example, if the initial term is 1 year and the max renewals is 3,
+ * the customer can renew the offer for up to 3 additional years after the
+ * initial term ends. Customers control whether they renew the offer.
+ * Allowing a customer to renew an offer does not constitute a guarantee
+ * to the customer that the offered product will still be available to be
+ * renewed at the renewal date.
+ * An offer with a max renewal count of 0 cannot be renewed.
+ * Must be non-negative.
+ *
+ * Generated from protobuf field int32 max_renewal_count = 6 [(.google.api.field_behavior) = OPTIONAL];
+ * @param int $var
+ * @return $this
+ */
+ public function setMaxRenewalCount($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->writeOneof(6, $var);
+
+ return $this;
+ }
+
+ /**
+ * Output only. Deprecated: This field can only be true on existing offers
+ * with standard interval of 'MONTHLY_POSTPAY'. As of May 2024, we no
+ * longer allow unlimited renewals.
+ *
+ * Generated from protobuf field bool unlimited_renewal = 7 [deprecated = true, (.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return bool
+ * @deprecated
+ */
+ public function getUnlimitedRenewal()
+ {
+ if ($this->hasOneof(7)) {
+ @trigger_error('unlimited_renewal is deprecated.', E_USER_DEPRECATED);
+ }
+ return $this->readOneof(7);
+ }
+
+ public function hasUnlimitedRenewal()
+ {
+ if ($this->hasOneof(7)) {
+ @trigger_error('unlimited_renewal is deprecated.', E_USER_DEPRECATED);
+ }
+ return $this->hasOneof(7);
+ }
+
+ /**
+ * Output only. Deprecated: This field can only be true on existing offers
+ * with standard interval of 'MONTHLY_POSTPAY'. As of May 2024, we no
+ * longer allow unlimited renewals.
+ *
+ * Generated from protobuf field bool unlimited_renewal = 7 [deprecated = true, (.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param bool $var
+ * @return $this
+ * @deprecated
+ */
+ public function setUnlimitedRenewal($var)
+ {
+ @trigger_error('unlimited_renewal is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkBool($var);
+ $this->writeOneof(7, $var);
+
+ return $this;
+ }
+
+ /**
+ * Optional. Defines when the resulting order should start.
+ * Must be set when publishing the offer.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOffer.Term.StartPolicy start_policy = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @return int
+ */
+ public function getStartPolicy()
+ {
+ return $this->start_policy;
+ }
+
+ /**
+ * Optional. Defines when the resulting order should start.
+ * Must be set when publishing the offer.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOffer.Term.StartPolicy start_policy = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @param int $var
+ * @return $this
+ */
+ public function setStartPolicy($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\Term\StartPolicy::class);
+ $this->start_policy = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The scheduled start time of the offer. Cannot exceed one year
+ * from the time of publish.
+ * If the start policy is `SCHEDULED_START_TIME`, a future time at a day
+ * boundary in the America/Los_Angeles time zone must be provided when
+ * publishing the offer.
+ * If the offer amends another private or standard offer, then the
+ * scheduled start time must be:
+ * * Before or equal to the amended offer's end time if the offer's
+ * end policy is not MATCH_AMENDED_OFFER. Otherwise, it has to be
+ * strictly before the amended offer's end time.
+ * * Before or equal to the start time of the next pending installment of
+ * the amended offer, if amending a private offer with custom
+ * installments. For example, if the amended offer has installments on
+ * 01/01, 02/01, 03/01, 04/01, and today is 02/15, then the new offer's
+ * `scheduled_start_time` must be at or before 03/01.
+ *
+ * Generated from protobuf field .google.type.DateTime scheduled_start_time = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Type\DateTime|null
+ */
+ public function getScheduledStartTime()
+ {
+ return $this->scheduled_start_time;
+ }
+
+ public function hasScheduledStartTime()
+ {
+ return isset($this->scheduled_start_time);
+ }
+
+ public function clearScheduledStartTime()
+ {
+ unset($this->scheduled_start_time);
+ }
+
+ /**
+ * Optional. The scheduled start time of the offer. Cannot exceed one year
+ * from the time of publish.
+ * If the start policy is `SCHEDULED_START_TIME`, a future time at a day
+ * boundary in the America/Los_Angeles time zone must be provided when
+ * publishing the offer.
+ * If the offer amends another private or standard offer, then the
+ * scheduled start time must be:
+ * * Before or equal to the amended offer's end time if the offer's
+ * end policy is not MATCH_AMENDED_OFFER. Otherwise, it has to be
+ * strictly before the amended offer's end time.
+ * * Before or equal to the start time of the next pending installment of
+ * the amended offer, if amending a private offer with custom
+ * installments. For example, if the amended offer has installments on
+ * 01/01, 02/01, 03/01, 04/01, and today is 02/15, then the new offer's
+ * `scheduled_start_time` must be at or before 03/01.
+ *
+ * Generated from protobuf field .google.type.DateTime scheduled_start_time = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Type\DateTime $var
+ * @return $this
+ */
+ public function setScheduledStartTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Type\DateTime::class);
+ $this->scheduled_start_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Defines when an offer should end.
+ * Must be set when publishing the offer.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOffer.Term.EndPolicy end_policy = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @return int
+ */
+ public function getEndPolicy()
+ {
+ return $this->end_policy;
+ }
+
+ /**
+ * Optional. Defines when an offer should end.
+ * Must be set when publishing the offer.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOffer.Term.EndPolicy end_policy = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @param int $var
+ * @return $this
+ */
+ public function setEndPolicy($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Commerceproducer\V1beta\PrivateOffer\Term\EndPolicy::class);
+ $this->end_policy = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The expected end time of the current offer term.
+ * At the end of each offer term, an offer associated with an active
+ * order will either renew or end. When an offer renews, a new term begins
+ * and this value changes to reflect the end time of the new term.
+ * When an offer ends this value is no longer set and instead `end_time` is
+ * set.
+ * When the term of an offer ends and the offer does not renew, the
+ * associated order also ends if the base standard offer has a
+ * subscription price model. Otherwise, the associated order does not end
+ * and remains active.
+ * Not included for PRIVATE_OFFER_VIEW_BASIC.
+ * Included for PRIVATE_OFFER_VIEW_FULL when the offer has not ended and
+ * either the offer has started or the value can be derived from other
+ * fields.
+ * For offers that have not started, this field is set when one of the
+ * following conditions is true.
+ * * The offer sets `term.scheduled_end_time`.
+ * * The offer sets `term.scheduled_start_time` and `term.duration_months`,
+ * the offer's `term.end_policy` is not `MATCH_AMENDED_OFFER`, and the
+ * offer does not have standard_interval set to `MONTHLY_POSTPAY`.
+ *
+ * Generated from protobuf field .google.type.DateTime effective_term_end_time = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Type\DateTime|null
+ */
+ public function getEffectiveTermEndTime()
+ {
+ return $this->effective_term_end_time;
+ }
+
+ public function hasEffectiveTermEndTime()
+ {
+ return isset($this->effective_term_end_time);
+ }
+
+ public function clearEffectiveTermEndTime()
+ {
+ unset($this->effective_term_end_time);
+ }
+
+ /**
+ * Output only. The expected end time of the current offer term.
+ * At the end of each offer term, an offer associated with an active
+ * order will either renew or end. When an offer renews, a new term begins
+ * and this value changes to reflect the end time of the new term.
+ * When an offer ends this value is no longer set and instead `end_time` is
+ * set.
+ * When the term of an offer ends and the offer does not renew, the
+ * associated order also ends if the base standard offer has a
+ * subscription price model. Otherwise, the associated order does not end
+ * and remains active.
+ * Not included for PRIVATE_OFFER_VIEW_BASIC.
+ * Included for PRIVATE_OFFER_VIEW_FULL when the offer has not ended and
+ * either the offer has started or the value can be derived from other
+ * fields.
+ * For offers that have not started, this field is set when one of the
+ * following conditions is true.
+ * * The offer sets `term.scheduled_end_time`.
+ * * The offer sets `term.scheduled_start_time` and `term.duration_months`,
+ * the offer's `term.end_policy` is not `MATCH_AMENDED_OFFER`, and the
+ * offer does not have standard_interval set to `MONTHLY_POSTPAY`.
+ *
+ * Generated from protobuf field .google.type.DateTime effective_term_end_time = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Type\DateTime $var
+ * @return $this
+ */
+ public function setEffectiveTermEndTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Type\DateTime::class);
+ $this->effective_term_end_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getEndPolicyData()
+ {
+ return $this->whichOneof("end_policy_data");
+ }
+
+ /**
+ * @return string
+ */
+ public function getRenewal()
+ {
+ return $this->whichOneof("renewal");
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/PrivateOffer/Term/EndPolicy.php b/Commerceproducer/src/V1beta/PrivateOffer/Term/EndPolicy.php
new file mode 100644
index 00000000000..c7cd7b3957a
--- /dev/null
+++ b/Commerceproducer/src/V1beta/PrivateOffer/Term/EndPolicy.php
@@ -0,0 +1,99 @@
+google.cloud.commerceproducer.v1beta.PrivateOffer.Term.EndPolicy
+ */
+class EndPolicy
+{
+ /**
+ * Default value. This value is unused.
+ *
+ * Generated from protobuf enum END_POLICY_UNSPECIFIED = 0;
+ */
+ const END_POLICY_UNSPECIFIED = 0;
+ /**
+ * Offer ends after the specified duration.
+ * If this is set, then `duration_months` must be positive.
+ *
+ * Generated from protobuf enum AFTER_DURATION = 1;
+ */
+ const AFTER_DURATION = 1;
+ /**
+ * Offer ends at the schduled time.
+ *
+ * Generated from protobuf enum SCHEDULED_END_TIME = 2;
+ */
+ const SCHEDULED_END_TIME = 2;
+ /**
+ * Offer coterms to the amended offer - the offer ends at the end of the
+ * amended offer's term
+ * For example, if the amended offer starts on 01/15/24, and has a
+ * duration of 6 months, then it ends on 07/15/24. If the current offer
+ * coterms to the previous offer, and the current offer starts on
+ * 05/06/24, then it will still end on 07/15/24. Assuming the current
+ * offer renews 3 times, then the terms on the current offer will be:
+ * 1. 05/06/24 - 07/15/24 (First term, ends on 07/15 to coterm with the
+ * amended offer)
+ * 2. 07/15/24 - 01/15/25 (First renewal term)
+ * 3. 01/15/25 - 07/15/25 (Second renewal term)
+ * 4. 07/15/25 - 01/15/26 (Third renewal term)
+ * As a contrast, if the current offer does not coterm with the amended
+ * offer (such as when `end_policy` is `AFTER_DURATION`), then the
+ * terms will be:
+ * 1. 05/06/24 - 11/06/24 (First term, ends on 11/06, no coterming)
+ * 2. 11/06/24 - 05/06/25 (First renewal term)
+ * 3. 05/06/25 - 11/06/25 (Second renewal term)
+ * 4. 11/06/25 - 05/06/26 (Third renewal term)
+ * If this is set, then the following conditions must be met:
+ * * `single_product_offer.amended_private_offer` must be set, and the
+ * amended private offer must not be ended.
+ * * The proration policy must not change (e.g., you cannot switch
+ * between `MONTHLY_PRORATED` and `MONTHLY_NOT_PRORATED`).
+ * * The current offer must not have custom intervals (where
+ * `custom_interval_price` is set).
+ * * `term.duration_months` must match the amended private offer's
+ * duration.
+ * * The amended private offer must not have a standard interval
+ * of `MONTHLY_POSTPAY`.
+ * This is currently not supported.
+ *
+ * Generated from protobuf enum MATCH_AMENDED_OFFER = 3;
+ */
+ const MATCH_AMENDED_OFFER = 3;
+
+ private static $valueToName = [
+ self::END_POLICY_UNSPECIFIED => 'END_POLICY_UNSPECIFIED',
+ self::AFTER_DURATION => 'AFTER_DURATION',
+ self::SCHEDULED_END_TIME => 'SCHEDULED_END_TIME',
+ self::MATCH_AMENDED_OFFER => 'MATCH_AMENDED_OFFER',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
diff --git a/Commerceproducer/src/V1beta/PrivateOffer/Term/StartPolicy.php b/Commerceproducer/src/V1beta/PrivateOffer/Term/StartPolicy.php
new file mode 100644
index 00000000000..acb87a0a70b
--- /dev/null
+++ b/Commerceproducer/src/V1beta/PrivateOffer/Term/StartPolicy.php
@@ -0,0 +1,64 @@
+google.cloud.commerceproducer.v1beta.PrivateOffer.Term.StartPolicy
+ */
+class StartPolicy
+{
+ /**
+ * Default value. This value is unused.
+ *
+ * Generated from protobuf enum START_POLICY_UNSPECIFIED = 0;
+ */
+ const START_POLICY_UNSPECIFIED = 0;
+ /**
+ * The resulting order starts immediately upon the customer's acceptance
+ * of the offer, if no partner approval is required, or else immediately
+ * after the partner approves the purchase if order approval is required.
+ * This enum value cannot be combined with `term.scheduled_start_time`.
+ *
+ * Generated from protobuf enum IMMEDIATE = 1;
+ */
+ const IMMEDIATE = 1;
+ /**
+ * The resulting order starts at the scheduled start time.
+ *
+ * Generated from protobuf enum SCHEDULED_START_TIME = 2;
+ */
+ const SCHEDULED_START_TIME = 2;
+
+ private static $valueToName = [
+ self::START_POLICY_UNSPECIFIED => 'START_POLICY_UNSPECIFIED',
+ self::IMMEDIATE => 'IMMEDIATE',
+ self::SCHEDULED_START_TIME => 'SCHEDULED_START_TIME',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
diff --git a/Commerceproducer/src/V1beta/PrivateOfferDocument.php b/Commerceproducer/src/V1beta/PrivateOfferDocument.php
new file mode 100644
index 00000000000..69d9da2a408
--- /dev/null
+++ b/Commerceproducer/src/V1beta/PrivateOfferDocument.php
@@ -0,0 +1,294 @@
+google.cloud.commerceproducer.v1beta.PrivateOfferDocument
+ */
+class PrivateOfferDocument extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Identifier. Name of the resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IDENTIFIER];
+ */
+ protected $name = '';
+ /**
+ * Output only. The creation time of the resource.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $create_time = null;
+ /**
+ * Output only. The last update time of the resource.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $update_time = null;
+ /**
+ * Required. The classification type of the document.
+ * Used to distinguish between different types of documents that may be
+ * attached to a private offer for different business purposes.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOfferDocument.DocumentType document_type = 4 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $document_type = 0;
+ /**
+ * Optional. The MIME type of the document.
+ * Used to distinguish between different document formats.
+ * Supported formats (which may be expanded in the future)
+ * - 'application/pdf'
+ *
+ * Generated from protobuf field string mime_type = 5 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $mime_type = '';
+ protected $content;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $inline_content
+ * Optional. Byte content of an unstructured document.
+ * Max size: 4MB
+ * @type string $name
+ * Identifier. Name of the resource.
+ * @type \Google\Protobuf\Timestamp $create_time
+ * Output only. The creation time of the resource.
+ * @type \Google\Protobuf\Timestamp $update_time
+ * Output only. The last update time of the resource.
+ * @type int $document_type
+ * Required. The classification type of the document.
+ * Used to distinguish between different types of documents that may be
+ * attached to a private offer for different business purposes.
+ * @type string $mime_type
+ * Optional. The MIME type of the document.
+ * Used to distinguish between different document formats.
+ * Supported formats (which may be expanded in the future)
+ * - 'application/pdf'
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\PrivateOffer::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Optional. Byte content of an unstructured document.
+ * Max size: 4MB
+ *
+ * Generated from protobuf field bytes inline_content = 6 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getInlineContent()
+ {
+ return $this->readOneof(6);
+ }
+
+ public function hasInlineContent()
+ {
+ return $this->hasOneof(6);
+ }
+
+ /**
+ * Optional. Byte content of an unstructured document.
+ * Max size: 4MB
+ *
+ * Generated from protobuf field bytes inline_content = 6 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setInlineContent($var)
+ {
+ GPBUtil::checkString($var, False);
+ $this->writeOneof(6, $var);
+
+ return $this;
+ }
+
+ /**
+ * Identifier. Name of the resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IDENTIFIER];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Identifier. Name of the resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IDENTIFIER];
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The creation time of the resource.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getCreateTime()
+ {
+ return $this->create_time;
+ }
+
+ public function hasCreateTime()
+ {
+ return isset($this->create_time);
+ }
+
+ public function clearCreateTime()
+ {
+ unset($this->create_time);
+ }
+
+ /**
+ * Output only. The creation time of the resource.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setCreateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->create_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The last update time of the resource.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getUpdateTime()
+ {
+ return $this->update_time;
+ }
+
+ public function hasUpdateTime()
+ {
+ return isset($this->update_time);
+ }
+
+ public function clearUpdateTime()
+ {
+ unset($this->update_time);
+ }
+
+ /**
+ * Output only. The last update time of the resource.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setUpdateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->update_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The classification type of the document.
+ * Used to distinguish between different types of documents that may be
+ * attached to a private offer for different business purposes.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOfferDocument.DocumentType document_type = 4 [(.google.api.field_behavior) = REQUIRED];
+ * @return int
+ */
+ public function getDocumentType()
+ {
+ return $this->document_type;
+ }
+
+ /**
+ * Required. The classification type of the document.
+ * Used to distinguish between different types of documents that may be
+ * attached to a private offer for different business purposes.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOfferDocument.DocumentType document_type = 4 [(.google.api.field_behavior) = REQUIRED];
+ * @param int $var
+ * @return $this
+ */
+ public function setDocumentType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Commerceproducer\V1beta\PrivateOfferDocument\DocumentType::class);
+ $this->document_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The MIME type of the document.
+ * Used to distinguish between different document formats.
+ * Supported formats (which may be expanded in the future)
+ * - 'application/pdf'
+ *
+ * Generated from protobuf field string mime_type = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getMimeType()
+ {
+ return $this->mime_type;
+ }
+
+ /**
+ * Optional. The MIME type of the document.
+ * Used to distinguish between different document formats.
+ * Supported formats (which may be expanded in the future)
+ * - 'application/pdf'
+ *
+ * Generated from protobuf field string mime_type = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setMimeType($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->mime_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getContent()
+ {
+ return $this->whichOneof("content");
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/PrivateOfferDocument/DocumentType.php b/Commerceproducer/src/V1beta/PrivateOfferDocument/DocumentType.php
new file mode 100644
index 00000000000..c088612cae5
--- /dev/null
+++ b/Commerceproducer/src/V1beta/PrivateOfferDocument/DocumentType.php
@@ -0,0 +1,96 @@
+google.cloud.commerceproducer.v1beta.PrivateOfferDocument.DocumentType
+ */
+class DocumentType
+{
+ /**
+ * The default / unset value. Do not use.
+ *
+ * Generated from protobuf enum DOCUMENT_TYPE_UNSPECIFIED = 0;
+ */
+ const DOCUMENT_TYPE_UNSPECIFIED = 0;
+ /**
+ * The document is a custom EULA used in place of the standard product EULA.
+ * A private offer may not have more than one custom EULA document.
+ * If this enum value is set, then mime_type and inline_content must
+ * be set.
+ *
+ * Generated from protobuf enum CUSTOM_END_USER_LICENSE_AGREEMENT = 1;
+ */
+ const CUSTOM_END_USER_LICENSE_AGREEMENT = 1;
+ /**
+ * The document is the statement of work required by the [Cloud Marketplace
+ * Product Specific
+ * Terms](https://cloud.google.com/terms/marketplace-product-terms) for all
+ * Professional Services product private offers.
+ * This document type is not permitted for private offers of any other
+ * product type.
+ * A private offer may not have more than one statement of work document.
+ * The mime_type and inline_content fields must be set.
+ *
+ * Generated from protobuf enum STATEMENT_OF_WORK = 2;
+ */
+ const STATEMENT_OF_WORK = 2;
+ /**
+ * The document is the Marketplace standard EULA, with the following link:
+ * https://cloud.google.com/terms/marketplace/eula-standard-v1-12102020.
+ * Existing offers may have this document type, but this is not permitted
+ * for new offers.
+ *
+ * Generated from protobuf enum STANDARD_END_USER_LICENSE_AGREEMENT_V1 = 3;
+ */
+ const STANDARD_END_USER_LICENSE_AGREEMENT_V1 = 3;
+ /**
+ * The document is the Marketplace standard EULA, with the following link:
+ * https://cloud.google.com/terms/marketplace/eula-standard-v2-01272021
+ * New offers using Standard EULAs should set this enum value. This is not
+ * permitted for Professional Services products.
+ * The mime_type and inline_content fields must not be set.
+ *
+ * Generated from protobuf enum STANDARD_END_USER_LICENSE_AGREEMENT_V2 = 4;
+ */
+ const STANDARD_END_USER_LICENSE_AGREEMENT_V2 = 4;
+
+ private static $valueToName = [
+ self::DOCUMENT_TYPE_UNSPECIFIED => 'DOCUMENT_TYPE_UNSPECIFIED',
+ self::CUSTOM_END_USER_LICENSE_AGREEMENT => 'CUSTOM_END_USER_LICENSE_AGREEMENT',
+ self::STATEMENT_OF_WORK => 'STATEMENT_OF_WORK',
+ self::STANDARD_END_USER_LICENSE_AGREEMENT_V1 => 'STANDARD_END_USER_LICENSE_AGREEMENT_V1',
+ self::STANDARD_END_USER_LICENSE_AGREEMENT_V2 => 'STANDARD_END_USER_LICENSE_AGREEMENT_V2',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
diff --git a/Commerceproducer/src/V1beta/PrivateOfferView.php b/Commerceproducer/src/V1beta/PrivateOfferView.php
new file mode 100644
index 00000000000..d4f75f908ae
--- /dev/null
+++ b/Commerceproducer/src/V1beta/PrivateOfferView.php
@@ -0,0 +1,64 @@
+google.cloud.commerceproducer.v1beta.PrivateOfferView
+ */
+class PrivateOfferView
+{
+ /**
+ * The default / unset value.
+ * The API will default to the BASIC view.
+ *
+ * Generated from protobuf enum PRIVATE_OFFER_VIEW_UNSPECIFIED = 0;
+ */
+ const PRIVATE_OFFER_VIEW_UNSPECIFIED = 0;
+ /**
+ * Include basic metadata about the PrivateOffer, but not the full contents.
+ * This is the default value (for both List and Get requests).
+ *
+ * Generated from protobuf enum PRIVATE_OFFER_VIEW_BASIC = 1;
+ */
+ const PRIVATE_OFFER_VIEW_BASIC = 1;
+ /**
+ * Include everything.
+ *
+ * Generated from protobuf enum PRIVATE_OFFER_VIEW_FULL = 2;
+ */
+ const PRIVATE_OFFER_VIEW_FULL = 2;
+
+ private static $valueToName = [
+ self::PRIVATE_OFFER_VIEW_UNSPECIFIED => 'PRIVATE_OFFER_VIEW_UNSPECIFIED',
+ self::PRIVATE_OFFER_VIEW_BASIC => 'PRIVATE_OFFER_VIEW_BASIC',
+ self::PRIVATE_OFFER_VIEW_FULL => 'PRIVATE_OFFER_VIEW_FULL',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
diff --git a/Commerceproducer/src/V1beta/PublishPrivateOfferRequest.php b/Commerceproducer/src/V1beta/PublishPrivateOfferRequest.php
new file mode 100644
index 00000000000..a2c061c89bd
--- /dev/null
+++ b/Commerceproducer/src/V1beta/PublishPrivateOfferRequest.php
@@ -0,0 +1,115 @@
+google.cloud.commerceproducer.v1beta.PublishPrivateOfferRequest
+ */
+class PublishPrivateOfferRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Name of the resource
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+ /**
+ * Optional. If set to `true`, validates the request but does not execute it.
+ *
+ * Generated from protobuf field bool validate_only = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $validate_only = false;
+
+ /**
+ * @param string $name Required. Name of the resource
+ * Please see {@see CommerceTransactionClient::privateOfferName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Commerceproducer\V1beta\PublishPrivateOfferRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. Name of the resource
+ * @type bool $validate_only
+ * Optional. If set to `true`, validates the request but does not execute it.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\CommerceTransaction::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Name of the resource
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. Name of the resource
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. If set to `true`, validates the request but does not execute it.
+ *
+ * Generated from protobuf field bool validate_only = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return bool
+ */
+ public function getValidateOnly()
+ {
+ return $this->validate_only;
+ }
+
+ /**
+ * Optional. If set to `true`, validates the request but does not execute it.
+ *
+ * Generated from protobuf field bool validate_only = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param bool $var
+ * @return $this
+ */
+ public function setValidateOnly($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->validate_only = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/ResolveAmendmentTargetRequest.php b/Commerceproducer/src/V1beta/ResolveAmendmentTargetRequest.php
new file mode 100644
index 00000000000..c89b29a6e19
--- /dev/null
+++ b/Commerceproducer/src/V1beta/ResolveAmendmentTargetRequest.php
@@ -0,0 +1,175 @@
+google.cloud.commerceproducer.v1beta.ResolveAmendmentTargetRequest
+ */
+class ResolveAmendmentTargetRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Parent value for ResolveAmendmentTargetRequest
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Required. The customer's billing account targeted by the offer. This is the
+ * billing account for which the new private offer will be created on. Format:
+ * billingAccounts/{billing_account}.
+ *
+ * Generated from protobuf field string target_billing_account = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $target_billing_account = '';
+ /**
+ * Required. The base standard offer that the private offer will be based on.
+ * Format:
+ * projects/{project}/locations/{location}/services/{service}/standardOffers/{standard_offer}.
+ *
+ * Generated from protobuf field string base_standard_offer = 3 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $base_standard_offer = '';
+
+ /**
+ * @param string $parent Required. Parent value for ResolveAmendmentTargetRequest
+ * Please see {@see CommerceTransactionClient::locationName()} for help formatting this field.
+ * @param string $targetBillingAccount Required. The customer's billing account targeted by the offer. This is the
+ * billing account for which the new private offer will be created on. Format:
+ * billingAccounts/{billing_account}. Please see
+ * {@see CommerceTransactionClient::billingAccountName()} for help formatting this field.
+ * @param string $baseStandardOffer Required. The base standard offer that the private offer will be based on.
+ * Format:
+ * projects/{project}/locations/{location}/services/{service}/standardOffers/{standard_offer}. Please see
+ * {@see CommerceTransactionClient::standardOfferName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Commerceproducer\V1beta\ResolveAmendmentTargetRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent, string $targetBillingAccount, string $baseStandardOffer): self
+ {
+ return (new self())
+ ->setParent($parent)
+ ->setTargetBillingAccount($targetBillingAccount)
+ ->setBaseStandardOffer($baseStandardOffer);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. Parent value for ResolveAmendmentTargetRequest
+ * @type string $target_billing_account
+ * Required. The customer's billing account targeted by the offer. This is the
+ * billing account for which the new private offer will be created on. Format:
+ * billingAccounts/{billing_account}.
+ * @type string $base_standard_offer
+ * Required. The base standard offer that the private offer will be based on.
+ * Format:
+ * projects/{project}/locations/{location}/services/{service}/standardOffers/{standard_offer}.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\CommerceTransaction::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Parent value for ResolveAmendmentTargetRequest
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. Parent value for ResolveAmendmentTargetRequest
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The customer's billing account targeted by the offer. This is the
+ * billing account for which the new private offer will be created on. Format:
+ * billingAccounts/{billing_account}.
+ *
+ * Generated from protobuf field string target_billing_account = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getTargetBillingAccount()
+ {
+ return $this->target_billing_account;
+ }
+
+ /**
+ * Required. The customer's billing account targeted by the offer. This is the
+ * billing account for which the new private offer will be created on. Format:
+ * billingAccounts/{billing_account}.
+ *
+ * Generated from protobuf field string target_billing_account = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setTargetBillingAccount($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->target_billing_account = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The base standard offer that the private offer will be based on.
+ * Format:
+ * projects/{project}/locations/{location}/services/{service}/standardOffers/{standard_offer}.
+ *
+ * Generated from protobuf field string base_standard_offer = 3 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getBaseStandardOffer()
+ {
+ return $this->base_standard_offer;
+ }
+
+ /**
+ * Required. The base standard offer that the private offer will be based on.
+ * Format:
+ * projects/{project}/locations/{location}/services/{service}/standardOffers/{standard_offer}.
+ *
+ * Generated from protobuf field string base_standard_offer = 3 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setBaseStandardOffer($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->base_standard_offer = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/ResolveAmendmentTargetResponse.php b/Commerceproducer/src/V1beta/ResolveAmendmentTargetResponse.php
new file mode 100644
index 00000000000..e207c2d88c4
--- /dev/null
+++ b/Commerceproducer/src/V1beta/ResolveAmendmentTargetResponse.php
@@ -0,0 +1,153 @@
+google.cloud.commerceproducer.v1beta.ResolveAmendmentTargetResponse
+ */
+class ResolveAmendmentTargetResponse extends \Google\Protobuf\Internal\Message
+{
+ protected $amendment_requirement;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $required_private_offer
+ * The resource name of an existing private offer that MUST be amended.
+ * If this is set, the new private offer the client creates must populate
+ * the `single_product_offer.amended_private_offer` field with this value.
+ * @type string $required_standard_offer
+ * The resource name of an existing standard offer that MUST be amended.
+ * If this is set, the new private offer the client creates must populate
+ * the `single_product_offer.amended_standard_offer` field with this value.
+ * @type \Google\Cloud\Commerceproducer\V1beta\ResolveAmendmentTargetResponse\OptionalOffers $optional_offers
+ * A list of existing offers that may optionally be amended.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\CommerceTransaction::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The resource name of an existing private offer that MUST be amended.
+ * If this is set, the new private offer the client creates must populate
+ * the `single_product_offer.amended_private_offer` field with this value.
+ *
+ * Generated from protobuf field string required_private_offer = 1 [(.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getRequiredPrivateOffer()
+ {
+ return $this->readOneof(1);
+ }
+
+ public function hasRequiredPrivateOffer()
+ {
+ return $this->hasOneof(1);
+ }
+
+ /**
+ * The resource name of an existing private offer that MUST be amended.
+ * If this is set, the new private offer the client creates must populate
+ * the `single_product_offer.amended_private_offer` field with this value.
+ *
+ * Generated from protobuf field string required_private_offer = 1 [(.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setRequiredPrivateOffer($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->writeOneof(1, $var);
+
+ return $this;
+ }
+
+ /**
+ * The resource name of an existing standard offer that MUST be amended.
+ * If this is set, the new private offer the client creates must populate
+ * the `single_product_offer.amended_standard_offer` field with this value.
+ *
+ * Generated from protobuf field string required_standard_offer = 2 [(.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getRequiredStandardOffer()
+ {
+ return $this->readOneof(2);
+ }
+
+ public function hasRequiredStandardOffer()
+ {
+ return $this->hasOneof(2);
+ }
+
+ /**
+ * The resource name of an existing standard offer that MUST be amended.
+ * If this is set, the new private offer the client creates must populate
+ * the `single_product_offer.amended_standard_offer` field with this value.
+ *
+ * Generated from protobuf field string required_standard_offer = 2 [(.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setRequiredStandardOffer($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->writeOneof(2, $var);
+
+ return $this;
+ }
+
+ /**
+ * A list of existing offers that may optionally be amended.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.ResolveAmendmentTargetResponse.OptionalOffers optional_offers = 3;
+ * @return \Google\Cloud\Commerceproducer\V1beta\ResolveAmendmentTargetResponse\OptionalOffers|null
+ */
+ public function getOptionalOffers()
+ {
+ return $this->readOneof(3);
+ }
+
+ public function hasOptionalOffers()
+ {
+ return $this->hasOneof(3);
+ }
+
+ /**
+ * A list of existing offers that may optionally be amended.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.ResolveAmendmentTargetResponse.OptionalOffers optional_offers = 3;
+ * @param \Google\Cloud\Commerceproducer\V1beta\ResolveAmendmentTargetResponse\OptionalOffers $var
+ * @return $this
+ */
+ public function setOptionalOffers($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Commerceproducer\V1beta\ResolveAmendmentTargetResponse\OptionalOffers::class);
+ $this->writeOneof(3, $var);
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getAmendmentRequirement()
+ {
+ return $this->whichOneof("amendment_requirement");
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/ResolveAmendmentTargetResponse/OptionalOffers.php b/Commerceproducer/src/V1beta/ResolveAmendmentTargetResponse/OptionalOffers.php
new file mode 100644
index 00000000000..03b85224854
--- /dev/null
+++ b/Commerceproducer/src/V1beta/ResolveAmendmentTargetResponse/OptionalOffers.php
@@ -0,0 +1,83 @@
+google.cloud.commerceproducer.v1beta.ResolveAmendmentTargetResponse.OptionalOffers
+ */
+class OptionalOffers extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * A list of existing private offers that are eligible to be amended.
+ * When creating a new private offer, the client may choose to populate the
+ * `single_product_offer.amended_private_offer` field with one of these
+ * resource names. Alternatively, the client may leave the field unset to
+ * create a brand new offer.
+ *
+ * Generated from protobuf field repeated string private_offers = 1 [(.google.api.resource_reference) = {
+ */
+ private $private_offers;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string[] $private_offers
+ * A list of existing private offers that are eligible to be amended.
+ * When creating a new private offer, the client may choose to populate the
+ * `single_product_offer.amended_private_offer` field with one of these
+ * resource names. Alternatively, the client may leave the field unset to
+ * create a brand new offer.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\CommerceTransaction::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * A list of existing private offers that are eligible to be amended.
+ * When creating a new private offer, the client may choose to populate the
+ * `single_product_offer.amended_private_offer` field with one of these
+ * resource names. Alternatively, the client may leave the field unset to
+ * create a brand new offer.
+ *
+ * Generated from protobuf field repeated string private_offers = 1 [(.google.api.resource_reference) = {
+ * @return RepeatedField
+ */
+ public function getPrivateOffers()
+ {
+ return $this->private_offers;
+ }
+
+ /**
+ * A list of existing private offers that are eligible to be amended.
+ * When creating a new private offer, the client may choose to populate the
+ * `single_product_offer.amended_private_offer` field with one of these
+ * resource names. Alternatively, the client may leave the field unset to
+ * create a brand new offer.
+ *
+ * Generated from protobuf field repeated string private_offers = 1 [(.google.api.resource_reference) = {
+ * @param string[] $var
+ * @return $this
+ */
+ public function setPrivateOffers($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->private_offers = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/Service.php b/Commerceproducer/src/V1beta/Service.php
new file mode 100644
index 00000000000..c6e135cbfde
--- /dev/null
+++ b/Commerceproducer/src/V1beta/Service.php
@@ -0,0 +1,105 @@
+google.cloud.commerceproducer.v1beta.Service
+ */
+class Service extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Identifier. Name of resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IDENTIFIER];
+ */
+ protected $name = '';
+ /**
+ * Output only. Title of the service.
+ * Not included for `SERVICE_VIEW_BASIC`.
+ *
+ * Generated from protobuf field string title = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $title = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Identifier. Name of resource.
+ * @type string $title
+ * Output only. Title of the service.
+ * Not included for `SERVICE_VIEW_BASIC`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\Service::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Identifier. Name of resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IDENTIFIER];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Identifier. Name of resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IDENTIFIER];
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Title of the service.
+ * Not included for `SERVICE_VIEW_BASIC`.
+ *
+ * Generated from protobuf field string title = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getTitle()
+ {
+ return $this->title;
+ }
+
+ /**
+ * Output only. Title of the service.
+ * Not included for `SERVICE_VIEW_BASIC`.
+ *
+ * Generated from protobuf field string title = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setTitle($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->title = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/ServiceView.php b/Commerceproducer/src/V1beta/ServiceView.php
new file mode 100644
index 00000000000..906ec533be6
--- /dev/null
+++ b/Commerceproducer/src/V1beta/ServiceView.php
@@ -0,0 +1,64 @@
+google.cloud.commerceproducer.v1beta.ServiceView
+ */
+class ServiceView
+{
+ /**
+ * The default / unset value.
+ * The API will default to the BASIC view.
+ *
+ * Generated from protobuf enum SERVICE_VIEW_UNSPECIFIED = 0;
+ */
+ const SERVICE_VIEW_UNSPECIFIED = 0;
+ /**
+ * Include basic metadata about the Service, but not the full contents.
+ * This is the default value (for both List and Get requests).
+ *
+ * Generated from protobuf enum SERVICE_VIEW_BASIC = 1;
+ */
+ const SERVICE_VIEW_BASIC = 1;
+ /**
+ * Include everything.
+ *
+ * Generated from protobuf enum SERVICE_VIEW_FULL = 2;
+ */
+ const SERVICE_VIEW_FULL = 2;
+
+ private static $valueToName = [
+ self::SERVICE_VIEW_UNSPECIFIED => 'SERVICE_VIEW_UNSPECIFIED',
+ self::SERVICE_VIEW_BASIC => 'SERVICE_VIEW_BASIC',
+ self::SERVICE_VIEW_FULL => 'SERVICE_VIEW_FULL',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
diff --git a/Commerceproducer/src/V1beta/Sku.php b/Commerceproducer/src/V1beta/Sku.php
new file mode 100644
index 00000000000..6293da859e3
--- /dev/null
+++ b/Commerceproducer/src/V1beta/Sku.php
@@ -0,0 +1,186 @@
+google.cloud.commerceproducer.v1beta.Sku
+ */
+class Sku extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. Identifier. Name of the SKU.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IDENTIFIER, (.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $name = '';
+ /**
+ * Output only. Description of the SKU.
+ *
+ * Generated from protobuf field string description = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $description = '';
+ /**
+ * Output only. Timeline of the SKU prices, in chronological order by
+ * `effective_time`.
+ * Each entry is active in the time range starting inclusively from the
+ * entry's `effective_time` and ending exclusively at the next entry's
+ * `effective_time`, if one exists, or else remaining active indefinitely if
+ * it is the final entry. The currently active entry is the entry with the
+ * latest `effective_time` that is in the past. Because of scheduled future
+ * price changes the currently active entry may not be the last entry in the
+ * timeline. A SKU does not necessarily have a currently active entry, as the
+ * SKU's first timeline entry may have an `effective_time` in the future.
+ *
+ * Generated from protobuf field repeated .google.cloud.commerceproducer.v1beta.Sku.SkuPrice sku_price_timeline = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ private $sku_price_timeline;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Output only. Identifier. Name of the SKU.
+ * @type string $description
+ * Output only. Description of the SKU.
+ * @type \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice[] $sku_price_timeline
+ * Output only. Timeline of the SKU prices, in chronological order by
+ * `effective_time`.
+ * Each entry is active in the time range starting inclusively from the
+ * entry's `effective_time` and ending exclusively at the next entry's
+ * `effective_time`, if one exists, or else remaining active indefinitely if
+ * it is the final entry. The currently active entry is the entry with the
+ * latest `effective_time` that is in the past. Because of scheduled future
+ * price changes the currently active entry may not be the last entry in the
+ * timeline. A SKU does not necessarily have a currently active entry, as the
+ * SKU's first timeline entry may have an `effective_time` in the future.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\Sku::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. Identifier. Name of the SKU.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IDENTIFIER, (.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Output only. Identifier. Name of the SKU.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IDENTIFIER, (.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Description of the SKU.
+ *
+ * Generated from protobuf field string description = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getDescription()
+ {
+ return $this->description;
+ }
+
+ /**
+ * Output only. Description of the SKU.
+ *
+ * Generated from protobuf field string description = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setDescription($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->description = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Timeline of the SKU prices, in chronological order by
+ * `effective_time`.
+ * Each entry is active in the time range starting inclusively from the
+ * entry's `effective_time` and ending exclusively at the next entry's
+ * `effective_time`, if one exists, or else remaining active indefinitely if
+ * it is the final entry. The currently active entry is the entry with the
+ * latest `effective_time` that is in the past. Because of scheduled future
+ * price changes the currently active entry may not be the last entry in the
+ * timeline. A SKU does not necessarily have a currently active entry, as the
+ * SKU's first timeline entry may have an `effective_time` in the future.
+ *
+ * Generated from protobuf field repeated .google.cloud.commerceproducer.v1beta.Sku.SkuPrice sku_price_timeline = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return RepeatedField<\Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice>
+ */
+ public function getSkuPriceTimeline()
+ {
+ return $this->sku_price_timeline;
+ }
+
+ /**
+ * Output only. Timeline of the SKU prices, in chronological order by
+ * `effective_time`.
+ * Each entry is active in the time range starting inclusively from the
+ * entry's `effective_time` and ending exclusively at the next entry's
+ * `effective_time`, if one exists, or else remaining active indefinitely if
+ * it is the final entry. The currently active entry is the entry with the
+ * latest `effective_time` that is in the past. Because of scheduled future
+ * price changes the currently active entry may not be the last entry in the
+ * timeline. A SKU does not necessarily have a currently active entry, as the
+ * SKU's first timeline entry may have an `effective_time` in the future.
+ *
+ * Generated from protobuf field repeated .google.cloud.commerceproducer.v1beta.Sku.SkuPrice sku_price_timeline = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice[] $var
+ * @return $this
+ */
+ public function setSkuPriceTimeline($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice::class);
+ $this->sku_price_timeline = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/Sku/SkuPrice.php b/Commerceproducer/src/V1beta/Sku/SkuPrice.php
new file mode 100644
index 00000000000..eb4659af751
--- /dev/null
+++ b/Commerceproducer/src/V1beta/Sku/SkuPrice.php
@@ -0,0 +1,393 @@
+google.cloud.commerceproducer.v1beta.Sku.SkuPrice
+ */
+class SkuPrice extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The start of the time interval during which this price is
+ * effective.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp effective_time = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $effective_time = null;
+ protected $sku_type;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\InactiveSkuPrice $inactive
+ * Output only. The SKU has been disabled and has no price.
+ * SKUs, once created and allowed to go into effect, are never deleted.
+ * Disabled SKUs may accumulate over the lifetime of a product as the
+ * product's pricing evolves, and are retained for historical reference.
+ * A SKU in this state generally remains in this state indefinitely, but
+ * may be reactivated if needed. Clients must not depend on inactive SKUs
+ * remaining inactive.
+ * @type \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\ManagedServiceMetricUsageFee $managed_service_metric_usage_fee
+ * Output only. The SKU prices usage reported by the partner for a
+ * partner-defined custom billing metric.
+ * @type \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\ComputeEngineLicenseUsageFee $gce_license_usage_fee
+ * Output only. The SKU prices usage of a Compute Engine License via a
+ * license fee applied to running instances that use the license.
+ * @type \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\KubernetesEnginePodUsageFee $gke_pod_usage_fee
+ * Output only. The SKU prices usage of software deployed on Kubernetes
+ * Engine.
+ * @type \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\AiPlatformManagedModelUsageFee $ai_platform_managed_model_usage_fee
+ * Output only. The SKU prices usage of an AI Platform Managed Model
+ * (MaaS).
+ * @type \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\AiPlatformProvisionedThroughputFee $ai_platform_provisioned_throughput_fee
+ * Output only. The SKU prices reservation of AI Platform provisioned
+ * throughput.
+ * @type \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\AiPlatformDeployedModelUsageFee $ai_platform_deployed_model_usage_fee
+ * Output only. The SKU prices usage of an AI model deployed on AI
+ * Platform.
+ * @type \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\FlatSubscriptionFee $flat_subscription_fee
+ * Output only. The SKU applies a flat subscription fee.
+ * @type \Google\Protobuf\Timestamp $effective_time
+ * Output only. The start of the time interval during which this price is
+ * effective.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\Sku::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The SKU has been disabled and has no price.
+ * SKUs, once created and allowed to go into effect, are never deleted.
+ * Disabled SKUs may accumulate over the lifetime of a product as the
+ * product's pricing evolves, and are retained for historical reference.
+ * A SKU in this state generally remains in this state indefinitely, but
+ * may be reactivated if needed. Clients must not depend on inactive SKUs
+ * remaining inactive.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.InactiveSkuPrice inactive = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\InactiveSkuPrice|null
+ */
+ public function getInactive()
+ {
+ return $this->readOneof(2);
+ }
+
+ public function hasInactive()
+ {
+ return $this->hasOneof(2);
+ }
+
+ /**
+ * Output only. The SKU has been disabled and has no price.
+ * SKUs, once created and allowed to go into effect, are never deleted.
+ * Disabled SKUs may accumulate over the lifetime of a product as the
+ * product's pricing evolves, and are retained for historical reference.
+ * A SKU in this state generally remains in this state indefinitely, but
+ * may be reactivated if needed. Clients must not depend on inactive SKUs
+ * remaining inactive.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.InactiveSkuPrice inactive = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\InactiveSkuPrice $var
+ * @return $this
+ */
+ public function setInactive($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\InactiveSkuPrice::class);
+ $this->writeOneof(2, $var);
+
+ return $this;
+ }
+
+ /**
+ * Output only. The SKU prices usage reported by the partner for a
+ * partner-defined custom billing metric.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.ManagedServiceMetricUsageFee managed_service_metric_usage_fee = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\ManagedServiceMetricUsageFee|null
+ */
+ public function getManagedServiceMetricUsageFee()
+ {
+ return $this->readOneof(3);
+ }
+
+ public function hasManagedServiceMetricUsageFee()
+ {
+ return $this->hasOneof(3);
+ }
+
+ /**
+ * Output only. The SKU prices usage reported by the partner for a
+ * partner-defined custom billing metric.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.ManagedServiceMetricUsageFee managed_service_metric_usage_fee = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\ManagedServiceMetricUsageFee $var
+ * @return $this
+ */
+ public function setManagedServiceMetricUsageFee($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\ManagedServiceMetricUsageFee::class);
+ $this->writeOneof(3, $var);
+
+ return $this;
+ }
+
+ /**
+ * Output only. The SKU prices usage of a Compute Engine License via a
+ * license fee applied to running instances that use the license.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.ComputeEngineLicenseUsageFee gce_license_usage_fee = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\ComputeEngineLicenseUsageFee|null
+ */
+ public function getGceLicenseUsageFee()
+ {
+ return $this->readOneof(4);
+ }
+
+ public function hasGceLicenseUsageFee()
+ {
+ return $this->hasOneof(4);
+ }
+
+ /**
+ * Output only. The SKU prices usage of a Compute Engine License via a
+ * license fee applied to running instances that use the license.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.ComputeEngineLicenseUsageFee gce_license_usage_fee = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\ComputeEngineLicenseUsageFee $var
+ * @return $this
+ */
+ public function setGceLicenseUsageFee($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\ComputeEngineLicenseUsageFee::class);
+ $this->writeOneof(4, $var);
+
+ return $this;
+ }
+
+ /**
+ * Output only. The SKU prices usage of software deployed on Kubernetes
+ * Engine.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.KubernetesEnginePodUsageFee gke_pod_usage_fee = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\KubernetesEnginePodUsageFee|null
+ */
+ public function getGkePodUsageFee()
+ {
+ return $this->readOneof(5);
+ }
+
+ public function hasGkePodUsageFee()
+ {
+ return $this->hasOneof(5);
+ }
+
+ /**
+ * Output only. The SKU prices usage of software deployed on Kubernetes
+ * Engine.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.KubernetesEnginePodUsageFee gke_pod_usage_fee = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\KubernetesEnginePodUsageFee $var
+ * @return $this
+ */
+ public function setGkePodUsageFee($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\KubernetesEnginePodUsageFee::class);
+ $this->writeOneof(5, $var);
+
+ return $this;
+ }
+
+ /**
+ * Output only. The SKU prices usage of an AI Platform Managed Model
+ * (MaaS).
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformManagedModelUsageFee ai_platform_managed_model_usage_fee = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\AiPlatformManagedModelUsageFee|null
+ */
+ public function getAiPlatformManagedModelUsageFee()
+ {
+ return $this->readOneof(6);
+ }
+
+ public function hasAiPlatformManagedModelUsageFee()
+ {
+ return $this->hasOneof(6);
+ }
+
+ /**
+ * Output only. The SKU prices usage of an AI Platform Managed Model
+ * (MaaS).
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformManagedModelUsageFee ai_platform_managed_model_usage_fee = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\AiPlatformManagedModelUsageFee $var
+ * @return $this
+ */
+ public function setAiPlatformManagedModelUsageFee($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\AiPlatformManagedModelUsageFee::class);
+ $this->writeOneof(6, $var);
+
+ return $this;
+ }
+
+ /**
+ * Output only. The SKU prices reservation of AI Platform provisioned
+ * throughput.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformProvisionedThroughputFee ai_platform_provisioned_throughput_fee = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\AiPlatformProvisionedThroughputFee|null
+ */
+ public function getAiPlatformProvisionedThroughputFee()
+ {
+ return $this->readOneof(7);
+ }
+
+ public function hasAiPlatformProvisionedThroughputFee()
+ {
+ return $this->hasOneof(7);
+ }
+
+ /**
+ * Output only. The SKU prices reservation of AI Platform provisioned
+ * throughput.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformProvisionedThroughputFee ai_platform_provisioned_throughput_fee = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\AiPlatformProvisionedThroughputFee $var
+ * @return $this
+ */
+ public function setAiPlatformProvisionedThroughputFee($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\AiPlatformProvisionedThroughputFee::class);
+ $this->writeOneof(7, $var);
+
+ return $this;
+ }
+
+ /**
+ * Output only. The SKU prices usage of an AI model deployed on AI
+ * Platform.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformDeployedModelUsageFee ai_platform_deployed_model_usage_fee = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\AiPlatformDeployedModelUsageFee|null
+ */
+ public function getAiPlatformDeployedModelUsageFee()
+ {
+ return $this->readOneof(8);
+ }
+
+ public function hasAiPlatformDeployedModelUsageFee()
+ {
+ return $this->hasOneof(8);
+ }
+
+ /**
+ * Output only. The SKU prices usage of an AI model deployed on AI
+ * Platform.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformDeployedModelUsageFee ai_platform_deployed_model_usage_fee = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\AiPlatformDeployedModelUsageFee $var
+ * @return $this
+ */
+ public function setAiPlatformDeployedModelUsageFee($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\AiPlatformDeployedModelUsageFee::class);
+ $this->writeOneof(8, $var);
+
+ return $this;
+ }
+
+ /**
+ * Output only. The SKU applies a flat subscription fee.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.FlatSubscriptionFee flat_subscription_fee = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\FlatSubscriptionFee|null
+ */
+ public function getFlatSubscriptionFee()
+ {
+ return $this->readOneof(9);
+ }
+
+ public function hasFlatSubscriptionFee()
+ {
+ return $this->hasOneof(9);
+ }
+
+ /**
+ * Output only. The SKU applies a flat subscription fee.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.FlatSubscriptionFee flat_subscription_fee = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\FlatSubscriptionFee $var
+ * @return $this
+ */
+ public function setFlatSubscriptionFee($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\FlatSubscriptionFee::class);
+ $this->writeOneof(9, $var);
+
+ return $this;
+ }
+
+ /**
+ * Output only. The start of the time interval during which this price is
+ * effective.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp effective_time = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getEffectiveTime()
+ {
+ return $this->effective_time;
+ }
+
+ public function hasEffectiveTime()
+ {
+ return isset($this->effective_time);
+ }
+
+ public function clearEffectiveTime()
+ {
+ unset($this->effective_time);
+ }
+
+ /**
+ * Output only. The start of the time interval during which this price is
+ * effective.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp effective_time = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setEffectiveTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->effective_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getSkuType()
+ {
+ return $this->whichOneof("sku_type");
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/Sku/SkuPrice/AiPlatformDeployedModelUsageFee.php b/Commerceproducer/src/V1beta/Sku/SkuPrice/AiPlatformDeployedModelUsageFee.php
new file mode 100644
index 00000000000..d8d7c9ef7e7
--- /dev/null
+++ b/Commerceproducer/src/V1beta/Sku/SkuPrice/AiPlatformDeployedModelUsageFee.php
@@ -0,0 +1,212 @@
+google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformDeployedModelUsageFee
+ */
+class AiPlatformDeployedModelUsageFee extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The price unit of the SKU.
+ * See https://ucum.org/ucum.html for the format of the price unit.
+ * Currently the unit is always hours ('h'). This may change in future.
+ *
+ * Generated from protobuf field string unit = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $unit = '';
+ /**
+ * Output only. Determines how the customer's usage is calculated.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformDeployedModelUsageFee.UsageCalculation usage_calculation = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $usage_calculation = 0;
+ protected $hardware_resource;
+ protected $price_structure;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $accelerator_type
+ * Output only. The SKU applies to a specific accelerator type.
+ * Contains the name of the matching [AI Platform AcceleratorType](
+ * https://docs.cloud.google.com/gemini-enterprise-agent-platform/reference/rest/v1/MachineSpec#AcceleratorType).
+ * The corresponding linear scaling value is the dimensionless
+ * [`accelerator_count`](https://docs.cloud.google.com/gemini-enterprise-agent-platform/reference/rest/v1/MachineSpec#FIELDS.accelerator_count).
+ * @type \Google\Type\Money $price_per_unit
+ * Output only. The price per unit of usage.
+ * The customer's usage charge is computed by measuring the customer's
+ * consumption denominated in price units and multiplying by this price.
+ * @type string $unit
+ * Output only. The price unit of the SKU.
+ * See https://ucum.org/ucum.html for the format of the price unit.
+ * Currently the unit is always hours ('h'). This may change in future.
+ * @type int $usage_calculation
+ * Output only. Determines how the customer's usage is calculated.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\Sku::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The SKU applies to a specific accelerator type.
+ * Contains the name of the matching [AI Platform AcceleratorType](
+ * https://docs.cloud.google.com/gemini-enterprise-agent-platform/reference/rest/v1/MachineSpec#AcceleratorType).
+ * The corresponding linear scaling value is the dimensionless
+ * [`accelerator_count`](https://docs.cloud.google.com/gemini-enterprise-agent-platform/reference/rest/v1/MachineSpec#FIELDS.accelerator_count).
+ *
+ * Generated from protobuf field string accelerator_type = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getAcceleratorType()
+ {
+ return $this->readOneof(2);
+ }
+
+ public function hasAcceleratorType()
+ {
+ return $this->hasOneof(2);
+ }
+
+ /**
+ * Output only. The SKU applies to a specific accelerator type.
+ * Contains the name of the matching [AI Platform AcceleratorType](
+ * https://docs.cloud.google.com/gemini-enterprise-agent-platform/reference/rest/v1/MachineSpec#AcceleratorType).
+ * The corresponding linear scaling value is the dimensionless
+ * [`accelerator_count`](https://docs.cloud.google.com/gemini-enterprise-agent-platform/reference/rest/v1/MachineSpec#FIELDS.accelerator_count).
+ *
+ * Generated from protobuf field string accelerator_type = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setAcceleratorType($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->writeOneof(2, $var);
+
+ return $this;
+ }
+
+ /**
+ * Output only. The price per unit of usage.
+ * The customer's usage charge is computed by measuring the customer's
+ * consumption denominated in price units and multiplying by this price.
+ *
+ * Generated from protobuf field .google.type.Money price_per_unit = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Type\Money|null
+ */
+ public function getPricePerUnit()
+ {
+ return $this->readOneof(5);
+ }
+
+ public function hasPricePerUnit()
+ {
+ return $this->hasOneof(5);
+ }
+
+ /**
+ * Output only. The price per unit of usage.
+ * The customer's usage charge is computed by measuring the customer's
+ * consumption denominated in price units and multiplying by this price.
+ *
+ * Generated from protobuf field .google.type.Money price_per_unit = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Type\Money $var
+ * @return $this
+ */
+ public function setPricePerUnit($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Type\Money::class);
+ $this->writeOneof(5, $var);
+
+ return $this;
+ }
+
+ /**
+ * Output only. The price unit of the SKU.
+ * See https://ucum.org/ucum.html for the format of the price unit.
+ * Currently the unit is always hours ('h'). This may change in future.
+ *
+ * Generated from protobuf field string unit = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getUnit()
+ {
+ return $this->unit;
+ }
+
+ /**
+ * Output only. The price unit of the SKU.
+ * See https://ucum.org/ucum.html for the format of the price unit.
+ * Currently the unit is always hours ('h'). This may change in future.
+ *
+ * Generated from protobuf field string unit = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setUnit($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->unit = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Determines how the customer's usage is calculated.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformDeployedModelUsageFee.UsageCalculation usage_calculation = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getUsageCalculation()
+ {
+ return $this->usage_calculation;
+ }
+
+ /**
+ * Output only. Determines how the customer's usage is calculated.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformDeployedModelUsageFee.UsageCalculation usage_calculation = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setUsageCalculation($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\AiPlatformDeployedModelUsageFee\UsageCalculation::class);
+ $this->usage_calculation = $var;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getHardwareResource()
+ {
+ return $this->whichOneof("hardware_resource");
+ }
+
+ /**
+ * @return string
+ */
+ public function getPriceStructure()
+ {
+ return $this->whichOneof("price_structure");
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/Sku/SkuPrice/AiPlatformDeployedModelUsageFee/UsageCalculation.php b/Commerceproducer/src/V1beta/Sku/SkuPrice/AiPlatformDeployedModelUsageFee/UsageCalculation.php
new file mode 100644
index 00000000000..014d451cebd
--- /dev/null
+++ b/Commerceproducer/src/V1beta/Sku/SkuPrice/AiPlatformDeployedModelUsageFee/UsageCalculation.php
@@ -0,0 +1,60 @@
+google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformDeployedModelUsageFee.UsageCalculation
+ */
+class UsageCalculation
+{
+ /**
+ * Unused.
+ *
+ * Generated from protobuf enum USAGE_CALCULATION_UNSPECIFIED = 0;
+ */
+ const USAGE_CALCULATION_UNSPECIFIED = 0;
+ /**
+ * Usage is calculated from deployment runtime and size.
+ * Usage is calculated by measuring the deployment runtime in hours and
+ * multiplying by the amount of the deployed model's hardware resource
+ * matching the SKU's hardware resource type.
+ * This results in a composite `unit` of hours ('h') multiplied by the
+ * unit that denominates the hardware resource, though note that
+ * multiplying by the dimensionless unit ("1") has no effect.
+ *
+ * Generated from protobuf enum LINEAR_RESOURCE_SCALED_DEPLOYMENT_RUNTIME = 2;
+ */
+ const LINEAR_RESOURCE_SCALED_DEPLOYMENT_RUNTIME = 2;
+
+ private static $valueToName = [
+ self::USAGE_CALCULATION_UNSPECIFIED => 'USAGE_CALCULATION_UNSPECIFIED',
+ self::LINEAR_RESOURCE_SCALED_DEPLOYMENT_RUNTIME => 'LINEAR_RESOURCE_SCALED_DEPLOYMENT_RUNTIME',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
diff --git a/Commerceproducer/src/V1beta/Sku/SkuPrice/AiPlatformManagedModelEndpointLocation.php b/Commerceproducer/src/V1beta/Sku/SkuPrice/AiPlatformManagedModelEndpointLocation.php
new file mode 100644
index 00000000000..d7e640ec7e2
--- /dev/null
+++ b/Commerceproducer/src/V1beta/Sku/SkuPrice/AiPlatformManagedModelEndpointLocation.php
@@ -0,0 +1,151 @@
+google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformManagedModelEndpointLocation
+ */
+class AiPlatformManagedModelEndpointLocation extends \Google\Protobuf\Internal\Message
+{
+ protected $location;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $region_id
+ * Output only. The SKU applies to a region.
+ * @type bool $global_endpoint
+ * Output only. The SKU applies to a [global
+ * endpoint](https://docs.cloud.google.com/gemini-enterprise-agent-platform/resources/locations).
+ * **Note**: This is distinct from the conventional meaning of "global"
+ * as a SKU that applies to all locations.
+ * @type string $multi_region_id
+ * Output only. The SKU applies to a multi-region.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\Sku::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The SKU applies to a region.
+ *
+ * Generated from protobuf field string region_id = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getRegionId()
+ {
+ return $this->readOneof(1);
+ }
+
+ public function hasRegionId()
+ {
+ return $this->hasOneof(1);
+ }
+
+ /**
+ * Output only. The SKU applies to a region.
+ *
+ * Generated from protobuf field string region_id = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setRegionId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->writeOneof(1, $var);
+
+ return $this;
+ }
+
+ /**
+ * Output only. The SKU applies to a [global
+ * endpoint](https://docs.cloud.google.com/gemini-enterprise-agent-platform/resources/locations).
+ * **Note**: This is distinct from the conventional meaning of "global"
+ * as a SKU that applies to all locations.
+ *
+ * Generated from protobuf field bool global_endpoint = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return bool
+ */
+ public function getGlobalEndpoint()
+ {
+ return $this->readOneof(2);
+ }
+
+ public function hasGlobalEndpoint()
+ {
+ return $this->hasOneof(2);
+ }
+
+ /**
+ * Output only. The SKU applies to a [global
+ * endpoint](https://docs.cloud.google.com/gemini-enterprise-agent-platform/resources/locations).
+ * **Note**: This is distinct from the conventional meaning of "global"
+ * as a SKU that applies to all locations.
+ *
+ * Generated from protobuf field bool global_endpoint = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param bool $var
+ * @return $this
+ */
+ public function setGlobalEndpoint($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->writeOneof(2, $var);
+
+ return $this;
+ }
+
+ /**
+ * Output only. The SKU applies to a multi-region.
+ *
+ * Generated from protobuf field string multi_region_id = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getMultiRegionId()
+ {
+ return $this->readOneof(3);
+ }
+
+ public function hasMultiRegionId()
+ {
+ return $this->hasOneof(3);
+ }
+
+ /**
+ * Output only. The SKU applies to a multi-region.
+ *
+ * Generated from protobuf field string multi_region_id = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setMultiRegionId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->writeOneof(3, $var);
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getLocation()
+ {
+ return $this->whichOneof("location");
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/Sku/SkuPrice/AiPlatformManagedModelUsageFee.php b/Commerceproducer/src/V1beta/Sku/SkuPrice/AiPlatformManagedModelUsageFee.php
new file mode 100644
index 00000000000..d879761da56
--- /dev/null
+++ b/Commerceproducer/src/V1beta/Sku/SkuPrice/AiPlatformManagedModelUsageFee.php
@@ -0,0 +1,356 @@
+google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformManagedModelUsageFee
+ */
+class AiPlatformManagedModelUsageFee extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The usage metric that the SKU applies to.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformManagedModelUsageFee.AiPlatformManagedModelUsageMetric usage_metric = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $usage_metric = null;
+ /**
+ * Output only. The model endpoint location where usage is priced by this
+ * SKU. If no location is specified, the SKU applies to usage in all
+ * locations.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformManagedModelEndpointLocation location = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $location = null;
+ /**
+ * Output only. The prediction mode of requests that the SKU applies to.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformManagedModelUsageFee.PredictionMode prediction_mode = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $prediction_mode = 0;
+ /**
+ * Output only. The range of aggregated input token values covered by the
+ * SKU. Unset if the SKU is not scoped to a particular range. A request is
+ * in scope for this SKU if its aggregated input token value falls within
+ * the range. The collection of SKUs in effect at any given time scoped to
+ * a particular aggregated input token value range will cover all possible
+ * values without overlap. Such a collection of SKUs form a "tiered" price
+ * structure over the possible value, with each SKU acting as a "tier".
+ * NOTE: This is distinct from a SKU with [tiered
+ * pricing](https://cloud.google.com/billing/docs/how-to/pricing-table#tiered-pricing).
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformManagedModelUsageFee.CombinedRequestInputTokensRange combined_request_input_tokens_range = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $combined_request_input_tokens_range = null;
+ /**
+ * Output only. Set when the SKU is a historical provisioned throughput
+ * overage SKU. Starting 2025-08-26 such SKUs have no effect, and usage in
+ * excess of provisioned throughput quota is now metered as standard
+ * usage. This field is set only in historical SKU timeline entries for
+ * overage SKUs belonging to partners that offered provisioned throughput
+ * for AI Platform managed model products prior to the unification of
+ * standard usage and provisioned throughput overage metering.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformManagedModelUsageFee.ProvisionedThroughputOverage provisioned_throughput_overage = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $provisioned_throughput_overage = null;
+ protected $price_structure;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\TieredPrice $tiered_price
+ * Output only. [Tiered
+ * pricing](https://cloud.google.com/billing/docs/how-to/pricing-table#tiered-pricing)
+ * of the SKU.
+ * @type \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\AiPlatformManagedModelUsageFee\AiPlatformManagedModelUsageMetric $usage_metric
+ * Output only. The usage metric that the SKU applies to.
+ * @type \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\AiPlatformManagedModelEndpointLocation $location
+ * Output only. The model endpoint location where usage is priced by this
+ * SKU. If no location is specified, the SKU applies to usage in all
+ * locations.
+ * @type int $prediction_mode
+ * Output only. The prediction mode of requests that the SKU applies to.
+ * @type \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\AiPlatformManagedModelUsageFee\CombinedRequestInputTokensRange $combined_request_input_tokens_range
+ * Output only. The range of aggregated input token values covered by the
+ * SKU. Unset if the SKU is not scoped to a particular range. A request is
+ * in scope for this SKU if its aggregated input token value falls within
+ * the range. The collection of SKUs in effect at any given time scoped to
+ * a particular aggregated input token value range will cover all possible
+ * values without overlap. Such a collection of SKUs form a "tiered" price
+ * structure over the possible value, with each SKU acting as a "tier".
+ * NOTE: This is distinct from a SKU with [tiered
+ * pricing](https://cloud.google.com/billing/docs/how-to/pricing-table#tiered-pricing).
+ * @type \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\AiPlatformManagedModelUsageFee\ProvisionedThroughputOverage $provisioned_throughput_overage
+ * Output only. Set when the SKU is a historical provisioned throughput
+ * overage SKU. Starting 2025-08-26 such SKUs have no effect, and usage in
+ * excess of provisioned throughput quota is now metered as standard
+ * usage. This field is set only in historical SKU timeline entries for
+ * overage SKUs belonging to partners that offered provisioned throughput
+ * for AI Platform managed model products prior to the unification of
+ * standard usage and provisioned throughput overage metering.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\Sku::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. [Tiered
+ * pricing](https://cloud.google.com/billing/docs/how-to/pricing-table#tiered-pricing)
+ * of the SKU.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.TieredPrice tiered_price = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\TieredPrice|null
+ */
+ public function getTieredPrice()
+ {
+ return $this->readOneof(7);
+ }
+
+ public function hasTieredPrice()
+ {
+ return $this->hasOneof(7);
+ }
+
+ /**
+ * Output only. [Tiered
+ * pricing](https://cloud.google.com/billing/docs/how-to/pricing-table#tiered-pricing)
+ * of the SKU.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.TieredPrice tiered_price = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\TieredPrice $var
+ * @return $this
+ */
+ public function setTieredPrice($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\TieredPrice::class);
+ $this->writeOneof(7, $var);
+
+ return $this;
+ }
+
+ /**
+ * Output only. The usage metric that the SKU applies to.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformManagedModelUsageFee.AiPlatformManagedModelUsageMetric usage_metric = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\AiPlatformManagedModelUsageFee\AiPlatformManagedModelUsageMetric|null
+ */
+ public function getUsageMetric()
+ {
+ return $this->usage_metric;
+ }
+
+ public function hasUsageMetric()
+ {
+ return isset($this->usage_metric);
+ }
+
+ public function clearUsageMetric()
+ {
+ unset($this->usage_metric);
+ }
+
+ /**
+ * Output only. The usage metric that the SKU applies to.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformManagedModelUsageFee.AiPlatformManagedModelUsageMetric usage_metric = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\AiPlatformManagedModelUsageFee\AiPlatformManagedModelUsageMetric $var
+ * @return $this
+ */
+ public function setUsageMetric($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\AiPlatformManagedModelUsageFee\AiPlatformManagedModelUsageMetric::class);
+ $this->usage_metric = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The model endpoint location where usage is priced by this
+ * SKU. If no location is specified, the SKU applies to usage in all
+ * locations.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformManagedModelEndpointLocation location = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\AiPlatformManagedModelEndpointLocation|null
+ */
+ public function getLocation()
+ {
+ return $this->location;
+ }
+
+ public function hasLocation()
+ {
+ return isset($this->location);
+ }
+
+ public function clearLocation()
+ {
+ unset($this->location);
+ }
+
+ /**
+ * Output only. The model endpoint location where usage is priced by this
+ * SKU. If no location is specified, the SKU applies to usage in all
+ * locations.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformManagedModelEndpointLocation location = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\AiPlatformManagedModelEndpointLocation $var
+ * @return $this
+ */
+ public function setLocation($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\AiPlatformManagedModelEndpointLocation::class);
+ $this->location = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The prediction mode of requests that the SKU applies to.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformManagedModelUsageFee.PredictionMode prediction_mode = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getPredictionMode()
+ {
+ return $this->prediction_mode;
+ }
+
+ /**
+ * Output only. The prediction mode of requests that the SKU applies to.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformManagedModelUsageFee.PredictionMode prediction_mode = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setPredictionMode($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\AiPlatformManagedModelUsageFee\PredictionMode::class);
+ $this->prediction_mode = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The range of aggregated input token values covered by the
+ * SKU. Unset if the SKU is not scoped to a particular range. A request is
+ * in scope for this SKU if its aggregated input token value falls within
+ * the range. The collection of SKUs in effect at any given time scoped to
+ * a particular aggregated input token value range will cover all possible
+ * values without overlap. Such a collection of SKUs form a "tiered" price
+ * structure over the possible value, with each SKU acting as a "tier".
+ * NOTE: This is distinct from a SKU with [tiered
+ * pricing](https://cloud.google.com/billing/docs/how-to/pricing-table#tiered-pricing).
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformManagedModelUsageFee.CombinedRequestInputTokensRange combined_request_input_tokens_range = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\AiPlatformManagedModelUsageFee\CombinedRequestInputTokensRange|null
+ */
+ public function getCombinedRequestInputTokensRange()
+ {
+ return $this->combined_request_input_tokens_range;
+ }
+
+ public function hasCombinedRequestInputTokensRange()
+ {
+ return isset($this->combined_request_input_tokens_range);
+ }
+
+ public function clearCombinedRequestInputTokensRange()
+ {
+ unset($this->combined_request_input_tokens_range);
+ }
+
+ /**
+ * Output only. The range of aggregated input token values covered by the
+ * SKU. Unset if the SKU is not scoped to a particular range. A request is
+ * in scope for this SKU if its aggregated input token value falls within
+ * the range. The collection of SKUs in effect at any given time scoped to
+ * a particular aggregated input token value range will cover all possible
+ * values without overlap. Such a collection of SKUs form a "tiered" price
+ * structure over the possible value, with each SKU acting as a "tier".
+ * NOTE: This is distinct from a SKU with [tiered
+ * pricing](https://cloud.google.com/billing/docs/how-to/pricing-table#tiered-pricing).
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformManagedModelUsageFee.CombinedRequestInputTokensRange combined_request_input_tokens_range = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\AiPlatformManagedModelUsageFee\CombinedRequestInputTokensRange $var
+ * @return $this
+ */
+ public function setCombinedRequestInputTokensRange($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\AiPlatformManagedModelUsageFee\CombinedRequestInputTokensRange::class);
+ $this->combined_request_input_tokens_range = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Set when the SKU is a historical provisioned throughput
+ * overage SKU. Starting 2025-08-26 such SKUs have no effect, and usage in
+ * excess of provisioned throughput quota is now metered as standard
+ * usage. This field is set only in historical SKU timeline entries for
+ * overage SKUs belonging to partners that offered provisioned throughput
+ * for AI Platform managed model products prior to the unification of
+ * standard usage and provisioned throughput overage metering.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformManagedModelUsageFee.ProvisionedThroughputOverage provisioned_throughput_overage = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\AiPlatformManagedModelUsageFee\ProvisionedThroughputOverage|null
+ */
+ public function getProvisionedThroughputOverage()
+ {
+ return $this->provisioned_throughput_overage;
+ }
+
+ public function hasProvisionedThroughputOverage()
+ {
+ return isset($this->provisioned_throughput_overage);
+ }
+
+ public function clearProvisionedThroughputOverage()
+ {
+ unset($this->provisioned_throughput_overage);
+ }
+
+ /**
+ * Output only. Set when the SKU is a historical provisioned throughput
+ * overage SKU. Starting 2025-08-26 such SKUs have no effect, and usage in
+ * excess of provisioned throughput quota is now metered as standard
+ * usage. This field is set only in historical SKU timeline entries for
+ * overage SKUs belonging to partners that offered provisioned throughput
+ * for AI Platform managed model products prior to the unification of
+ * standard usage and provisioned throughput overage metering.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformManagedModelUsageFee.ProvisionedThroughputOverage provisioned_throughput_overage = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\AiPlatformManagedModelUsageFee\ProvisionedThroughputOverage $var
+ * @return $this
+ */
+ public function setProvisionedThroughputOverage($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\AiPlatformManagedModelUsageFee\ProvisionedThroughputOverage::class);
+ $this->provisioned_throughput_overage = $var;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getPriceStructure()
+ {
+ return $this->whichOneof("price_structure");
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/Sku/SkuPrice/AiPlatformManagedModelUsageFee/AiPlatformManagedModelUsageMetric.php b/Commerceproducer/src/V1beta/Sku/SkuPrice/AiPlatformManagedModelUsageFee/AiPlatformManagedModelUsageMetric.php
new file mode 100644
index 00000000000..f7bc636c8fe
--- /dev/null
+++ b/Commerceproducer/src/V1beta/Sku/SkuPrice/AiPlatformManagedModelUsageFee/AiPlatformManagedModelUsageMetric.php
@@ -0,0 +1,207 @@
+google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformManagedModelUsageFee.AiPlatformManagedModelUsageMetric
+ */
+class AiPlatformManagedModelUsageMetric extends \Google\Protobuf\Internal\Message
+{
+ protected $metric;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\AiPlatformManagedModelUsageFee\AiPlatformManagedModelUsageMetric\InputTokensMetric $input_tokens_metric
+ * Output only. Input tokens read from the prediction endpoint input.
+ * @type \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\AiPlatformManagedModelUsageFee\AiPlatformManagedModelUsageMetric\CacheReadInputTokensMetric $cache_read_input_tokens_metric
+ * Output only. Input tokens read from the cache.
+ * @type \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\AiPlatformManagedModelUsageFee\AiPlatformManagedModelUsageMetric\CacheWriteInputTokensMetric $cache_write_input_tokens_metric
+ * Output only. Input tokens written to the cache.
+ * @type \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\AiPlatformManagedModelUsageFee\AiPlatformManagedModelUsageMetric\OutputTokensMetric $output_tokens_metric
+ * Output only. Output tokens returned from the prediction endpoint.
+ * @type \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\AiPlatformManagedModelUsageFee\AiPlatformManagedModelUsageMetric\WebSearchRequestsMetric $web_search_requests_metric
+ * Output only. Web search requests executed by the model.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\Sku::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. Input tokens read from the prediction endpoint input.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformManagedModelUsageFee.AiPlatformManagedModelUsageMetric.InputTokensMetric input_tokens_metric = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\AiPlatformManagedModelUsageFee\AiPlatformManagedModelUsageMetric\InputTokensMetric|null
+ */
+ public function getInputTokensMetric()
+ {
+ return $this->readOneof(1);
+ }
+
+ public function hasInputTokensMetric()
+ {
+ return $this->hasOneof(1);
+ }
+
+ /**
+ * Output only. Input tokens read from the prediction endpoint input.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformManagedModelUsageFee.AiPlatformManagedModelUsageMetric.InputTokensMetric input_tokens_metric = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\AiPlatformManagedModelUsageFee\AiPlatformManagedModelUsageMetric\InputTokensMetric $var
+ * @return $this
+ */
+ public function setInputTokensMetric($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\AiPlatformManagedModelUsageFee\AiPlatformManagedModelUsageMetric\InputTokensMetric::class);
+ $this->writeOneof(1, $var);
+
+ return $this;
+ }
+
+ /**
+ * Output only. Input tokens read from the cache.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformManagedModelUsageFee.AiPlatformManagedModelUsageMetric.CacheReadInputTokensMetric cache_read_input_tokens_metric = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\AiPlatformManagedModelUsageFee\AiPlatformManagedModelUsageMetric\CacheReadInputTokensMetric|null
+ */
+ public function getCacheReadInputTokensMetric()
+ {
+ return $this->readOneof(2);
+ }
+
+ public function hasCacheReadInputTokensMetric()
+ {
+ return $this->hasOneof(2);
+ }
+
+ /**
+ * Output only. Input tokens read from the cache.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformManagedModelUsageFee.AiPlatformManagedModelUsageMetric.CacheReadInputTokensMetric cache_read_input_tokens_metric = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\AiPlatformManagedModelUsageFee\AiPlatformManagedModelUsageMetric\CacheReadInputTokensMetric $var
+ * @return $this
+ */
+ public function setCacheReadInputTokensMetric($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\AiPlatformManagedModelUsageFee\AiPlatformManagedModelUsageMetric\CacheReadInputTokensMetric::class);
+ $this->writeOneof(2, $var);
+
+ return $this;
+ }
+
+ /**
+ * Output only. Input tokens written to the cache.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformManagedModelUsageFee.AiPlatformManagedModelUsageMetric.CacheWriteInputTokensMetric cache_write_input_tokens_metric = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\AiPlatformManagedModelUsageFee\AiPlatformManagedModelUsageMetric\CacheWriteInputTokensMetric|null
+ */
+ public function getCacheWriteInputTokensMetric()
+ {
+ return $this->readOneof(3);
+ }
+
+ public function hasCacheWriteInputTokensMetric()
+ {
+ return $this->hasOneof(3);
+ }
+
+ /**
+ * Output only. Input tokens written to the cache.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformManagedModelUsageFee.AiPlatformManagedModelUsageMetric.CacheWriteInputTokensMetric cache_write_input_tokens_metric = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\AiPlatformManagedModelUsageFee\AiPlatformManagedModelUsageMetric\CacheWriteInputTokensMetric $var
+ * @return $this
+ */
+ public function setCacheWriteInputTokensMetric($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\AiPlatformManagedModelUsageFee\AiPlatformManagedModelUsageMetric\CacheWriteInputTokensMetric::class);
+ $this->writeOneof(3, $var);
+
+ return $this;
+ }
+
+ /**
+ * Output only. Output tokens returned from the prediction endpoint.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformManagedModelUsageFee.AiPlatformManagedModelUsageMetric.OutputTokensMetric output_tokens_metric = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\AiPlatformManagedModelUsageFee\AiPlatformManagedModelUsageMetric\OutputTokensMetric|null
+ */
+ public function getOutputTokensMetric()
+ {
+ return $this->readOneof(4);
+ }
+
+ public function hasOutputTokensMetric()
+ {
+ return $this->hasOneof(4);
+ }
+
+ /**
+ * Output only. Output tokens returned from the prediction endpoint.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformManagedModelUsageFee.AiPlatformManagedModelUsageMetric.OutputTokensMetric output_tokens_metric = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\AiPlatformManagedModelUsageFee\AiPlatformManagedModelUsageMetric\OutputTokensMetric $var
+ * @return $this
+ */
+ public function setOutputTokensMetric($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\AiPlatformManagedModelUsageFee\AiPlatformManagedModelUsageMetric\OutputTokensMetric::class);
+ $this->writeOneof(4, $var);
+
+ return $this;
+ }
+
+ /**
+ * Output only. Web search requests executed by the model.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformManagedModelUsageFee.AiPlatformManagedModelUsageMetric.WebSearchRequestsMetric web_search_requests_metric = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\AiPlatformManagedModelUsageFee\AiPlatformManagedModelUsageMetric\WebSearchRequestsMetric|null
+ */
+ public function getWebSearchRequestsMetric()
+ {
+ return $this->readOneof(5);
+ }
+
+ public function hasWebSearchRequestsMetric()
+ {
+ return $this->hasOneof(5);
+ }
+
+ /**
+ * Output only. Web search requests executed by the model.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformManagedModelUsageFee.AiPlatformManagedModelUsageMetric.WebSearchRequestsMetric web_search_requests_metric = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\AiPlatformManagedModelUsageFee\AiPlatformManagedModelUsageMetric\WebSearchRequestsMetric $var
+ * @return $this
+ */
+ public function setWebSearchRequestsMetric($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\AiPlatformManagedModelUsageFee\AiPlatformManagedModelUsageMetric\WebSearchRequestsMetric::class);
+ $this->writeOneof(5, $var);
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getMetric()
+ {
+ return $this->whichOneof("metric");
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/Sku/SkuPrice/AiPlatformManagedModelUsageFee/AiPlatformManagedModelUsageMetric/CacheReadInputTokensMetric.php b/Commerceproducer/src/V1beta/Sku/SkuPrice/AiPlatformManagedModelUsageFee/AiPlatformManagedModelUsageMetric/CacheReadInputTokensMetric.php
new file mode 100644
index 00000000000..caabf1d13bc
--- /dev/null
+++ b/Commerceproducer/src/V1beta/Sku/SkuPrice/AiPlatformManagedModelUsageFee/AiPlatformManagedModelUsageMetric/CacheReadInputTokensMetric.php
@@ -0,0 +1,34 @@
+google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformManagedModelUsageFee.AiPlatformManagedModelUsageMetric.CacheReadInputTokensMetric
+ */
+class CacheReadInputTokensMetric extends \Google\Protobuf\Internal\Message
+{
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\Sku::initOnce();
+ parent::__construct($data);
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/Sku/SkuPrice/AiPlatformManagedModelUsageFee/AiPlatformManagedModelUsageMetric/CacheWriteInputTokensMetric.php b/Commerceproducer/src/V1beta/Sku/SkuPrice/AiPlatformManagedModelUsageFee/AiPlatformManagedModelUsageMetric/CacheWriteInputTokensMetric.php
new file mode 100644
index 00000000000..a58e3fba981
--- /dev/null
+++ b/Commerceproducer/src/V1beta/Sku/SkuPrice/AiPlatformManagedModelUsageFee/AiPlatformManagedModelUsageMetric/CacheWriteInputTokensMetric.php
@@ -0,0 +1,78 @@
+google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformManagedModelUsageFee.AiPlatformManagedModelUsageMetric.CacheWriteInputTokensMetric
+ */
+class CacheWriteInputTokensMetric extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The duration the write is retained in the cache.
+ *
+ * Generated from protobuf field .google.protobuf.Duration ttl = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $ttl = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Protobuf\Duration $ttl
+ * Output only. The duration the write is retained in the cache.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\Sku::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The duration the write is retained in the cache.
+ *
+ * Generated from protobuf field .google.protobuf.Duration ttl = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Duration|null
+ */
+ public function getTtl()
+ {
+ return $this->ttl;
+ }
+
+ public function hasTtl()
+ {
+ return isset($this->ttl);
+ }
+
+ public function clearTtl()
+ {
+ unset($this->ttl);
+ }
+
+ /**
+ * Output only. The duration the write is retained in the cache.
+ *
+ * Generated from protobuf field .google.protobuf.Duration ttl = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Duration $var
+ * @return $this
+ */
+ public function setTtl($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class);
+ $this->ttl = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/Sku/SkuPrice/AiPlatformManagedModelUsageFee/AiPlatformManagedModelUsageMetric/InputTokensMetric.php b/Commerceproducer/src/V1beta/Sku/SkuPrice/AiPlatformManagedModelUsageFee/AiPlatformManagedModelUsageMetric/InputTokensMetric.php
new file mode 100644
index 00000000000..e15f9086674
--- /dev/null
+++ b/Commerceproducer/src/V1beta/Sku/SkuPrice/AiPlatformManagedModelUsageFee/AiPlatformManagedModelUsageMetric/InputTokensMetric.php
@@ -0,0 +1,34 @@
+google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformManagedModelUsageFee.AiPlatformManagedModelUsageMetric.InputTokensMetric
+ */
+class InputTokensMetric extends \Google\Protobuf\Internal\Message
+{
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\Sku::initOnce();
+ parent::__construct($data);
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/Sku/SkuPrice/AiPlatformManagedModelUsageFee/AiPlatformManagedModelUsageMetric/OutputTokensMetric.php b/Commerceproducer/src/V1beta/Sku/SkuPrice/AiPlatformManagedModelUsageFee/AiPlatformManagedModelUsageMetric/OutputTokensMetric.php
new file mode 100644
index 00000000000..9cd5a1b06bd
--- /dev/null
+++ b/Commerceproducer/src/V1beta/Sku/SkuPrice/AiPlatformManagedModelUsageFee/AiPlatformManagedModelUsageMetric/OutputTokensMetric.php
@@ -0,0 +1,34 @@
+google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformManagedModelUsageFee.AiPlatformManagedModelUsageMetric.OutputTokensMetric
+ */
+class OutputTokensMetric extends \Google\Protobuf\Internal\Message
+{
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\Sku::initOnce();
+ parent::__construct($data);
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/Sku/SkuPrice/AiPlatformManagedModelUsageFee/AiPlatformManagedModelUsageMetric/WebSearchRequestsMetric.php b/Commerceproducer/src/V1beta/Sku/SkuPrice/AiPlatformManagedModelUsageFee/AiPlatformManagedModelUsageMetric/WebSearchRequestsMetric.php
new file mode 100644
index 00000000000..381deac43a1
--- /dev/null
+++ b/Commerceproducer/src/V1beta/Sku/SkuPrice/AiPlatformManagedModelUsageFee/AiPlatformManagedModelUsageMetric/WebSearchRequestsMetric.php
@@ -0,0 +1,34 @@
+google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformManagedModelUsageFee.AiPlatformManagedModelUsageMetric.WebSearchRequestsMetric
+ */
+class WebSearchRequestsMetric extends \Google\Protobuf\Internal\Message
+{
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\Sku::initOnce();
+ parent::__construct($data);
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/Sku/SkuPrice/AiPlatformManagedModelUsageFee/CombinedRequestInputTokensRange.php b/Commerceproducer/src/V1beta/Sku/SkuPrice/AiPlatformManagedModelUsageFee/CombinedRequestInputTokensRange.php
new file mode 100644
index 00000000000..6c5e983055d
--- /dev/null
+++ b/Commerceproducer/src/V1beta/Sku/SkuPrice/AiPlatformManagedModelUsageFee/CombinedRequestInputTokensRange.php
@@ -0,0 +1,120 @@
+google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformManagedModelUsageFee.CombinedRequestInputTokensRange
+ */
+class CombinedRequestInputTokensRange extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The inclusive lower bound of the range.
+ *
+ * Generated from protobuf field int64 start_value = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $start_value = 0;
+ /**
+ * Output only. The exclusive upper bound of the range.
+ * If no end value is specified, the range is unbounded from above.
+ *
+ * Generated from protobuf field optional int64 end_value = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $end_value = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int|string $start_value
+ * Output only. The inclusive lower bound of the range.
+ * @type int|string $end_value
+ * Output only. The exclusive upper bound of the range.
+ * If no end value is specified, the range is unbounded from above.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\Sku::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The inclusive lower bound of the range.
+ *
+ * Generated from protobuf field int64 start_value = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int|string
+ */
+ public function getStartValue()
+ {
+ return $this->start_value;
+ }
+
+ /**
+ * Output only. The inclusive lower bound of the range.
+ *
+ * Generated from protobuf field int64 start_value = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int|string $var
+ * @return $this
+ */
+ public function setStartValue($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->start_value = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The exclusive upper bound of the range.
+ * If no end value is specified, the range is unbounded from above.
+ *
+ * Generated from protobuf field optional int64 end_value = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int|string
+ */
+ public function getEndValue()
+ {
+ return isset($this->end_value) ? $this->end_value : 0;
+ }
+
+ public function hasEndValue()
+ {
+ return isset($this->end_value);
+ }
+
+ public function clearEndValue()
+ {
+ unset($this->end_value);
+ }
+
+ /**
+ * Output only. The exclusive upper bound of the range.
+ * If no end value is specified, the range is unbounded from above.
+ *
+ * Generated from protobuf field optional int64 end_value = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int|string $var
+ * @return $this
+ */
+ public function setEndValue($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->end_value = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/Sku/SkuPrice/AiPlatformManagedModelUsageFee/PredictionMode.php b/Commerceproducer/src/V1beta/Sku/SkuPrice/AiPlatformManagedModelUsageFee/PredictionMode.php
new file mode 100644
index 00000000000..0776913acb6
--- /dev/null
+++ b/Commerceproducer/src/V1beta/Sku/SkuPrice/AiPlatformManagedModelUsageFee/PredictionMode.php
@@ -0,0 +1,61 @@
+google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformManagedModelUsageFee.PredictionMode
+ */
+class PredictionMode
+{
+ /**
+ * The SKU does not distinguish between prediction modes.
+ *
+ * Generated from protobuf enum PREDICTION_MODE_UNSPECIFIED = 0;
+ */
+ const PREDICTION_MODE_UNSPECIFIED = 0;
+ /**
+ * The SKU applies to online prediction.
+ *
+ * Generated from protobuf enum ONLINE_PREDICTION = 1;
+ */
+ const ONLINE_PREDICTION = 1;
+ /**
+ * The SKU applies to batch prediction.
+ *
+ * Generated from protobuf enum BATCH_PREDICTION = 2;
+ */
+ const BATCH_PREDICTION = 2;
+
+ private static $valueToName = [
+ self::PREDICTION_MODE_UNSPECIFIED => 'PREDICTION_MODE_UNSPECIFIED',
+ self::ONLINE_PREDICTION => 'ONLINE_PREDICTION',
+ self::BATCH_PREDICTION => 'BATCH_PREDICTION',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
diff --git a/Commerceproducer/src/V1beta/Sku/SkuPrice/AiPlatformManagedModelUsageFee/ProvisionedThroughputOverage.php b/Commerceproducer/src/V1beta/Sku/SkuPrice/AiPlatformManagedModelUsageFee/ProvisionedThroughputOverage.php
new file mode 100644
index 00000000000..5b24b62e684
--- /dev/null
+++ b/Commerceproducer/src/V1beta/Sku/SkuPrice/AiPlatformManagedModelUsageFee/ProvisionedThroughputOverage.php
@@ -0,0 +1,69 @@
+google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformManagedModelUsageFee.ProvisionedThroughputOverage
+ */
+class ProvisionedThroughputOverage extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The service whose usage the overage SKU applied to.
+ *
+ * Generated from protobuf field string service = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ */
+ protected $service = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $service
+ * Output only. The service whose usage the overage SKU applied to.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\Sku::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The service whose usage the overage SKU applied to.
+ *
+ * Generated from protobuf field string service = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getService()
+ {
+ return $this->service;
+ }
+
+ /**
+ * Output only. The service whose usage the overage SKU applied to.
+ *
+ * Generated from protobuf field string service = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setService($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->service = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/Sku/SkuPrice/AiPlatformProvisionedThroughputFee.php b/Commerceproducer/src/V1beta/Sku/SkuPrice/AiPlatformProvisionedThroughputFee.php
new file mode 100644
index 00000000000..90dab293336
--- /dev/null
+++ b/Commerceproducer/src/V1beta/Sku/SkuPrice/AiPlatformProvisionedThroughputFee.php
@@ -0,0 +1,287 @@
+google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformProvisionedThroughputFee
+ */
+class AiPlatformProvisionedThroughputFee extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The location where provisioned throughput is priced by
+ * this SKU.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformManagedModelEndpointLocation location = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $location = null;
+ /**
+ * Output only. The price unit of the SKU.
+ * See https://ucum.org/ucum.html for the format of the price unit.
+ * Since provisioned throughput reservations are billed by duration, this
+ * will always be a time unit. The price unit of a provisioned throughput
+ * SKU is not necessarily the same as the reservation term.
+ * This field is unrelated to the [Generative AI Scale Unit
+ * (GSU)](https://docs.cloud.google.com/gemini-enterprise-agent-platform/models/provisioned-throughput/measure-provisioned-throughput).
+ * Currently the unit is always months ('mo').
+ * Additional time units may be supported in future.
+ * The customary unit month ('mo') requires special handling to account
+ * for the variable duration of months. A price may be denominated in
+ * units of months, but the duration the reservation is active is measured
+ * in metric time and customers are billed on that basis. The exact hourly
+ * or per-second price can be calculated by dividing the monthly price
+ * by the number of hours or seconds in the desired month. A reservation
+ * active for N months is rarely billed exactly N times the monthly price.
+ * This is intended and is not a billing error.
+ *
+ * Generated from protobuf field string unit = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $unit = '';
+ protected $term;
+ protected $price_structure;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $term_duration_months
+ * Output only. The duration of the provisioned throughput reservation
+ * in months.
+ * @type \Google\Type\Money $gsu_price_per_unit
+ * The price per [Generative AI Scale Unit
+ * (GSU)](https://docs.cloud.google.com/gemini-enterprise-agent-platform/models/provisioned-throughput/measure-provisioned-throughput)
+ * per `unit`.
+ * A provisioned throughput reservation reserves a certain number of
+ * GSUs, and the customer is billed for those GSUs on a continuous basis
+ * for the duration of the reservation.
+ * @type \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\AiPlatformManagedModelEndpointLocation $location
+ * Output only. The location where provisioned throughput is priced by
+ * this SKU.
+ * @type string $unit
+ * Output only. The price unit of the SKU.
+ * See https://ucum.org/ucum.html for the format of the price unit.
+ * Since provisioned throughput reservations are billed by duration, this
+ * will always be a time unit. The price unit of a provisioned throughput
+ * SKU is not necessarily the same as the reservation term.
+ * This field is unrelated to the [Generative AI Scale Unit
+ * (GSU)](https://docs.cloud.google.com/gemini-enterprise-agent-platform/models/provisioned-throughput/measure-provisioned-throughput).
+ * Currently the unit is always months ('mo').
+ * Additional time units may be supported in future.
+ * The customary unit month ('mo') requires special handling to account
+ * for the variable duration of months. A price may be denominated in
+ * units of months, but the duration the reservation is active is measured
+ * in metric time and customers are billed on that basis. The exact hourly
+ * or per-second price can be calculated by dividing the monthly price
+ * by the number of hours or seconds in the desired month. A reservation
+ * active for N months is rarely billed exactly N times the monthly price.
+ * This is intended and is not a billing error.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\Sku::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The duration of the provisioned throughput reservation
+ * in months.
+ *
+ * Generated from protobuf field int32 term_duration_months = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getTermDurationMonths()
+ {
+ return $this->readOneof(2);
+ }
+
+ public function hasTermDurationMonths()
+ {
+ return $this->hasOneof(2);
+ }
+
+ /**
+ * Output only. The duration of the provisioned throughput reservation
+ * in months.
+ *
+ * Generated from protobuf field int32 term_duration_months = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setTermDurationMonths($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->writeOneof(2, $var);
+
+ return $this;
+ }
+
+ /**
+ * The price per [Generative AI Scale Unit
+ * (GSU)](https://docs.cloud.google.com/gemini-enterprise-agent-platform/models/provisioned-throughput/measure-provisioned-throughput)
+ * per `unit`.
+ * A provisioned throughput reservation reserves a certain number of
+ * GSUs, and the customer is billed for those GSUs on a continuous basis
+ * for the duration of the reservation.
+ *
+ * Generated from protobuf field .google.type.Money gsu_price_per_unit = 4;
+ * @return \Google\Type\Money|null
+ */
+ public function getGsuPricePerUnit()
+ {
+ return $this->readOneof(4);
+ }
+
+ public function hasGsuPricePerUnit()
+ {
+ return $this->hasOneof(4);
+ }
+
+ /**
+ * The price per [Generative AI Scale Unit
+ * (GSU)](https://docs.cloud.google.com/gemini-enterprise-agent-platform/models/provisioned-throughput/measure-provisioned-throughput)
+ * per `unit`.
+ * A provisioned throughput reservation reserves a certain number of
+ * GSUs, and the customer is billed for those GSUs on a continuous basis
+ * for the duration of the reservation.
+ *
+ * Generated from protobuf field .google.type.Money gsu_price_per_unit = 4;
+ * @param \Google\Type\Money $var
+ * @return $this
+ */
+ public function setGsuPricePerUnit($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Type\Money::class);
+ $this->writeOneof(4, $var);
+
+ return $this;
+ }
+
+ /**
+ * Output only. The location where provisioned throughput is priced by
+ * this SKU.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformManagedModelEndpointLocation location = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\AiPlatformManagedModelEndpointLocation|null
+ */
+ public function getLocation()
+ {
+ return $this->location;
+ }
+
+ public function hasLocation()
+ {
+ return isset($this->location);
+ }
+
+ public function clearLocation()
+ {
+ unset($this->location);
+ }
+
+ /**
+ * Output only. The location where provisioned throughput is priced by
+ * this SKU.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.AiPlatformManagedModelEndpointLocation location = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\AiPlatformManagedModelEndpointLocation $var
+ * @return $this
+ */
+ public function setLocation($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\AiPlatformManagedModelEndpointLocation::class);
+ $this->location = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The price unit of the SKU.
+ * See https://ucum.org/ucum.html for the format of the price unit.
+ * Since provisioned throughput reservations are billed by duration, this
+ * will always be a time unit. The price unit of a provisioned throughput
+ * SKU is not necessarily the same as the reservation term.
+ * This field is unrelated to the [Generative AI Scale Unit
+ * (GSU)](https://docs.cloud.google.com/gemini-enterprise-agent-platform/models/provisioned-throughput/measure-provisioned-throughput).
+ * Currently the unit is always months ('mo').
+ * Additional time units may be supported in future.
+ * The customary unit month ('mo') requires special handling to account
+ * for the variable duration of months. A price may be denominated in
+ * units of months, but the duration the reservation is active is measured
+ * in metric time and customers are billed on that basis. The exact hourly
+ * or per-second price can be calculated by dividing the monthly price
+ * by the number of hours or seconds in the desired month. A reservation
+ * active for N months is rarely billed exactly N times the monthly price.
+ * This is intended and is not a billing error.
+ *
+ * Generated from protobuf field string unit = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getUnit()
+ {
+ return $this->unit;
+ }
+
+ /**
+ * Output only. The price unit of the SKU.
+ * See https://ucum.org/ucum.html for the format of the price unit.
+ * Since provisioned throughput reservations are billed by duration, this
+ * will always be a time unit. The price unit of a provisioned throughput
+ * SKU is not necessarily the same as the reservation term.
+ * This field is unrelated to the [Generative AI Scale Unit
+ * (GSU)](https://docs.cloud.google.com/gemini-enterprise-agent-platform/models/provisioned-throughput/measure-provisioned-throughput).
+ * Currently the unit is always months ('mo').
+ * Additional time units may be supported in future.
+ * The customary unit month ('mo') requires special handling to account
+ * for the variable duration of months. A price may be denominated in
+ * units of months, but the duration the reservation is active is measured
+ * in metric time and customers are billed on that basis. The exact hourly
+ * or per-second price can be calculated by dividing the monthly price
+ * by the number of hours or seconds in the desired month. A reservation
+ * active for N months is rarely billed exactly N times the monthly price.
+ * This is intended and is not a billing error.
+ *
+ * Generated from protobuf field string unit = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setUnit($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->unit = $var;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getTerm()
+ {
+ return $this->whichOneof("term");
+ }
+
+ /**
+ * @return string
+ */
+ public function getPriceStructure()
+ {
+ return $this->whichOneof("price_structure");
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/Sku/SkuPrice/ComputeEngineLicenseUsageFee.php b/Commerceproducer/src/V1beta/Sku/SkuPrice/ComputeEngineLicenseUsageFee.php
new file mode 100644
index 00000000000..f7703460d17
--- /dev/null
+++ b/Commerceproducer/src/V1beta/Sku/SkuPrice/ComputeEngineLicenseUsageFee.php
@@ -0,0 +1,354 @@
+google.cloud.commerceproducer.v1beta.Sku.SkuPrice.ComputeEngineLicenseUsageFee
+ */
+class ComputeEngineLicenseUsageFee extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The license code of the target Compute Engine License.
+ * Note that this is the numeric license code itself in uint64 format used
+ * to reference licenses attached to images, not the resource name of the
+ * related [Compute Engine LicenseCode
+ * resource](https://cloud.google.com/compute/docs/reference/rest/v1/licenseCodes).
+ * Example: "1234567890123456789"
+ *
+ * Generated from protobuf field string license_code = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $license_code = '';
+ /**
+ * Output only. The machine resource type that the SKU applies to, if any.
+ * SKUs with a non-default value are referred to as "resource-based" SKUs.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.ComputeEngineLicenseUsageFee.MachineResource machine_resource = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $machine_resource = 0;
+ /**
+ * Output only. The range of machine resource values that the SKU applies
+ * to. Unset when the SKU is not scoped to a particular machine resource
+ * type. The collection of SKUs in effect at any given time targeting the
+ * same license and machine resource type will cover all possible values
+ * for that machine resource type without overlap. Such a collection of
+ * SKUs form a "tiered" price structure over the possible values of the
+ * machine resource, with each SKU acting as a "tier".
+ * NOTE: This is distinct from a SKU with [tiered
+ * pricing](https://cloud.google.com/billing/docs/how-to/pricing-table#tiered-pricing).
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.ComputeEngineLicenseUsageFee.MachineResourceRange machine_resource_range = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $machine_resource_range = null;
+ /**
+ * Output only. Determines how the customer's usage is calculated.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.ComputeEngineLicenseUsageFee.UsageCalculation usage_calculation = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $usage_calculation = 0;
+ /**
+ * Output only. The price unit of the SKU.
+ * See https://ucum.org/ucum.html for the format of the price unit.
+ * For linear-priced memory SKUs, the price unit is 'GiBy.h'.
+ * For all other SKUs, the price unit is 'h'. This includes linear-priced
+ * vCPU and GPU SKUs because these resources have unitless dimensions and
+ * the application of these scaling factors does not change the price
+ * unit.
+ *
+ * Generated from protobuf field string unit = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $unit = '';
+ protected $price_structure;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Type\Money $price_per_unit
+ * The price per unit of usage.
+ * The customer's usage charge is computed by measuring the customer's
+ * consumption denominated in price units and multiplying by this price.
+ * @type string $license_code
+ * Output only. The license code of the target Compute Engine License.
+ * Note that this is the numeric license code itself in uint64 format used
+ * to reference licenses attached to images, not the resource name of the
+ * related [Compute Engine LicenseCode
+ * resource](https://cloud.google.com/compute/docs/reference/rest/v1/licenseCodes).
+ * Example: "1234567890123456789"
+ * @type int $machine_resource
+ * Output only. The machine resource type that the SKU applies to, if any.
+ * SKUs with a non-default value are referred to as "resource-based" SKUs.
+ * @type \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\ComputeEngineLicenseUsageFee\MachineResourceRange $machine_resource_range
+ * Output only. The range of machine resource values that the SKU applies
+ * to. Unset when the SKU is not scoped to a particular machine resource
+ * type. The collection of SKUs in effect at any given time targeting the
+ * same license and machine resource type will cover all possible values
+ * for that machine resource type without overlap. Such a collection of
+ * SKUs form a "tiered" price structure over the possible values of the
+ * machine resource, with each SKU acting as a "tier".
+ * NOTE: This is distinct from a SKU with [tiered
+ * pricing](https://cloud.google.com/billing/docs/how-to/pricing-table#tiered-pricing).
+ * @type int $usage_calculation
+ * Output only. Determines how the customer's usage is calculated.
+ * @type string $unit
+ * Output only. The price unit of the SKU.
+ * See https://ucum.org/ucum.html for the format of the price unit.
+ * For linear-priced memory SKUs, the price unit is 'GiBy.h'.
+ * For all other SKUs, the price unit is 'h'. This includes linear-priced
+ * vCPU and GPU SKUs because these resources have unitless dimensions and
+ * the application of these scaling factors does not change the price
+ * unit.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\Sku::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The price per unit of usage.
+ * The customer's usage charge is computed by measuring the customer's
+ * consumption denominated in price units and multiplying by this price.
+ *
+ * Generated from protobuf field .google.type.Money price_per_unit = 6;
+ * @return \Google\Type\Money|null
+ */
+ public function getPricePerUnit()
+ {
+ return $this->readOneof(6);
+ }
+
+ public function hasPricePerUnit()
+ {
+ return $this->hasOneof(6);
+ }
+
+ /**
+ * The price per unit of usage.
+ * The customer's usage charge is computed by measuring the customer's
+ * consumption denominated in price units and multiplying by this price.
+ *
+ * Generated from protobuf field .google.type.Money price_per_unit = 6;
+ * @param \Google\Type\Money $var
+ * @return $this
+ */
+ public function setPricePerUnit($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Type\Money::class);
+ $this->writeOneof(6, $var);
+
+ return $this;
+ }
+
+ /**
+ * Output only. The license code of the target Compute Engine License.
+ * Note that this is the numeric license code itself in uint64 format used
+ * to reference licenses attached to images, not the resource name of the
+ * related [Compute Engine LicenseCode
+ * resource](https://cloud.google.com/compute/docs/reference/rest/v1/licenseCodes).
+ * Example: "1234567890123456789"
+ *
+ * Generated from protobuf field string license_code = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getLicenseCode()
+ {
+ return $this->license_code;
+ }
+
+ /**
+ * Output only. The license code of the target Compute Engine License.
+ * Note that this is the numeric license code itself in uint64 format used
+ * to reference licenses attached to images, not the resource name of the
+ * related [Compute Engine LicenseCode
+ * resource](https://cloud.google.com/compute/docs/reference/rest/v1/licenseCodes).
+ * Example: "1234567890123456789"
+ *
+ * Generated from protobuf field string license_code = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setLicenseCode($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->license_code = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The machine resource type that the SKU applies to, if any.
+ * SKUs with a non-default value are referred to as "resource-based" SKUs.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.ComputeEngineLicenseUsageFee.MachineResource machine_resource = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getMachineResource()
+ {
+ return $this->machine_resource;
+ }
+
+ /**
+ * Output only. The machine resource type that the SKU applies to, if any.
+ * SKUs with a non-default value are referred to as "resource-based" SKUs.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.ComputeEngineLicenseUsageFee.MachineResource machine_resource = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setMachineResource($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\ComputeEngineLicenseUsageFee\MachineResource::class);
+ $this->machine_resource = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The range of machine resource values that the SKU applies
+ * to. Unset when the SKU is not scoped to a particular machine resource
+ * type. The collection of SKUs in effect at any given time targeting the
+ * same license and machine resource type will cover all possible values
+ * for that machine resource type without overlap. Such a collection of
+ * SKUs form a "tiered" price structure over the possible values of the
+ * machine resource, with each SKU acting as a "tier".
+ * NOTE: This is distinct from a SKU with [tiered
+ * pricing](https://cloud.google.com/billing/docs/how-to/pricing-table#tiered-pricing).
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.ComputeEngineLicenseUsageFee.MachineResourceRange machine_resource_range = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\ComputeEngineLicenseUsageFee\MachineResourceRange|null
+ */
+ public function getMachineResourceRange()
+ {
+ return $this->machine_resource_range;
+ }
+
+ public function hasMachineResourceRange()
+ {
+ return isset($this->machine_resource_range);
+ }
+
+ public function clearMachineResourceRange()
+ {
+ unset($this->machine_resource_range);
+ }
+
+ /**
+ * Output only. The range of machine resource values that the SKU applies
+ * to. Unset when the SKU is not scoped to a particular machine resource
+ * type. The collection of SKUs in effect at any given time targeting the
+ * same license and machine resource type will cover all possible values
+ * for that machine resource type without overlap. Such a collection of
+ * SKUs form a "tiered" price structure over the possible values of the
+ * machine resource, with each SKU acting as a "tier".
+ * NOTE: This is distinct from a SKU with [tiered
+ * pricing](https://cloud.google.com/billing/docs/how-to/pricing-table#tiered-pricing).
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.ComputeEngineLicenseUsageFee.MachineResourceRange machine_resource_range = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\ComputeEngineLicenseUsageFee\MachineResourceRange $var
+ * @return $this
+ */
+ public function setMachineResourceRange($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\ComputeEngineLicenseUsageFee\MachineResourceRange::class);
+ $this->machine_resource_range = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Determines how the customer's usage is calculated.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.ComputeEngineLicenseUsageFee.UsageCalculation usage_calculation = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getUsageCalculation()
+ {
+ return $this->usage_calculation;
+ }
+
+ /**
+ * Output only. Determines how the customer's usage is calculated.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.ComputeEngineLicenseUsageFee.UsageCalculation usage_calculation = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setUsageCalculation($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\ComputeEngineLicenseUsageFee\UsageCalculation::class);
+ $this->usage_calculation = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The price unit of the SKU.
+ * See https://ucum.org/ucum.html for the format of the price unit.
+ * For linear-priced memory SKUs, the price unit is 'GiBy.h'.
+ * For all other SKUs, the price unit is 'h'. This includes linear-priced
+ * vCPU and GPU SKUs because these resources have unitless dimensions and
+ * the application of these scaling factors does not change the price
+ * unit.
+ *
+ * Generated from protobuf field string unit = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getUnit()
+ {
+ return $this->unit;
+ }
+
+ /**
+ * Output only. The price unit of the SKU.
+ * See https://ucum.org/ucum.html for the format of the price unit.
+ * For linear-priced memory SKUs, the price unit is 'GiBy.h'.
+ * For all other SKUs, the price unit is 'h'. This includes linear-priced
+ * vCPU and GPU SKUs because these resources have unitless dimensions and
+ * the application of these scaling factors does not change the price
+ * unit.
+ *
+ * Generated from protobuf field string unit = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setUnit($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->unit = $var;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getPriceStructure()
+ {
+ return $this->whichOneof("price_structure");
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/Sku/SkuPrice/ComputeEngineLicenseUsageFee/MachineResource.php b/Commerceproducer/src/V1beta/Sku/SkuPrice/ComputeEngineLicenseUsageFee/MachineResource.php
new file mode 100644
index 00000000000..bf6d2e74237
--- /dev/null
+++ b/Commerceproducer/src/V1beta/Sku/SkuPrice/ComputeEngineLicenseUsageFee/MachineResource.php
@@ -0,0 +1,70 @@
+google.cloud.commerceproducer.v1beta.Sku.SkuPrice.ComputeEngineLicenseUsageFee.MachineResource
+ */
+class MachineResource
+{
+ /**
+ * The SKU applies to all instances irrespective of machine shape.
+ * This is referred to as "instance-based pricing" because the price
+ * is the same for all instances.
+ *
+ * Generated from protobuf enum MACHINE_RESOURCE_UNSPECIFIED = 0;
+ */
+ const MACHINE_RESOURCE_UNSPECIFIED = 0;
+ /**
+ * The SKU applies based on the instance's vCPU count.
+ *
+ * Generated from protobuf enum VCPU_COUNT = 1;
+ */
+ const VCPU_COUNT = 1;
+ /**
+ * The SKU applies based on the instance's memory size in bytes.
+ *
+ * Generated from protobuf enum MEMORY_BYTES = 2;
+ */
+ const MEMORY_BYTES = 2;
+ /**
+ * The SKU applies based on the instance's GPU count.
+ *
+ * Generated from protobuf enum GPU_COUNT = 3;
+ */
+ const GPU_COUNT = 3;
+
+ private static $valueToName = [
+ self::MACHINE_RESOURCE_UNSPECIFIED => 'MACHINE_RESOURCE_UNSPECIFIED',
+ self::VCPU_COUNT => 'VCPU_COUNT',
+ self::MEMORY_BYTES => 'MEMORY_BYTES',
+ self::GPU_COUNT => 'GPU_COUNT',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
diff --git a/Commerceproducer/src/V1beta/Sku/SkuPrice/ComputeEngineLicenseUsageFee/MachineResourceRange.php b/Commerceproducer/src/V1beta/Sku/SkuPrice/ComputeEngineLicenseUsageFee/MachineResourceRange.php
new file mode 100644
index 00000000000..38290feb6a8
--- /dev/null
+++ b/Commerceproducer/src/V1beta/Sku/SkuPrice/ComputeEngineLicenseUsageFee/MachineResourceRange.php
@@ -0,0 +1,131 @@
+google.cloud.commerceproducer.v1beta.Sku.SkuPrice.ComputeEngineLicenseUsageFee.MachineResourceRange
+ */
+class MachineResourceRange extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The inclusive lower bound of the range.
+ * While the number zero may be the start of a range, it is not a
+ * possible machine resource value. An instance cannot exist with zero
+ * vCPU or memory, and an instance with no attached accelerators lacks a
+ * GPU dimension entirely rather than having a GPU count of zero.
+ *
+ * Generated from protobuf field int64 start_value = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $start_value = 0;
+ /**
+ * Output only. The exclusive upper bound of the range.
+ * If no end value is specified, the range is unbounded from above.
+ *
+ * Generated from protobuf field optional int64 end_value = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $end_value = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int|string $start_value
+ * Output only. The inclusive lower bound of the range.
+ * While the number zero may be the start of a range, it is not a
+ * possible machine resource value. An instance cannot exist with zero
+ * vCPU or memory, and an instance with no attached accelerators lacks a
+ * GPU dimension entirely rather than having a GPU count of zero.
+ * @type int|string $end_value
+ * Output only. The exclusive upper bound of the range.
+ * If no end value is specified, the range is unbounded from above.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\Sku::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The inclusive lower bound of the range.
+ * While the number zero may be the start of a range, it is not a
+ * possible machine resource value. An instance cannot exist with zero
+ * vCPU or memory, and an instance with no attached accelerators lacks a
+ * GPU dimension entirely rather than having a GPU count of zero.
+ *
+ * Generated from protobuf field int64 start_value = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int|string
+ */
+ public function getStartValue()
+ {
+ return $this->start_value;
+ }
+
+ /**
+ * Output only. The inclusive lower bound of the range.
+ * While the number zero may be the start of a range, it is not a
+ * possible machine resource value. An instance cannot exist with zero
+ * vCPU or memory, and an instance with no attached accelerators lacks a
+ * GPU dimension entirely rather than having a GPU count of zero.
+ *
+ * Generated from protobuf field int64 start_value = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int|string $var
+ * @return $this
+ */
+ public function setStartValue($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->start_value = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The exclusive upper bound of the range.
+ * If no end value is specified, the range is unbounded from above.
+ *
+ * Generated from protobuf field optional int64 end_value = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int|string
+ */
+ public function getEndValue()
+ {
+ return isset($this->end_value) ? $this->end_value : 0;
+ }
+
+ public function hasEndValue()
+ {
+ return isset($this->end_value);
+ }
+
+ public function clearEndValue()
+ {
+ unset($this->end_value);
+ }
+
+ /**
+ * Output only. The exclusive upper bound of the range.
+ * If no end value is specified, the range is unbounded from above.
+ *
+ * Generated from protobuf field optional int64 end_value = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int|string $var
+ * @return $this
+ */
+ public function setEndValue($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->end_value = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/Sku/SkuPrice/ComputeEngineLicenseUsageFee/UsageCalculation.php b/Commerceproducer/src/V1beta/Sku/SkuPrice/ComputeEngineLicenseUsageFee/UsageCalculation.php
new file mode 100644
index 00000000000..6d419d0846f
--- /dev/null
+++ b/Commerceproducer/src/V1beta/Sku/SkuPrice/ComputeEngineLicenseUsageFee/UsageCalculation.php
@@ -0,0 +1,81 @@
+google.cloud.commerceproducer.v1beta.Sku.SkuPrice.ComputeEngineLicenseUsageFee.UsageCalculation
+ */
+class UsageCalculation
+{
+ /**
+ * Unused.
+ *
+ * Generated from protobuf enum USAGE_CALCULATION_UNSPECIFIED = 0;
+ */
+ const USAGE_CALCULATION_UNSPECIFIED = 0;
+ /**
+ * Usage is calculated from instance runtime.
+ * The customer's usage is metered according to the [Compute Engine VM
+ * instance pricing
+ * model](https://cloud.google.com/compute/vm-instance-pricing),
+ * measured on a per-instance basis in units of hours, with a minimum
+ * duration of one minute and an increment of one second.
+ * A SKU using this usage calculation is referred to as "flat" because
+ * the customer's usage charge is independent of the instance's machine
+ * resource shape apart from determining whether the SKU applies to the
+ * instance.
+ *
+ * Generated from protobuf enum INSTANCE_RUNTIME = 1;
+ */
+ const INSTANCE_RUNTIME = 1;
+ /**
+ * Usage is calculated from instance runtime and size.
+ * This calculation mode is only applicable to resource-based SKUs.
+ * Usage is calculated by measuring the instance runtime in the same
+ * manner as for `INSTANCE_RUNTIME` and multiplying by the instance's
+ * machine resource value matching the SKU's machine resource type.
+ * This converts the price from per-instance-hour to
+ * per-instance-hour-per-machine-resource, which changes the price unit
+ * for memory SKUs to 'GiBy.h'. The price unit otherwise remains 'h'
+ * because the other machine resources are dimensionless.
+ * A SKU using this usage calculation is referred to as "linear" because
+ * the customer's usage charge is linearly proportional to the
+ * instance's machine resource value.
+ *
+ * Generated from protobuf enum LINEAR_RESOURCE_SCALED_INSTANCE_RUNTIME = 2;
+ */
+ const LINEAR_RESOURCE_SCALED_INSTANCE_RUNTIME = 2;
+
+ private static $valueToName = [
+ self::USAGE_CALCULATION_UNSPECIFIED => 'USAGE_CALCULATION_UNSPECIFIED',
+ self::INSTANCE_RUNTIME => 'INSTANCE_RUNTIME',
+ self::LINEAR_RESOURCE_SCALED_INSTANCE_RUNTIME => 'LINEAR_RESOURCE_SCALED_INSTANCE_RUNTIME',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
diff --git a/Commerceproducer/src/V1beta/Sku/SkuPrice/FlatSubscriptionFee.php b/Commerceproducer/src/V1beta/Sku/SkuPrice/FlatSubscriptionFee.php
new file mode 100644
index 00000000000..9b226101494
--- /dev/null
+++ b/Commerceproducer/src/V1beta/Sku/SkuPrice/FlatSubscriptionFee.php
@@ -0,0 +1,169 @@
+google.cloud.commerceproducer.v1beta.Sku.SkuPrice.FlatSubscriptionFee
+ */
+class FlatSubscriptionFee extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The unit of the subscription SKU.
+ * See https://ucum.org/ucum.html for the format of the price unit.
+ * Since subscriptions are billed by duration, this will always be a time
+ * unit. The price unit of a subscription SKU is not necessarily the same
+ * as the subscription period of the corresponding StandardOffers.
+ * Currently the unit is always months ('mo').
+ * Additional time units may be supported in future.
+ * The unit month ('mo') is a customary time unit and requires special
+ * handling to account for the variable duration of months. A price may be
+ * denominated in units of months, but the duration the subscription is
+ * active is measured in metric time and customers are billed on that
+ * basis. The exact hourly or per-second price can be calculated by
+ * dividing the monthly price by the number of hours or seconds in the
+ * desired month. A subscription active for N months is rarely billed
+ * exactly N times the monthly price. This is intended and is not a
+ * billing error.
+ *
+ * Generated from protobuf field string unit = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $unit = '';
+ protected $price_structure;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Type\Money $price_per_unit
+ * Output only. The price per time unit the subscription is active.
+ * @type string $unit
+ * Output only. The unit of the subscription SKU.
+ * See https://ucum.org/ucum.html for the format of the price unit.
+ * Since subscriptions are billed by duration, this will always be a time
+ * unit. The price unit of a subscription SKU is not necessarily the same
+ * as the subscription period of the corresponding StandardOffers.
+ * Currently the unit is always months ('mo').
+ * Additional time units may be supported in future.
+ * The unit month ('mo') is a customary time unit and requires special
+ * handling to account for the variable duration of months. A price may be
+ * denominated in units of months, but the duration the subscription is
+ * active is measured in metric time and customers are billed on that
+ * basis. The exact hourly or per-second price can be calculated by
+ * dividing the monthly price by the number of hours or seconds in the
+ * desired month. A subscription active for N months is rarely billed
+ * exactly N times the monthly price. This is intended and is not a
+ * billing error.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\Sku::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The price per time unit the subscription is active.
+ *
+ * Generated from protobuf field .google.type.Money price_per_unit = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Type\Money|null
+ */
+ public function getPricePerUnit()
+ {
+ return $this->readOneof(3);
+ }
+
+ public function hasPricePerUnit()
+ {
+ return $this->hasOneof(3);
+ }
+
+ /**
+ * Output only. The price per time unit the subscription is active.
+ *
+ * Generated from protobuf field .google.type.Money price_per_unit = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Type\Money $var
+ * @return $this
+ */
+ public function setPricePerUnit($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Type\Money::class);
+ $this->writeOneof(3, $var);
+
+ return $this;
+ }
+
+ /**
+ * Output only. The unit of the subscription SKU.
+ * See https://ucum.org/ucum.html for the format of the price unit.
+ * Since subscriptions are billed by duration, this will always be a time
+ * unit. The price unit of a subscription SKU is not necessarily the same
+ * as the subscription period of the corresponding StandardOffers.
+ * Currently the unit is always months ('mo').
+ * Additional time units may be supported in future.
+ * The unit month ('mo') is a customary time unit and requires special
+ * handling to account for the variable duration of months. A price may be
+ * denominated in units of months, but the duration the subscription is
+ * active is measured in metric time and customers are billed on that
+ * basis. The exact hourly or per-second price can be calculated by
+ * dividing the monthly price by the number of hours or seconds in the
+ * desired month. A subscription active for N months is rarely billed
+ * exactly N times the monthly price. This is intended and is not a
+ * billing error.
+ *
+ * Generated from protobuf field string unit = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getUnit()
+ {
+ return $this->unit;
+ }
+
+ /**
+ * Output only. The unit of the subscription SKU.
+ * See https://ucum.org/ucum.html for the format of the price unit.
+ * Since subscriptions are billed by duration, this will always be a time
+ * unit. The price unit of a subscription SKU is not necessarily the same
+ * as the subscription period of the corresponding StandardOffers.
+ * Currently the unit is always months ('mo').
+ * Additional time units may be supported in future.
+ * The unit month ('mo') is a customary time unit and requires special
+ * handling to account for the variable duration of months. A price may be
+ * denominated in units of months, but the duration the subscription is
+ * active is measured in metric time and customers are billed on that
+ * basis. The exact hourly or per-second price can be calculated by
+ * dividing the monthly price by the number of hours or seconds in the
+ * desired month. A subscription active for N months is rarely billed
+ * exactly N times the monthly price. This is intended and is not a
+ * billing error.
+ *
+ * Generated from protobuf field string unit = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setUnit($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->unit = $var;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getPriceStructure()
+ {
+ return $this->whichOneof("price_structure");
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/Sku/SkuPrice/InactiveSkuPrice.php b/Commerceproducer/src/V1beta/Sku/SkuPrice/InactiveSkuPrice.php
new file mode 100644
index 00000000000..11dab1de0d3
--- /dev/null
+++ b/Commerceproducer/src/V1beta/Sku/SkuPrice/InactiveSkuPrice.php
@@ -0,0 +1,33 @@
+google.cloud.commerceproducer.v1beta.Sku.SkuPrice.InactiveSkuPrice
+ */
+class InactiveSkuPrice extends \Google\Protobuf\Internal\Message
+{
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\Sku::initOnce();
+ parent::__construct($data);
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/Sku/SkuPrice/KubernetesEnginePodUsageFee.php b/Commerceproducer/src/V1beta/Sku/SkuPrice/KubernetesEnginePodUsageFee.php
new file mode 100644
index 00000000000..14584dcfdfa
--- /dev/null
+++ b/Commerceproducer/src/V1beta/Sku/SkuPrice/KubernetesEnginePodUsageFee.php
@@ -0,0 +1,294 @@
+google.cloud.commerceproducer.v1beta.Sku.SkuPrice.KubernetesEnginePodUsageFee
+ */
+class KubernetesEnginePodUsageFee extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The pod resource type that the SKU applies to.
+ * SKUs with a non-default value are referred to as "resource-based" SKUs.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.KubernetesEnginePodUsageFee.PodResource pod_resource = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $pod_resource = 0;
+ /**
+ * Output only. The range of pod resource values that the SKU applies to.
+ * The collection of SKUs in effect at any given time targeting the same
+ * service annotation and pod resource type will cover all possible values
+ * for that pod resource type without overlap. Such a collection of SKUs
+ * form a "tiered" price structure over the possible values of the pod
+ * resource, with each SKU acting as a "tier".
+ * NOTE: This is distinct from a SKU with [tiered
+ * pricing](https://cloud.google.com/billing/docs/how-to/pricing-table#tiered-pricing).
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.KubernetesEnginePodUsageFee.PodResourceRange pod_resource_range = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $pod_resource_range = null;
+ /**
+ * Output only. Determines how the customer's usage is calculated.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.KubernetesEnginePodUsageFee.UsageCalculation usage_calculation = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $usage_calculation = 0;
+ /**
+ * Output only. The price unit of the SKU.
+ * See https://ucum.org/ucum.html for the format of the price unit.
+ * For linear-priced memory SKUs, the price unit is 'GiBy.h'.
+ * For all other SKUs, the price unit is 'h'. This includes linear-priced
+ * VCPU, GPU, and TPU SKUs because these resources have unitless
+ * dimensions and the application of these scaling factors does not change
+ * the price unit.
+ *
+ * Generated from protobuf field string unit = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $unit = '';
+ protected $price_structure;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Type\Money $price_per_unit
+ * The price per unit of usage.
+ * The customer's usage charge is computed by measuring the customer's
+ * consumption denominated in price units and multiplying by this price.
+ * @type int $pod_resource
+ * Output only. The pod resource type that the SKU applies to.
+ * SKUs with a non-default value are referred to as "resource-based" SKUs.
+ * @type \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\KubernetesEnginePodUsageFee\PodResourceRange $pod_resource_range
+ * Output only. The range of pod resource values that the SKU applies to.
+ * The collection of SKUs in effect at any given time targeting the same
+ * service annotation and pod resource type will cover all possible values
+ * for that pod resource type without overlap. Such a collection of SKUs
+ * form a "tiered" price structure over the possible values of the pod
+ * resource, with each SKU acting as a "tier".
+ * NOTE: This is distinct from a SKU with [tiered
+ * pricing](https://cloud.google.com/billing/docs/how-to/pricing-table#tiered-pricing).
+ * @type int $usage_calculation
+ * Output only. Determines how the customer's usage is calculated.
+ * @type string $unit
+ * Output only. The price unit of the SKU.
+ * See https://ucum.org/ucum.html for the format of the price unit.
+ * For linear-priced memory SKUs, the price unit is 'GiBy.h'.
+ * For all other SKUs, the price unit is 'h'. This includes linear-priced
+ * VCPU, GPU, and TPU SKUs because these resources have unitless
+ * dimensions and the application of these scaling factors does not change
+ * the price unit.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\Sku::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The price per unit of usage.
+ * The customer's usage charge is computed by measuring the customer's
+ * consumption denominated in price units and multiplying by this price.
+ *
+ * Generated from protobuf field .google.type.Money price_per_unit = 6;
+ * @return \Google\Type\Money|null
+ */
+ public function getPricePerUnit()
+ {
+ return $this->readOneof(6);
+ }
+
+ public function hasPricePerUnit()
+ {
+ return $this->hasOneof(6);
+ }
+
+ /**
+ * The price per unit of usage.
+ * The customer's usage charge is computed by measuring the customer's
+ * consumption denominated in price units and multiplying by this price.
+ *
+ * Generated from protobuf field .google.type.Money price_per_unit = 6;
+ * @param \Google\Type\Money $var
+ * @return $this
+ */
+ public function setPricePerUnit($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Type\Money::class);
+ $this->writeOneof(6, $var);
+
+ return $this;
+ }
+
+ /**
+ * Output only. The pod resource type that the SKU applies to.
+ * SKUs with a non-default value are referred to as "resource-based" SKUs.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.KubernetesEnginePodUsageFee.PodResource pod_resource = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getPodResource()
+ {
+ return $this->pod_resource;
+ }
+
+ /**
+ * Output only. The pod resource type that the SKU applies to.
+ * SKUs with a non-default value are referred to as "resource-based" SKUs.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.KubernetesEnginePodUsageFee.PodResource pod_resource = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setPodResource($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\KubernetesEnginePodUsageFee\PodResource::class);
+ $this->pod_resource = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The range of pod resource values that the SKU applies to.
+ * The collection of SKUs in effect at any given time targeting the same
+ * service annotation and pod resource type will cover all possible values
+ * for that pod resource type without overlap. Such a collection of SKUs
+ * form a "tiered" price structure over the possible values of the pod
+ * resource, with each SKU acting as a "tier".
+ * NOTE: This is distinct from a SKU with [tiered
+ * pricing](https://cloud.google.com/billing/docs/how-to/pricing-table#tiered-pricing).
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.KubernetesEnginePodUsageFee.PodResourceRange pod_resource_range = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\KubernetesEnginePodUsageFee\PodResourceRange|null
+ */
+ public function getPodResourceRange()
+ {
+ return $this->pod_resource_range;
+ }
+
+ public function hasPodResourceRange()
+ {
+ return isset($this->pod_resource_range);
+ }
+
+ public function clearPodResourceRange()
+ {
+ unset($this->pod_resource_range);
+ }
+
+ /**
+ * Output only. The range of pod resource values that the SKU applies to.
+ * The collection of SKUs in effect at any given time targeting the same
+ * service annotation and pod resource type will cover all possible values
+ * for that pod resource type without overlap. Such a collection of SKUs
+ * form a "tiered" price structure over the possible values of the pod
+ * resource, with each SKU acting as a "tier".
+ * NOTE: This is distinct from a SKU with [tiered
+ * pricing](https://cloud.google.com/billing/docs/how-to/pricing-table#tiered-pricing).
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.KubernetesEnginePodUsageFee.PodResourceRange pod_resource_range = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\KubernetesEnginePodUsageFee\PodResourceRange $var
+ * @return $this
+ */
+ public function setPodResourceRange($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\KubernetesEnginePodUsageFee\PodResourceRange::class);
+ $this->pod_resource_range = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Determines how the customer's usage is calculated.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.KubernetesEnginePodUsageFee.UsageCalculation usage_calculation = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getUsageCalculation()
+ {
+ return $this->usage_calculation;
+ }
+
+ /**
+ * Output only. Determines how the customer's usage is calculated.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.KubernetesEnginePodUsageFee.UsageCalculation usage_calculation = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setUsageCalculation($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\KubernetesEnginePodUsageFee\UsageCalculation::class);
+ $this->usage_calculation = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The price unit of the SKU.
+ * See https://ucum.org/ucum.html for the format of the price unit.
+ * For linear-priced memory SKUs, the price unit is 'GiBy.h'.
+ * For all other SKUs, the price unit is 'h'. This includes linear-priced
+ * VCPU, GPU, and TPU SKUs because these resources have unitless
+ * dimensions and the application of these scaling factors does not change
+ * the price unit.
+ *
+ * Generated from protobuf field string unit = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getUnit()
+ {
+ return $this->unit;
+ }
+
+ /**
+ * Output only. The price unit of the SKU.
+ * See https://ucum.org/ucum.html for the format of the price unit.
+ * For linear-priced memory SKUs, the price unit is 'GiBy.h'.
+ * For all other SKUs, the price unit is 'h'. This includes linear-priced
+ * VCPU, GPU, and TPU SKUs because these resources have unitless
+ * dimensions and the application of these scaling factors does not change
+ * the price unit.
+ *
+ * Generated from protobuf field string unit = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setUnit($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->unit = $var;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getPriceStructure()
+ {
+ return $this->whichOneof("price_structure");
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/Sku/SkuPrice/KubernetesEnginePodUsageFee/PodResource.php b/Commerceproducer/src/V1beta/Sku/SkuPrice/KubernetesEnginePodUsageFee/PodResource.php
new file mode 100644
index 00000000000..b01c8b16522
--- /dev/null
+++ b/Commerceproducer/src/V1beta/Sku/SkuPrice/KubernetesEnginePodUsageFee/PodResource.php
@@ -0,0 +1,81 @@
+google.cloud.commerceproducer.v1beta.Sku.SkuPrice.KubernetesEnginePodUsageFee.PodResource
+ */
+class PodResource
+{
+ /**
+ * Unused.
+ *
+ * Generated from protobuf enum POD_RESOURCE_UNSPECIFIED = 0;
+ */
+ const POD_RESOURCE_UNSPECIFIED = 0;
+ /**
+ * The SKU applies based on the pod's [vCPU
+ * count](https://kubernetes.io/docs/tasks/configure-pod-container/assign-cpu-resource/).
+ *
+ * Generated from protobuf enum VCPU_COUNT = 1;
+ */
+ const VCPU_COUNT = 1;
+ /**
+ * The SKU applies based on the pod's [memory
+ * size](https://kubernetes.io/docs/tasks/configure-pod-container/assign-memory-resource/)
+ * in bytes.
+ *
+ * Generated from protobuf enum MEMORY_BYTES = 2;
+ */
+ const MEMORY_BYTES = 2;
+ /**
+ * The SKU applies based on the pod's GPU count.
+ *
+ * Generated from protobuf enum GPU_COUNT = 3;
+ */
+ const GPU_COUNT = 3;
+ /**
+ * The SKU applies based on the pod's [TPU
+ * count](https://cloud.google.com/kubernetes-engine/docs/concepts/tpus#how_tpus_work).
+ *
+ * Generated from protobuf enum TPU_COUNT = 4;
+ */
+ const TPU_COUNT = 4;
+
+ private static $valueToName = [
+ self::POD_RESOURCE_UNSPECIFIED => 'POD_RESOURCE_UNSPECIFIED',
+ self::VCPU_COUNT => 'VCPU_COUNT',
+ self::MEMORY_BYTES => 'MEMORY_BYTES',
+ self::GPU_COUNT => 'GPU_COUNT',
+ self::TPU_COUNT => 'TPU_COUNT',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
diff --git a/Commerceproducer/src/V1beta/Sku/SkuPrice/KubernetesEnginePodUsageFee/PodResourceRange.php b/Commerceproducer/src/V1beta/Sku/SkuPrice/KubernetesEnginePodUsageFee/PodResourceRange.php
new file mode 100644
index 00000000000..a67a4e33f13
--- /dev/null
+++ b/Commerceproducer/src/V1beta/Sku/SkuPrice/KubernetesEnginePodUsageFee/PodResourceRange.php
@@ -0,0 +1,115 @@
+google.cloud.commerceproducer.v1beta.Sku.SkuPrice.KubernetesEnginePodUsageFee.PodResourceRange
+ */
+class PodResourceRange extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The inclusive lower bound of the range.
+ *
+ * Generated from protobuf field int64 start_value = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $start_value = 0;
+ /**
+ * Output only. The exclusive upper bound of the range.
+ * If no end value is specified, the range is unbounded from above.
+ *
+ * Generated from protobuf field optional int64 end_value = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $end_value = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int|string $start_value
+ * Output only. The inclusive lower bound of the range.
+ * @type int|string $end_value
+ * Output only. The exclusive upper bound of the range.
+ * If no end value is specified, the range is unbounded from above.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\Sku::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The inclusive lower bound of the range.
+ *
+ * Generated from protobuf field int64 start_value = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int|string
+ */
+ public function getStartValue()
+ {
+ return $this->start_value;
+ }
+
+ /**
+ * Output only. The inclusive lower bound of the range.
+ *
+ * Generated from protobuf field int64 start_value = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int|string $var
+ * @return $this
+ */
+ public function setStartValue($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->start_value = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The exclusive upper bound of the range.
+ * If no end value is specified, the range is unbounded from above.
+ *
+ * Generated from protobuf field optional int64 end_value = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int|string
+ */
+ public function getEndValue()
+ {
+ return isset($this->end_value) ? $this->end_value : 0;
+ }
+
+ public function hasEndValue()
+ {
+ return isset($this->end_value);
+ }
+
+ public function clearEndValue()
+ {
+ unset($this->end_value);
+ }
+
+ /**
+ * Output only. The exclusive upper bound of the range.
+ * If no end value is specified, the range is unbounded from above.
+ *
+ * Generated from protobuf field optional int64 end_value = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int|string $var
+ * @return $this
+ */
+ public function setEndValue($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->end_value = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/Sku/SkuPrice/KubernetesEnginePodUsageFee/UsageCalculation.php b/Commerceproducer/src/V1beta/Sku/SkuPrice/KubernetesEnginePodUsageFee/UsageCalculation.php
new file mode 100644
index 00000000000..4e0e860c408
--- /dev/null
+++ b/Commerceproducer/src/V1beta/Sku/SkuPrice/KubernetesEnginePodUsageFee/UsageCalculation.php
@@ -0,0 +1,80 @@
+google.cloud.commerceproducer.v1beta.Sku.SkuPrice.KubernetesEnginePodUsageFee.UsageCalculation
+ */
+class UsageCalculation
+{
+ /**
+ * Unused.
+ *
+ * Generated from protobuf enum USAGE_CALCULATION_UNSPECIFIED = 0;
+ */
+ const USAGE_CALCULATION_UNSPECIFIED = 0;
+ /**
+ * Usage is calculated from pod runtime.
+ * The customer's usage is metered in a manner similar to the [GKE
+ * Autopilot mode for pods without specific hardware
+ * requirements](https://cloud.google.com/kubernetes-engine/pricing),
+ * priced on a per-pod basis in units of hours and measured in
+ * one-second increments, with no minimum duration.
+ * A SKU using this usage calculation is referred to as "flat" because
+ * the customer's usage charge is independent of the pod shape apart
+ * from determining whether the SKU applies to the pod.
+ *
+ * Generated from protobuf enum POD_RUNTIME = 1;
+ */
+ const POD_RUNTIME = 1;
+ /**
+ * Usage is calculated from pod runtime and size.
+ * This calculation mode is only applicable to resource-based SKUs.
+ * Usage is calculated by measuring the pod runtime in the same manner
+ * as for `POD_RUNTIME` and multiplying by the pod's resource value
+ * matching the SKU's pod resource type.
+ * This converts the price from per-pod-hour to
+ * per-pod-hour-per-resource, which changes the price unit for memory
+ * SKUs to 'GiBy.h'. The price unit otherwise remains 'h' because the
+ * other resources are dimensionless.
+ * A SKU using this usage calculation is referred to as "linear" because
+ * the customer's usage charge is linearly proportional to the
+ * pod's resource value.
+ *
+ * Generated from protobuf enum LINEAR_RESOURCE_SCALED_POD_RUNTIME = 2;
+ */
+ const LINEAR_RESOURCE_SCALED_POD_RUNTIME = 2;
+
+ private static $valueToName = [
+ self::USAGE_CALCULATION_UNSPECIFIED => 'USAGE_CALCULATION_UNSPECIFIED',
+ self::POD_RUNTIME => 'POD_RUNTIME',
+ self::LINEAR_RESOURCE_SCALED_POD_RUNTIME => 'LINEAR_RESOURCE_SCALED_POD_RUNTIME',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
diff --git a/Commerceproducer/src/V1beta/Sku/SkuPrice/ManagedServiceMetricUsageFee.php b/Commerceproducer/src/V1beta/Sku/SkuPrice/ManagedServiceMetricUsageFee.php
new file mode 100644
index 00000000000..d985c415312
--- /dev/null
+++ b/Commerceproducer/src/V1beta/Sku/SkuPrice/ManagedServiceMetricUsageFee.php
@@ -0,0 +1,165 @@
+google.cloud.commerceproducer.v1beta.Sku.SkuPrice.ManagedServiceMetricUsageFee
+ */
+class ManagedServiceMetricUsageFee extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The name of the metric, in canonical format.
+ * Note that in the canonical format the first character of the path
+ * component of the metric name is always uppercase, which may differ
+ * from the metric name in the service config. For example, a metric
+ * appearing in the service config as 'example.com/example_metric' will
+ * appear here in the SKU as 'example.com/Example_metric'. In the Service
+ * Management and Service Control APIs these two metric names are
+ * considered distinct, either or both may be defined, and usage must be
+ * reported using a name matching the name of a metric defined in the
+ * service config. But for billing purposes usage reported using either
+ * name will be aggregated under the canonical metric name.
+ * Example: "example.com/Example_metric"
+ *
+ * Generated from protobuf field string canonical_metric = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $canonical_metric = '';
+ protected $price_structure;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\TieredPrice $tiered_price
+ * Output only. [Tiered
+ * pricing](https://cloud.google.com/billing/docs/how-to/pricing-table#tiered-pricing)
+ * of the SKU.
+ * @type string $canonical_metric
+ * Output only. The name of the metric, in canonical format.
+ * Note that in the canonical format the first character of the path
+ * component of the metric name is always uppercase, which may differ
+ * from the metric name in the service config. For example, a metric
+ * appearing in the service config as 'example.com/example_metric' will
+ * appear here in the SKU as 'example.com/Example_metric'. In the Service
+ * Management and Service Control APIs these two metric names are
+ * considered distinct, either or both may be defined, and usage must be
+ * reported using a name matching the name of a metric defined in the
+ * service config. But for billing purposes usage reported using either
+ * name will be aggregated under the canonical metric name.
+ * Example: "example.com/Example_metric"
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\Sku::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. [Tiered
+ * pricing](https://cloud.google.com/billing/docs/how-to/pricing-table#tiered-pricing)
+ * of the SKU.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.TieredPrice tiered_price = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\TieredPrice|null
+ */
+ public function getTieredPrice()
+ {
+ return $this->readOneof(2);
+ }
+
+ public function hasTieredPrice()
+ {
+ return $this->hasOneof(2);
+ }
+
+ /**
+ * Output only. [Tiered
+ * pricing](https://cloud.google.com/billing/docs/how-to/pricing-table#tiered-pricing)
+ * of the SKU.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.TieredPrice tiered_price = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\TieredPrice $var
+ * @return $this
+ */
+ public function setTieredPrice($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\TieredPrice::class);
+ $this->writeOneof(2, $var);
+
+ return $this;
+ }
+
+ /**
+ * Output only. The name of the metric, in canonical format.
+ * Note that in the canonical format the first character of the path
+ * component of the metric name is always uppercase, which may differ
+ * from the metric name in the service config. For example, a metric
+ * appearing in the service config as 'example.com/example_metric' will
+ * appear here in the SKU as 'example.com/Example_metric'. In the Service
+ * Management and Service Control APIs these two metric names are
+ * considered distinct, either or both may be defined, and usage must be
+ * reported using a name matching the name of a metric defined in the
+ * service config. But for billing purposes usage reported using either
+ * name will be aggregated under the canonical metric name.
+ * Example: "example.com/Example_metric"
+ *
+ * Generated from protobuf field string canonical_metric = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getCanonicalMetric()
+ {
+ return $this->canonical_metric;
+ }
+
+ /**
+ * Output only. The name of the metric, in canonical format.
+ * Note that in the canonical format the first character of the path
+ * component of the metric name is always uppercase, which may differ
+ * from the metric name in the service config. For example, a metric
+ * appearing in the service config as 'example.com/example_metric' will
+ * appear here in the SKU as 'example.com/Example_metric'. In the Service
+ * Management and Service Control APIs these two metric names are
+ * considered distinct, either or both may be defined, and usage must be
+ * reported using a name matching the name of a metric defined in the
+ * service config. But for billing purposes usage reported using either
+ * name will be aggregated under the canonical metric name.
+ * Example: "example.com/Example_metric"
+ *
+ * Generated from protobuf field string canonical_metric = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setCanonicalMetric($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->canonical_metric = $var;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getPriceStructure()
+ {
+ return $this->whichOneof("price_structure");
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/Sku/SkuPrice/TieredPrice.php b/Commerceproducer/src/V1beta/Sku/SkuPrice/TieredPrice.php
new file mode 100644
index 00000000000..1ab798c89d1
--- /dev/null
+++ b/Commerceproducer/src/V1beta/Sku/SkuPrice/TieredPrice.php
@@ -0,0 +1,276 @@
+google.cloud.commerceproducer.v1beta.Sku.SkuPrice.TieredPrice
+ */
+class TieredPrice extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. Usage unit used for defining price tiers and for scaling
+ * with the price_unit_count to form the composite price unit.
+ * See https://ucum.org/ucum.html for the format of the price unit.
+ * A unitless dimension, such as a count, is represented as `1`.
+ *
+ * Generated from protobuf field string unit = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $unit = '';
+ /**
+ * Output only. The display description of the unit, supplied at time of
+ * onboarding. This value is recommended to be set at least for
+ * dimensionless metrics, but may be empty if no description was provided
+ * at time of onboarding.
+ *
+ * Generated from protobuf field string unit_description = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $unit_description = '';
+ /**
+ * Output only. Scaling the `unit` by the `price_unit_count` forms the
+ * composite "price unit" which is priced by the price tiers.
+ * This scaling factor is in addition to any numerical prefix symbol on
+ * the `unit`, so the same composite "price unit" can be represented in
+ * several ways, differing only in their presentation to users.
+ * Examples:
+ * * $1 per 1 bytes : unit = By, price_unit_count = 1
+ * * $1000 per 1 kilobytes : unit = kBy, price_unit_count = 1
+ * * $5000 per 5 kilobytes : unit = kBy, price_unit_count = 5
+ *
+ * Generated from protobuf field .google.type.Decimal price_unit_count = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $price_unit_count = null;
+ /**
+ * Output only. The list of price tiers for the SKU, ordered by the
+ * start_amount.
+ * The tiers are non-overlapping and are collectively bounded below by
+ * zero and unbounded above to cover the entire range of possible metric
+ * usage. Each tier is bounded below inclusively by its start_amount and
+ * bounded above exclusively by the start_amount of the next tier, or else
+ * unbounded above if there is no next tier.
+ * Usage of the metric is aggregated by customer billing account on a
+ * monthly basis and billed in a graduated manner according to the price
+ * tiers, with each marginal unit of usage priced accoring to the tier in
+ * which it falls.
+ *
+ * Generated from protobuf field repeated .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.TieredPrice.PriceTier price_tiers = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ private $price_tiers;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $unit
+ * Output only. Usage unit used for defining price tiers and for scaling
+ * with the price_unit_count to form the composite price unit.
+ * See https://ucum.org/ucum.html for the format of the price unit.
+ * A unitless dimension, such as a count, is represented as `1`.
+ * @type string $unit_description
+ * Output only. The display description of the unit, supplied at time of
+ * onboarding. This value is recommended to be set at least for
+ * dimensionless metrics, but may be empty if no description was provided
+ * at time of onboarding.
+ * @type \Google\Type\Decimal $price_unit_count
+ * Output only. Scaling the `unit` by the `price_unit_count` forms the
+ * composite "price unit" which is priced by the price tiers.
+ * This scaling factor is in addition to any numerical prefix symbol on
+ * the `unit`, so the same composite "price unit" can be represented in
+ * several ways, differing only in their presentation to users.
+ * Examples:
+ * * $1 per 1 bytes : unit = By, price_unit_count = 1
+ * * $1000 per 1 kilobytes : unit = kBy, price_unit_count = 1
+ * * $5000 per 5 kilobytes : unit = kBy, price_unit_count = 5
+ * @type \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\TieredPrice\PriceTier[] $price_tiers
+ * Output only. The list of price tiers for the SKU, ordered by the
+ * start_amount.
+ * The tiers are non-overlapping and are collectively bounded below by
+ * zero and unbounded above to cover the entire range of possible metric
+ * usage. Each tier is bounded below inclusively by its start_amount and
+ * bounded above exclusively by the start_amount of the next tier, or else
+ * unbounded above if there is no next tier.
+ * Usage of the metric is aggregated by customer billing account on a
+ * monthly basis and billed in a graduated manner according to the price
+ * tiers, with each marginal unit of usage priced accoring to the tier in
+ * which it falls.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\Sku::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. Usage unit used for defining price tiers and for scaling
+ * with the price_unit_count to form the composite price unit.
+ * See https://ucum.org/ucum.html for the format of the price unit.
+ * A unitless dimension, such as a count, is represented as `1`.
+ *
+ * Generated from protobuf field string unit = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getUnit()
+ {
+ return $this->unit;
+ }
+
+ /**
+ * Output only. Usage unit used for defining price tiers and for scaling
+ * with the price_unit_count to form the composite price unit.
+ * See https://ucum.org/ucum.html for the format of the price unit.
+ * A unitless dimension, such as a count, is represented as `1`.
+ *
+ * Generated from protobuf field string unit = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setUnit($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->unit = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The display description of the unit, supplied at time of
+ * onboarding. This value is recommended to be set at least for
+ * dimensionless metrics, but may be empty if no description was provided
+ * at time of onboarding.
+ *
+ * Generated from protobuf field string unit_description = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getUnitDescription()
+ {
+ return $this->unit_description;
+ }
+
+ /**
+ * Output only. The display description of the unit, supplied at time of
+ * onboarding. This value is recommended to be set at least for
+ * dimensionless metrics, but may be empty if no description was provided
+ * at time of onboarding.
+ *
+ * Generated from protobuf field string unit_description = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setUnitDescription($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->unit_description = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Scaling the `unit` by the `price_unit_count` forms the
+ * composite "price unit" which is priced by the price tiers.
+ * This scaling factor is in addition to any numerical prefix symbol on
+ * the `unit`, so the same composite "price unit" can be represented in
+ * several ways, differing only in their presentation to users.
+ * Examples:
+ * * $1 per 1 bytes : unit = By, price_unit_count = 1
+ * * $1000 per 1 kilobytes : unit = kBy, price_unit_count = 1
+ * * $5000 per 5 kilobytes : unit = kBy, price_unit_count = 5
+ *
+ * Generated from protobuf field .google.type.Decimal price_unit_count = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Type\Decimal|null
+ */
+ public function getPriceUnitCount()
+ {
+ return $this->price_unit_count;
+ }
+
+ public function hasPriceUnitCount()
+ {
+ return isset($this->price_unit_count);
+ }
+
+ public function clearPriceUnitCount()
+ {
+ unset($this->price_unit_count);
+ }
+
+ /**
+ * Output only. Scaling the `unit` by the `price_unit_count` forms the
+ * composite "price unit" which is priced by the price tiers.
+ * This scaling factor is in addition to any numerical prefix symbol on
+ * the `unit`, so the same composite "price unit" can be represented in
+ * several ways, differing only in their presentation to users.
+ * Examples:
+ * * $1 per 1 bytes : unit = By, price_unit_count = 1
+ * * $1000 per 1 kilobytes : unit = kBy, price_unit_count = 1
+ * * $5000 per 5 kilobytes : unit = kBy, price_unit_count = 5
+ *
+ * Generated from protobuf field .google.type.Decimal price_unit_count = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Type\Decimal $var
+ * @return $this
+ */
+ public function setPriceUnitCount($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Type\Decimal::class);
+ $this->price_unit_count = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The list of price tiers for the SKU, ordered by the
+ * start_amount.
+ * The tiers are non-overlapping and are collectively bounded below by
+ * zero and unbounded above to cover the entire range of possible metric
+ * usage. Each tier is bounded below inclusively by its start_amount and
+ * bounded above exclusively by the start_amount of the next tier, or else
+ * unbounded above if there is no next tier.
+ * Usage of the metric is aggregated by customer billing account on a
+ * monthly basis and billed in a graduated manner according to the price
+ * tiers, with each marginal unit of usage priced accoring to the tier in
+ * which it falls.
+ *
+ * Generated from protobuf field repeated .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.TieredPrice.PriceTier price_tiers = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return RepeatedField<\Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\TieredPrice\PriceTier>
+ */
+ public function getPriceTiers()
+ {
+ return $this->price_tiers;
+ }
+
+ /**
+ * Output only. The list of price tiers for the SKU, ordered by the
+ * start_amount.
+ * The tiers are non-overlapping and are collectively bounded below by
+ * zero and unbounded above to cover the entire range of possible metric
+ * usage. Each tier is bounded below inclusively by its start_amount and
+ * bounded above exclusively by the start_amount of the next tier, or else
+ * unbounded above if there is no next tier.
+ * Usage of the metric is aggregated by customer billing account on a
+ * monthly basis and billed in a graduated manner according to the price
+ * tiers, with each marginal unit of usage priced accoring to the tier in
+ * which it falls.
+ *
+ * Generated from protobuf field repeated .google.cloud.commerceproducer.v1beta.Sku.SkuPrice.TieredPrice.PriceTier price_tiers = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\TieredPrice\PriceTier[] $var
+ * @return $this
+ */
+ public function setPriceTiers($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Commerceproducer\V1beta\Sku\SkuPrice\TieredPrice\PriceTier::class);
+ $this->price_tiers = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/Sku/SkuPrice/TieredPrice/PriceTier.php b/Commerceproducer/src/V1beta/Sku/SkuPrice/TieredPrice/PriceTier.php
new file mode 100644
index 00000000000..31487b65ed6
--- /dev/null
+++ b/Commerceproducer/src/V1beta/Sku/SkuPrice/TieredPrice/PriceTier.php
@@ -0,0 +1,137 @@
+google.cloud.commerceproducer.v1beta.Sku.SkuPrice.TieredPrice.PriceTier
+ */
+class PriceTier extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. Inclusive lower bound of the tier interval, denominated
+ * in `unit`.
+ *
+ * Generated from protobuf field .google.type.Decimal start_amount = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $start_amount = null;
+ /**
+ * Output only. The price per `price_unit_count` of `unit` in the tier.
+ * The price is applied fractionally if the customer's usage within the
+ * tier is not an integer multiple of `price_unit_count`.
+ *
+ * Generated from protobuf field .google.type.Money price = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $price = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Type\Decimal $start_amount
+ * Output only. Inclusive lower bound of the tier interval, denominated
+ * in `unit`.
+ * @type \Google\Type\Money $price
+ * Output only. The price per `price_unit_count` of `unit` in the tier.
+ * The price is applied fractionally if the customer's usage within the
+ * tier is not an integer multiple of `price_unit_count`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\Sku::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. Inclusive lower bound of the tier interval, denominated
+ * in `unit`.
+ *
+ * Generated from protobuf field .google.type.Decimal start_amount = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Type\Decimal|null
+ */
+ public function getStartAmount()
+ {
+ return $this->start_amount;
+ }
+
+ public function hasStartAmount()
+ {
+ return isset($this->start_amount);
+ }
+
+ public function clearStartAmount()
+ {
+ unset($this->start_amount);
+ }
+
+ /**
+ * Output only. Inclusive lower bound of the tier interval, denominated
+ * in `unit`.
+ *
+ * Generated from protobuf field .google.type.Decimal start_amount = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Type\Decimal $var
+ * @return $this
+ */
+ public function setStartAmount($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Type\Decimal::class);
+ $this->start_amount = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The price per `price_unit_count` of `unit` in the tier.
+ * The price is applied fractionally if the customer's usage within the
+ * tier is not an integer multiple of `price_unit_count`.
+ *
+ * Generated from protobuf field .google.type.Money price = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Type\Money|null
+ */
+ public function getPrice()
+ {
+ return $this->price;
+ }
+
+ public function hasPrice()
+ {
+ return isset($this->price);
+ }
+
+ public function clearPrice()
+ {
+ unset($this->price);
+ }
+
+ /**
+ * Output only. The price per `price_unit_count` of `unit` in the tier.
+ * The price is applied fractionally if the customer's usage within the
+ * tier is not an integer multiple of `price_unit_count`.
+ *
+ * Generated from protobuf field .google.type.Money price = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Type\Money $var
+ * @return $this
+ */
+ public function setPrice($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Type\Money::class);
+ $this->price = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/SkuGroup.php b/Commerceproducer/src/V1beta/SkuGroup.php
new file mode 100644
index 00000000000..57333ddfbfb
--- /dev/null
+++ b/Commerceproducer/src/V1beta/SkuGroup.php
@@ -0,0 +1,163 @@
+google.cloud.commerceproducer.v1beta.SkuGroup
+ */
+class SkuGroup extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. Identifier. Name of the SkuGroup.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.field_behavior) = IDENTIFIER];
+ */
+ protected $name = '';
+ /**
+ * Output only. Partner SKUs included in the SkuGroup.
+ * Format:
+ * `projects/{project}/locations/{location}/services/{service}/skus/{sku}`
+ *
+ * Generated from protobuf field repeated string skus = 2 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ */
+ private $skus;
+ /**
+ * Output only. Google SKUs included in the SkuGroup.
+ * Used for partner products sold by Google, such as Premium Operating System
+ * Images sold for use in Compute Engine. This is not common.
+ * SKUs of this type are not present on this API and can instead be found on
+ * the Cloud Billing API or at https://cloud.google.com/skus.
+ * Format: `services/{service}/skus/{sku}`
+ *
+ * Generated from protobuf field repeated string cloud_billing_skus = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ private $cloud_billing_skus;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Output only. Identifier. Name of the SkuGroup.
+ * @type string[] $skus
+ * Output only. Partner SKUs included in the SkuGroup.
+ * Format:
+ * `projects/{project}/locations/{location}/services/{service}/skus/{sku}`
+ * @type string[] $cloud_billing_skus
+ * Output only. Google SKUs included in the SkuGroup.
+ * Used for partner products sold by Google, such as Premium Operating System
+ * Images sold for use in Compute Engine. This is not common.
+ * SKUs of this type are not present on this API and can instead be found on
+ * the Cloud Billing API or at https://cloud.google.com/skus.
+ * Format: `services/{service}/skus/{sku}`
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\SkuGroup::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. Identifier. Name of the SkuGroup.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.field_behavior) = IDENTIFIER];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Output only. Identifier. Name of the SkuGroup.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.field_behavior) = IDENTIFIER];
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Partner SKUs included in the SkuGroup.
+ * Format:
+ * `projects/{project}/locations/{location}/services/{service}/skus/{sku}`
+ *
+ * Generated from protobuf field repeated string skus = 2 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ * @return RepeatedField
+ */
+ public function getSkus()
+ {
+ return $this->skus;
+ }
+
+ /**
+ * Output only. Partner SKUs included in the SkuGroup.
+ * Format:
+ * `projects/{project}/locations/{location}/services/{service}/skus/{sku}`
+ *
+ * Generated from protobuf field repeated string skus = 2 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ * @param string[] $var
+ * @return $this
+ */
+ public function setSkus($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->skus = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Google SKUs included in the SkuGroup.
+ * Used for partner products sold by Google, such as Premium Operating System
+ * Images sold for use in Compute Engine. This is not common.
+ * SKUs of this type are not present on this API and can instead be found on
+ * the Cloud Billing API or at https://cloud.google.com/skus.
+ * Format: `services/{service}/skus/{sku}`
+ *
+ * Generated from protobuf field repeated string cloud_billing_skus = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return RepeatedField
+ */
+ public function getCloudBillingSkus()
+ {
+ return $this->cloud_billing_skus;
+ }
+
+ /**
+ * Output only. Google SKUs included in the SkuGroup.
+ * Used for partner products sold by Google, such as Premium Operating System
+ * Images sold for use in Compute Engine. This is not common.
+ * SKUs of this type are not present on this API and can instead be found on
+ * the Cloud Billing API or at https://cloud.google.com/skus.
+ * Format: `services/{service}/skus/{sku}`
+ *
+ * Generated from protobuf field repeated string cloud_billing_skus = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string[] $var
+ * @return $this
+ */
+ public function setCloudBillingSkus($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->cloud_billing_skus = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/StandardOffer.php b/Commerceproducer/src/V1beta/StandardOffer.php
new file mode 100644
index 00000000000..0d2d0059300
--- /dev/null
+++ b/Commerceproducer/src/V1beta/StandardOffer.php
@@ -0,0 +1,455 @@
+google.cloud.commerceproducer.v1beta.StandardOffer
+ */
+class StandardOffer extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Identifier. Name of resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IDENTIFIER];
+ */
+ protected $name = '';
+ /**
+ * Output only. Creation time of the offer.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $create_time = null;
+ /**
+ * Output only. Last update time of the offer.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $update_time = null;
+ /**
+ * Output only. Effective time of the offer.
+ * Prior to this time, the offer cannot be purchased or used as the base
+ * standard offer of a private offer.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp effective_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $effective_time = null;
+ /**
+ * Output only. Expire time of the offer.
+ * An offer is expired if its expire time is in the past.
+ * An expired standard offer cannot be purchased or used as the base standard
+ * offer of a private offer.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp expire_time = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $expire_time = null;
+ /**
+ * Output only. Identifier that distinguishes between different service levels
+ * of the same product that constitute distinct offerings to customers with
+ * different pricing.
+ * The service levels of a product are also referred to in some cases as the
+ * product's 'plans', and the `service_level` value is referred to in some
+ * cases as the "plan ID".
+ * Multiple non-expired standard offers can share the same service level when
+ * they are subscription offers for different term durations.
+ *
+ * Generated from protobuf field string service_level = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $service_level = '';
+ /**
+ * Output only. Title of the service level.
+ * Not included for `STANDARD_OFFER_VIEW_BASIC`.
+ *
+ * Generated from protobuf field string service_level_title = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $service_level_title = '';
+ /**
+ * Output only. Price model of the offer.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.StandardOffer.PriceModel price_model = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $price_model = null;
+ protected $term;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $term_duration_months
+ * Output only. Term duration of the offer in months.
+ * Applicable only to offers with a subscription price model.
+ * Additional forms of offer term may be added in the future.
+ * @type string $name
+ * Identifier. Name of resource.
+ * @type \Google\Protobuf\Timestamp $create_time
+ * Output only. Creation time of the offer.
+ * @type \Google\Protobuf\Timestamp $update_time
+ * Output only. Last update time of the offer.
+ * @type \Google\Protobuf\Timestamp $effective_time
+ * Output only. Effective time of the offer.
+ * Prior to this time, the offer cannot be purchased or used as the base
+ * standard offer of a private offer.
+ * @type \Google\Protobuf\Timestamp $expire_time
+ * Output only. Expire time of the offer.
+ * An offer is expired if its expire time is in the past.
+ * An expired standard offer cannot be purchased or used as the base standard
+ * offer of a private offer.
+ * @type string $service_level
+ * Output only. Identifier that distinguishes between different service levels
+ * of the same product that constitute distinct offerings to customers with
+ * different pricing.
+ * The service levels of a product are also referred to in some cases as the
+ * product's 'plans', and the `service_level` value is referred to in some
+ * cases as the "plan ID".
+ * Multiple non-expired standard offers can share the same service level when
+ * they are subscription offers for different term durations.
+ * @type string $service_level_title
+ * Output only. Title of the service level.
+ * Not included for `STANDARD_OFFER_VIEW_BASIC`.
+ * @type \Google\Cloud\Commerceproducer\V1beta\StandardOffer\PriceModel $price_model
+ * Output only. Price model of the offer.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\StandardOffer::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. Term duration of the offer in months.
+ * Applicable only to offers with a subscription price model.
+ * Additional forms of offer term may be added in the future.
+ *
+ * Generated from protobuf field int32 term_duration_months = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getTermDurationMonths()
+ {
+ return $this->readOneof(7);
+ }
+
+ public function hasTermDurationMonths()
+ {
+ return $this->hasOneof(7);
+ }
+
+ /**
+ * Output only. Term duration of the offer in months.
+ * Applicable only to offers with a subscription price model.
+ * Additional forms of offer term may be added in the future.
+ *
+ * Generated from protobuf field int32 term_duration_months = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setTermDurationMonths($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->writeOneof(7, $var);
+
+ return $this;
+ }
+
+ /**
+ * Identifier. Name of resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IDENTIFIER];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Identifier. Name of resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IDENTIFIER];
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Creation time of the offer.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getCreateTime()
+ {
+ return $this->create_time;
+ }
+
+ public function hasCreateTime()
+ {
+ return isset($this->create_time);
+ }
+
+ public function clearCreateTime()
+ {
+ unset($this->create_time);
+ }
+
+ /**
+ * Output only. Creation time of the offer.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setCreateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->create_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Last update time of the offer.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getUpdateTime()
+ {
+ return $this->update_time;
+ }
+
+ public function hasUpdateTime()
+ {
+ return isset($this->update_time);
+ }
+
+ public function clearUpdateTime()
+ {
+ unset($this->update_time);
+ }
+
+ /**
+ * Output only. Last update time of the offer.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setUpdateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->update_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Effective time of the offer.
+ * Prior to this time, the offer cannot be purchased or used as the base
+ * standard offer of a private offer.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp effective_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getEffectiveTime()
+ {
+ return $this->effective_time;
+ }
+
+ public function hasEffectiveTime()
+ {
+ return isset($this->effective_time);
+ }
+
+ public function clearEffectiveTime()
+ {
+ unset($this->effective_time);
+ }
+
+ /**
+ * Output only. Effective time of the offer.
+ * Prior to this time, the offer cannot be purchased or used as the base
+ * standard offer of a private offer.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp effective_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setEffectiveTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->effective_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Expire time of the offer.
+ * An offer is expired if its expire time is in the past.
+ * An expired standard offer cannot be purchased or used as the base standard
+ * offer of a private offer.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp expire_time = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getExpireTime()
+ {
+ return $this->expire_time;
+ }
+
+ public function hasExpireTime()
+ {
+ return isset($this->expire_time);
+ }
+
+ public function clearExpireTime()
+ {
+ unset($this->expire_time);
+ }
+
+ /**
+ * Output only. Expire time of the offer.
+ * An offer is expired if its expire time is in the past.
+ * An expired standard offer cannot be purchased or used as the base standard
+ * offer of a private offer.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp expire_time = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setExpireTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->expire_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Identifier that distinguishes between different service levels
+ * of the same product that constitute distinct offerings to customers with
+ * different pricing.
+ * The service levels of a product are also referred to in some cases as the
+ * product's 'plans', and the `service_level` value is referred to in some
+ * cases as the "plan ID".
+ * Multiple non-expired standard offers can share the same service level when
+ * they are subscription offers for different term durations.
+ *
+ * Generated from protobuf field string service_level = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getServiceLevel()
+ {
+ return $this->service_level;
+ }
+
+ /**
+ * Output only. Identifier that distinguishes between different service levels
+ * of the same product that constitute distinct offerings to customers with
+ * different pricing.
+ * The service levels of a product are also referred to in some cases as the
+ * product's 'plans', and the `service_level` value is referred to in some
+ * cases as the "plan ID".
+ * Multiple non-expired standard offers can share the same service level when
+ * they are subscription offers for different term durations.
+ *
+ * Generated from protobuf field string service_level = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setServiceLevel($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->service_level = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Title of the service level.
+ * Not included for `STANDARD_OFFER_VIEW_BASIC`.
+ *
+ * Generated from protobuf field string service_level_title = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getServiceLevelTitle()
+ {
+ return $this->service_level_title;
+ }
+
+ /**
+ * Output only. Title of the service level.
+ * Not included for `STANDARD_OFFER_VIEW_BASIC`.
+ *
+ * Generated from protobuf field string service_level_title = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setServiceLevelTitle($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->service_level_title = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Price model of the offer.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.StandardOffer.PriceModel price_model = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Commerceproducer\V1beta\StandardOffer\PriceModel|null
+ */
+ public function getPriceModel()
+ {
+ return $this->price_model;
+ }
+
+ public function hasPriceModel()
+ {
+ return isset($this->price_model);
+ }
+
+ public function clearPriceModel()
+ {
+ unset($this->price_model);
+ }
+
+ /**
+ * Output only. Price model of the offer.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.StandardOffer.PriceModel price_model = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Commerceproducer\V1beta\StandardOffer\PriceModel $var
+ * @return $this
+ */
+ public function setPriceModel($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Commerceproducer\V1beta\StandardOffer\PriceModel::class);
+ $this->price_model = $var;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getTerm()
+ {
+ return $this->whichOneof("term");
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/StandardOffer/PriceModel.php b/Commerceproducer/src/V1beta/StandardOffer/PriceModel.php
new file mode 100644
index 00000000000..9c517a9be7b
--- /dev/null
+++ b/Commerceproducer/src/V1beta/StandardOffer/PriceModel.php
@@ -0,0 +1,119 @@
+google.cloud.commerceproducer.v1beta.StandardOffer.PriceModel
+ */
+class PriceModel extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. Price configurations for the usage part.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.StandardOffer.PriceModel.Usage usage = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $usage = null;
+ protected $subscription;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Commerceproducer\V1beta\StandardOffer\PriceModel\FlatFeeSubscription $flat_fee
+ * Output only. Price configurations for the flat fee subscription.
+ * @type \Google\Cloud\Commerceproducer\V1beta\StandardOffer\PriceModel\Usage $usage
+ * Output only. Price configurations for the usage part.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\StandardOffer::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. Price configurations for the flat fee subscription.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.StandardOffer.PriceModel.FlatFeeSubscription flat_fee = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Commerceproducer\V1beta\StandardOffer\PriceModel\FlatFeeSubscription|null
+ */
+ public function getFlatFee()
+ {
+ return $this->readOneof(2);
+ }
+
+ public function hasFlatFee()
+ {
+ return $this->hasOneof(2);
+ }
+
+ /**
+ * Output only. Price configurations for the flat fee subscription.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.StandardOffer.PriceModel.FlatFeeSubscription flat_fee = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Commerceproducer\V1beta\StandardOffer\PriceModel\FlatFeeSubscription $var
+ * @return $this
+ */
+ public function setFlatFee($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Commerceproducer\V1beta\StandardOffer\PriceModel\FlatFeeSubscription::class);
+ $this->writeOneof(2, $var);
+
+ return $this;
+ }
+
+ /**
+ * Output only. Price configurations for the usage part.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.StandardOffer.PriceModel.Usage usage = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Commerceproducer\V1beta\StandardOffer\PriceModel\Usage|null
+ */
+ public function getUsage()
+ {
+ return $this->usage;
+ }
+
+ public function hasUsage()
+ {
+ return isset($this->usage);
+ }
+
+ public function clearUsage()
+ {
+ unset($this->usage);
+ }
+
+ /**
+ * Output only. Price configurations for the usage part.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.StandardOffer.PriceModel.Usage usage = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Commerceproducer\V1beta\StandardOffer\PriceModel\Usage $var
+ * @return $this
+ */
+ public function setUsage($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Commerceproducer\V1beta\StandardOffer\PriceModel\Usage::class);
+ $this->usage = $var;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getSubscription()
+ {
+ return $this->whichOneof("subscription");
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/StandardOffer/PriceModel/FlatFeeSubscription.php b/Commerceproducer/src/V1beta/StandardOffer/PriceModel/FlatFeeSubscription.php
new file mode 100644
index 00000000000..d1c6a8be51e
--- /dev/null
+++ b/Commerceproducer/src/V1beta/StandardOffer/PriceModel/FlatFeeSubscription.php
@@ -0,0 +1,67 @@
+google.cloud.commerceproducer.v1beta.StandardOffer.PriceModel.FlatFeeSubscription
+ */
+class FlatFeeSubscription extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. Flat fee subscription SKU for the offer.
+ *
+ * Generated from protobuf field string sku = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ */
+ protected $sku = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $sku
+ * Output only. Flat fee subscription SKU for the offer.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\StandardOffer::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. Flat fee subscription SKU for the offer.
+ *
+ * Generated from protobuf field string sku = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getSku()
+ {
+ return $this->sku;
+ }
+
+ /**
+ * Output only. Flat fee subscription SKU for the offer.
+ *
+ * Generated from protobuf field string sku = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setSku($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->sku = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/StandardOffer/PriceModel/SkuGroupList.php b/Commerceproducer/src/V1beta/StandardOffer/PriceModel/SkuGroupList.php
new file mode 100644
index 00000000000..7c6ae057e16
--- /dev/null
+++ b/Commerceproducer/src/V1beta/StandardOffer/PriceModel/SkuGroupList.php
@@ -0,0 +1,67 @@
+google.cloud.commerceproducer.v1beta.StandardOffer.PriceModel.SkuGroupList
+ */
+class SkuGroupList extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. List of SkuGroups by name.
+ *
+ * Generated from protobuf field repeated string sku_groups = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ */
+ private $sku_groups;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string[] $sku_groups
+ * Output only. List of SkuGroups by name.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\StandardOffer::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. List of SkuGroups by name.
+ *
+ * Generated from protobuf field repeated string sku_groups = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ * @return RepeatedField
+ */
+ public function getSkuGroups()
+ {
+ return $this->sku_groups;
+ }
+
+ /**
+ * Output only. List of SkuGroups by name.
+ *
+ * Generated from protobuf field repeated string sku_groups = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ * @param string[] $var
+ * @return $this
+ */
+ public function setSkuGroups($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->sku_groups = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/StandardOffer/PriceModel/SkuList.php b/Commerceproducer/src/V1beta/StandardOffer/PriceModel/SkuList.php
new file mode 100644
index 00000000000..d7201e096e5
--- /dev/null
+++ b/Commerceproducer/src/V1beta/StandardOffer/PriceModel/SkuList.php
@@ -0,0 +1,67 @@
+google.cloud.commerceproducer.v1beta.StandardOffer.PriceModel.SkuList
+ */
+class SkuList extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. List of SKUs by name.
+ *
+ * Generated from protobuf field repeated string skus = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ */
+ private $skus;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string[] $skus
+ * Output only. List of SKUs by name.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\StandardOffer::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. List of SKUs by name.
+ *
+ * Generated from protobuf field repeated string skus = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ * @return RepeatedField
+ */
+ public function getSkus()
+ {
+ return $this->skus;
+ }
+
+ /**
+ * Output only. List of SKUs by name.
+ *
+ * Generated from protobuf field repeated string skus = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ * @param string[] $var
+ * @return $this
+ */
+ public function setSkus($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->skus = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/StandardOffer/PriceModel/Usage.php b/Commerceproducer/src/V1beta/StandardOffer/PriceModel/Usage.php
new file mode 100644
index 00000000000..11880bd75b3
--- /dev/null
+++ b/Commerceproducer/src/V1beta/StandardOffer/PriceModel/Usage.php
@@ -0,0 +1,111 @@
+google.cloud.commerceproducer.v1beta.StandardOffer.PriceModel.Usage
+ */
+class Usage extends \Google\Protobuf\Internal\Message
+{
+ protected $skus;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Commerceproducer\V1beta\StandardOffer\PriceModel\SkuList $sku_list
+ * Output only. The offer's usage fees are charged against these SKUs.
+ * @type \Google\Cloud\Commerceproducer\V1beta\StandardOffer\PriceModel\SkuGroupList $sku_group_list
+ * Output only. The offer's usage fees are charged against the SKUs in
+ * these groups.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\StandardOffer::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The offer's usage fees are charged against these SKUs.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.StandardOffer.PriceModel.SkuList sku_list = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Commerceproducer\V1beta\StandardOffer\PriceModel\SkuList|null
+ */
+ public function getSkuList()
+ {
+ return $this->readOneof(1);
+ }
+
+ public function hasSkuList()
+ {
+ return $this->hasOneof(1);
+ }
+
+ /**
+ * Output only. The offer's usage fees are charged against these SKUs.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.StandardOffer.PriceModel.SkuList sku_list = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Commerceproducer\V1beta\StandardOffer\PriceModel\SkuList $var
+ * @return $this
+ */
+ public function setSkuList($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Commerceproducer\V1beta\StandardOffer\PriceModel\SkuList::class);
+ $this->writeOneof(1, $var);
+
+ return $this;
+ }
+
+ /**
+ * Output only. The offer's usage fees are charged against the SKUs in
+ * these groups.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.StandardOffer.PriceModel.SkuGroupList sku_group_list = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Commerceproducer\V1beta\StandardOffer\PriceModel\SkuGroupList|null
+ */
+ public function getSkuGroupList()
+ {
+ return $this->readOneof(2);
+ }
+
+ public function hasSkuGroupList()
+ {
+ return $this->hasOneof(2);
+ }
+
+ /**
+ * Output only. The offer's usage fees are charged against the SKUs in
+ * these groups.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.StandardOffer.PriceModel.SkuGroupList sku_group_list = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Commerceproducer\V1beta\StandardOffer\PriceModel\SkuGroupList $var
+ * @return $this
+ */
+ public function setSkuGroupList($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Commerceproducer\V1beta\StandardOffer\PriceModel\SkuGroupList::class);
+ $this->writeOneof(2, $var);
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getSkus()
+ {
+ return $this->whichOneof("skus");
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/StandardOfferView.php b/Commerceproducer/src/V1beta/StandardOfferView.php
new file mode 100644
index 00000000000..c93479bdc2e
--- /dev/null
+++ b/Commerceproducer/src/V1beta/StandardOfferView.php
@@ -0,0 +1,64 @@
+google.cloud.commerceproducer.v1beta.StandardOfferView
+ */
+class StandardOfferView
+{
+ /**
+ * The default / unset value.
+ * The API will default to the BASIC view.
+ *
+ * Generated from protobuf enum STANDARD_OFFER_VIEW_UNSPECIFIED = 0;
+ */
+ const STANDARD_OFFER_VIEW_UNSPECIFIED = 0;
+ /**
+ * Include basic metadata about the StandardOffer, but not the full contents.
+ * This is the default value (for both List and Get requests).
+ *
+ * Generated from protobuf enum STANDARD_OFFER_VIEW_BASIC = 1;
+ */
+ const STANDARD_OFFER_VIEW_BASIC = 1;
+ /**
+ * Include everything.
+ *
+ * Generated from protobuf enum STANDARD_OFFER_VIEW_FULL = 2;
+ */
+ const STANDARD_OFFER_VIEW_FULL = 2;
+
+ private static $valueToName = [
+ self::STANDARD_OFFER_VIEW_UNSPECIFIED => 'STANDARD_OFFER_VIEW_UNSPECIFIED',
+ self::STANDARD_OFFER_VIEW_BASIC => 'STANDARD_OFFER_VIEW_BASIC',
+ self::STANDARD_OFFER_VIEW_FULL => 'STANDARD_OFFER_VIEW_FULL',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
diff --git a/Commerceproducer/src/V1beta/UpdatePrivateOfferDocumentRequest.php b/Commerceproducer/src/V1beta/UpdatePrivateOfferDocumentRequest.php
new file mode 100644
index 00000000000..ecbd35de1d7
--- /dev/null
+++ b/Commerceproducer/src/V1beta/UpdatePrivateOfferDocumentRequest.php
@@ -0,0 +1,156 @@
+google.cloud.commerceproducer.v1beta.UpdatePrivateOfferDocumentRequest
+ */
+class UpdatePrivateOfferDocumentRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The resource being updated.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOfferDocument private_offer_document = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $private_offer_document = null;
+ /**
+ * Optional. The list of fields to update.
+ * The fields specified in the update_mask are relative to the resource, not
+ * the full request. A field will be overwritten if it is in the mask.
+ * The special value "*" means full replacement.
+ * If unspecified, all fields present in the request will be overwritten.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $update_mask = null;
+
+ /**
+ * @param \Google\Cloud\Commerceproducer\V1beta\PrivateOfferDocument $privateOfferDocument Required. The resource being updated.
+ * @param \Google\Protobuf\FieldMask $updateMask Optional. The list of fields to update.
+ * The fields specified in the update_mask are relative to the resource, not
+ * the full request. A field will be overwritten if it is in the mask.
+ * The special value "*" means full replacement.
+ * If unspecified, all fields present in the request will be overwritten.
+ *
+ * @return \Google\Cloud\Commerceproducer\V1beta\UpdatePrivateOfferDocumentRequest
+ *
+ * @experimental
+ */
+ public static function build(\Google\Cloud\Commerceproducer\V1beta\PrivateOfferDocument $privateOfferDocument, \Google\Protobuf\FieldMask $updateMask): self
+ {
+ return (new self())
+ ->setPrivateOfferDocument($privateOfferDocument)
+ ->setUpdateMask($updateMask);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Commerceproducer\V1beta\PrivateOfferDocument $private_offer_document
+ * Required. The resource being updated.
+ * @type \Google\Protobuf\FieldMask $update_mask
+ * Optional. The list of fields to update.
+ * The fields specified in the update_mask are relative to the resource, not
+ * the full request. A field will be overwritten if it is in the mask.
+ * The special value "*" means full replacement.
+ * If unspecified, all fields present in the request will be overwritten.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\CommerceTransaction::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The resource being updated.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOfferDocument private_offer_document = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\Commerceproducer\V1beta\PrivateOfferDocument|null
+ */
+ public function getPrivateOfferDocument()
+ {
+ return $this->private_offer_document;
+ }
+
+ public function hasPrivateOfferDocument()
+ {
+ return isset($this->private_offer_document);
+ }
+
+ public function clearPrivateOfferDocument()
+ {
+ unset($this->private_offer_document);
+ }
+
+ /**
+ * Required. The resource being updated.
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOfferDocument private_offer_document = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\Commerceproducer\V1beta\PrivateOfferDocument $var
+ * @return $this
+ */
+ public function setPrivateOfferDocument($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Commerceproducer\V1beta\PrivateOfferDocument::class);
+ $this->private_offer_document = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The list of fields to update.
+ * The fields specified in the update_mask are relative to the resource, not
+ * the full request. A field will be overwritten if it is in the mask.
+ * The special value "*" means full replacement.
+ * If unspecified, all fields present in the request will be overwritten.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Protobuf\FieldMask|null
+ */
+ public function getUpdateMask()
+ {
+ return $this->update_mask;
+ }
+
+ public function hasUpdateMask()
+ {
+ return isset($this->update_mask);
+ }
+
+ public function clearUpdateMask()
+ {
+ unset($this->update_mask);
+ }
+
+ /**
+ * Optional. The list of fields to update.
+ * The fields specified in the update_mask are relative to the resource, not
+ * the full request. A field will be overwritten if it is in the mask.
+ * The special value "*" means full replacement.
+ * If unspecified, all fields present in the request will be overwritten.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Protobuf\FieldMask $var
+ * @return $this
+ */
+ public function setUpdateMask($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\FieldMask::class);
+ $this->update_mask = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/UpdatePrivateOfferRequest.php b/Commerceproducer/src/V1beta/UpdatePrivateOfferRequest.php
new file mode 100644
index 00000000000..a45180e62c1
--- /dev/null
+++ b/Commerceproducer/src/V1beta/UpdatePrivateOfferRequest.php
@@ -0,0 +1,156 @@
+google.cloud.commerceproducer.v1beta.UpdatePrivateOfferRequest
+ */
+class UpdatePrivateOfferRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Optional. The list of fields to update.
+ * The fields specified in the update_mask are relative to the resource, not
+ * the full request. A field will be overwritten if it is in the mask.
+ * The special value "*" means full replacement.
+ * If unspecified, all fields present in the request will be overwritten.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $update_mask = null;
+ /**
+ * Required. The resource being updated
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOffer private_offer = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $private_offer = null;
+
+ /**
+ * @param \Google\Cloud\Commerceproducer\V1beta\PrivateOffer $privateOffer Required. The resource being updated
+ * @param \Google\Protobuf\FieldMask $updateMask Optional. The list of fields to update.
+ * The fields specified in the update_mask are relative to the resource, not
+ * the full request. A field will be overwritten if it is in the mask.
+ * The special value "*" means full replacement.
+ * If unspecified, all fields present in the request will be overwritten.
+ *
+ * @return \Google\Cloud\Commerceproducer\V1beta\UpdatePrivateOfferRequest
+ *
+ * @experimental
+ */
+ public static function build(\Google\Cloud\Commerceproducer\V1beta\PrivateOffer $privateOffer, \Google\Protobuf\FieldMask $updateMask): self
+ {
+ return (new self())
+ ->setPrivateOffer($privateOffer)
+ ->setUpdateMask($updateMask);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Protobuf\FieldMask $update_mask
+ * Optional. The list of fields to update.
+ * The fields specified in the update_mask are relative to the resource, not
+ * the full request. A field will be overwritten if it is in the mask.
+ * The special value "*" means full replacement.
+ * If unspecified, all fields present in the request will be overwritten.
+ * @type \Google\Cloud\Commerceproducer\V1beta\PrivateOffer $private_offer
+ * Required. The resource being updated
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Commerceproducer\V1Beta\CommerceTransaction::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Optional. The list of fields to update.
+ * The fields specified in the update_mask are relative to the resource, not
+ * the full request. A field will be overwritten if it is in the mask.
+ * The special value "*" means full replacement.
+ * If unspecified, all fields present in the request will be overwritten.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Protobuf\FieldMask|null
+ */
+ public function getUpdateMask()
+ {
+ return $this->update_mask;
+ }
+
+ public function hasUpdateMask()
+ {
+ return isset($this->update_mask);
+ }
+
+ public function clearUpdateMask()
+ {
+ unset($this->update_mask);
+ }
+
+ /**
+ * Optional. The list of fields to update.
+ * The fields specified in the update_mask are relative to the resource, not
+ * the full request. A field will be overwritten if it is in the mask.
+ * The special value "*" means full replacement.
+ * If unspecified, all fields present in the request will be overwritten.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Protobuf\FieldMask $var
+ * @return $this
+ */
+ public function setUpdateMask($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\FieldMask::class);
+ $this->update_mask = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The resource being updated
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOffer private_offer = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\Commerceproducer\V1beta\PrivateOffer|null
+ */
+ public function getPrivateOffer()
+ {
+ return $this->private_offer;
+ }
+
+ public function hasPrivateOffer()
+ {
+ return isset($this->private_offer);
+ }
+
+ public function clearPrivateOffer()
+ {
+ unset($this->private_offer);
+ }
+
+ /**
+ * Required. The resource being updated
+ *
+ * Generated from protobuf field .google.cloud.commerceproducer.v1beta.PrivateOffer private_offer = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\Commerceproducer\V1beta\PrivateOffer $var
+ * @return $this
+ */
+ public function setPrivateOffer($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Commerceproducer\V1beta\PrivateOffer::class);
+ $this->private_offer = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/Commerceproducer/src/V1beta/gapic_metadata.json b/Commerceproducer/src/V1beta/gapic_metadata.json
new file mode 100644
index 00000000000..87a6b7db071
--- /dev/null
+++ b/Commerceproducer/src/V1beta/gapic_metadata.json
@@ -0,0 +1,133 @@
+{
+ "schema": "1.0",
+ "comment": "This file maps proto services\/RPCs to the corresponding library clients\/methods",
+ "language": "php",
+ "protoPackage": "google.cloud.commerceproducer.v1beta",
+ "libraryPackage": "Google\\Cloud\\Commerceproducer\\V1beta",
+ "services": {
+ "CommerceTransaction": {
+ "clients": {
+ "grpc": {
+ "libraryClient": "CommerceTransactionGapicClient",
+ "rpcs": {
+ "CancelPrivateOffer": {
+ "methods": [
+ "cancelPrivateOffer"
+ ]
+ },
+ "CreatePrivateOffer": {
+ "methods": [
+ "createPrivateOffer"
+ ]
+ },
+ "CreatePrivateOfferDocument": {
+ "methods": [
+ "createPrivateOfferDocument"
+ ]
+ },
+ "DeletePrivateOffer": {
+ "methods": [
+ "deletePrivateOffer"
+ ]
+ },
+ "DeletePrivateOfferDocument": {
+ "methods": [
+ "deletePrivateOfferDocument"
+ ]
+ },
+ "GetPrivateOffer": {
+ "methods": [
+ "getPrivateOffer"
+ ]
+ },
+ "GetPrivateOfferDocument": {
+ "methods": [
+ "getPrivateOfferDocument"
+ ]
+ },
+ "GetService": {
+ "methods": [
+ "getService"
+ ]
+ },
+ "GetSku": {
+ "methods": [
+ "getSku"
+ ]
+ },
+ "GetSkuGroup": {
+ "methods": [
+ "getSkuGroup"
+ ]
+ },
+ "GetStandardOffer": {
+ "methods": [
+ "getStandardOffer"
+ ]
+ },
+ "ListPrivateOfferDocuments": {
+ "methods": [
+ "listPrivateOfferDocuments"
+ ]
+ },
+ "ListPrivateOffers": {
+ "methods": [
+ "listPrivateOffers"
+ ]
+ },
+ "ListServices": {
+ "methods": [
+ "listServices"
+ ]
+ },
+ "ListSkuGroups": {
+ "methods": [
+ "listSkuGroups"
+ ]
+ },
+ "ListSkus": {
+ "methods": [
+ "listSkus"
+ ]
+ },
+ "ListStandardOffers": {
+ "methods": [
+ "listStandardOffers"
+ ]
+ },
+ "PublishPrivateOffer": {
+ "methods": [
+ "publishPrivateOffer"
+ ]
+ },
+ "ResolveAmendmentTarget": {
+ "methods": [
+ "resolveAmendmentTarget"
+ ]
+ },
+ "UpdatePrivateOffer": {
+ "methods": [
+ "updatePrivateOffer"
+ ]
+ },
+ "UpdatePrivateOfferDocument": {
+ "methods": [
+ "updatePrivateOfferDocument"
+ ]
+ },
+ "GetLocation": {
+ "methods": [
+ "getLocation"
+ ]
+ },
+ "ListLocations": {
+ "methods": [
+ "listLocations"
+ ]
+ }
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Commerceproducer/src/V1beta/resources/commerce_transaction_client_config.json b/Commerceproducer/src/V1beta/resources/commerce_transaction_client_config.json
new file mode 100644
index 00000000000..b5b92cae0af
--- /dev/null
+++ b/Commerceproducer/src/V1beta/resources/commerce_transaction_client_config.json
@@ -0,0 +1,159 @@
+{
+ "interfaces": {
+ "google.cloud.commerceproducer.v1beta.CommerceTransaction": {
+ "retry_codes": {
+ "no_retry_codes": [],
+ "retry_policy_1_codes": [
+ "UNAVAILABLE"
+ ],
+ "no_retry_1_codes": []
+ },
+ "retry_params": {
+ "no_retry_params": {
+ "initial_retry_delay_millis": 0,
+ "retry_delay_multiplier": 0.0,
+ "max_retry_delay_millis": 0,
+ "initial_rpc_timeout_millis": 0,
+ "rpc_timeout_multiplier": 1.0,
+ "max_rpc_timeout_millis": 0,
+ "total_timeout_millis": 0
+ },
+ "retry_policy_1_params": {
+ "initial_retry_delay_millis": 1000,
+ "retry_delay_multiplier": 1.3,
+ "max_retry_delay_millis": 10000,
+ "initial_rpc_timeout_millis": 60000,
+ "rpc_timeout_multiplier": 1.0,
+ "max_rpc_timeout_millis": 60000,
+ "total_timeout_millis": 60000
+ },
+ "no_retry_1_params": {
+ "initial_retry_delay_millis": 0,
+ "retry_delay_multiplier": 0.0,
+ "max_retry_delay_millis": 0,
+ "initial_rpc_timeout_millis": 60000,
+ "rpc_timeout_multiplier": 1.0,
+ "max_rpc_timeout_millis": 60000,
+ "total_timeout_millis": 60000
+ }
+ },
+ "methods": {
+ "CancelPrivateOffer": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "CreatePrivateOffer": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "CreatePrivateOfferDocument": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "DeletePrivateOffer": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "DeletePrivateOfferDocument": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "GetPrivateOffer": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "GetPrivateOfferDocument": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "GetService": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "GetSku": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "GetSkuGroup": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "GetStandardOffer": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "ListPrivateOfferDocuments": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "ListPrivateOffers": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "ListServices": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "ListSkuGroups": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "ListSkus": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "ListStandardOffers": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "PublishPrivateOffer": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "ResolveAmendmentTarget": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "UpdatePrivateOffer": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "UpdatePrivateOfferDocument": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "GetLocation": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ },
+ "ListLocations": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ }
+ }
+ }
+ }
+}
diff --git a/Commerceproducer/src/V1beta/resources/commerce_transaction_descriptor_config.php b/Commerceproducer/src/V1beta/resources/commerce_transaction_descriptor_config.php
new file mode 100644
index 00000000000..bbdd992c469
--- /dev/null
+++ b/Commerceproducer/src/V1beta/resources/commerce_transaction_descriptor_config.php
@@ -0,0 +1,374 @@
+ [
+ 'google.cloud.commerceproducer.v1beta.CommerceTransaction' => [
+ 'CancelPrivateOffer' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Commerceproducer\V1beta\PrivateOffer',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'CreatePrivateOffer' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Commerceproducer\V1beta\PrivateOffer',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'CreatePrivateOfferDocument' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Commerceproducer\V1beta\PrivateOfferDocument',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'DeletePrivateOffer' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Protobuf\GPBEmpty',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DeletePrivateOfferDocument' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Protobuf\GPBEmpty',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetPrivateOffer' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Commerceproducer\V1beta\PrivateOffer',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetPrivateOfferDocument' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Commerceproducer\V1beta\PrivateOfferDocument',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetService' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Commerceproducer\V1beta\Service',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetSku' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Commerceproducer\V1beta\Sku',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetSkuGroup' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Commerceproducer\V1beta\SkuGroup',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetStandardOffer' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Commerceproducer\V1beta\StandardOffer',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ListPrivateOfferDocuments' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getPrivateOfferDocuments',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Cloud\Commerceproducer\V1beta\ListPrivateOfferDocumentsResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListPrivateOffers' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getPrivateOffers',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Cloud\Commerceproducer\V1beta\ListPrivateOffersResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListServices' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getServices',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Cloud\Commerceproducer\V1beta\ListServicesResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListSkuGroups' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getSkuGroups',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Cloud\Commerceproducer\V1beta\ListSkuGroupsResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListSkus' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getSkus',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Cloud\Commerceproducer\V1beta\ListSkusResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListStandardOffers' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getStandardOffers',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Cloud\Commerceproducer\V1beta\ListStandardOffersResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'PublishPrivateOffer' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Commerceproducer\V1beta\PrivateOffer',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ResolveAmendmentTarget' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Commerceproducer\V1beta\ResolveAmendmentTargetResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'UpdatePrivateOffer' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Commerceproducer\V1beta\PrivateOffer',
+ 'headerParams' => [
+ [
+ 'keyName' => 'private_offer.name',
+ 'fieldAccessors' => [
+ 'getPrivateOffer',
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'UpdatePrivateOfferDocument' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Commerceproducer\V1beta\PrivateOfferDocument',
+ 'headerParams' => [
+ [
+ 'keyName' => 'private_offer_document.name',
+ 'fieldAccessors' => [
+ 'getPrivateOfferDocument',
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetLocation' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Location\Location',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ 'interfaceOverride' => 'google.cloud.location.Locations',
+ ],
+ 'ListLocations' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getLocations',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Cloud\Location\ListLocationsResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ 'interfaceOverride' => 'google.cloud.location.Locations',
+ ],
+ 'templateMap' => [
+ 'billingAccount' => 'billingAccounts/{billing_account}',
+ 'location' => 'projects/{project}/locations/{location}',
+ 'privateOffer' => 'projects/{project}/locations/{location}/privateOffers/{private_offer}',
+ 'privateOfferDocument' => 'projects/{project}/locations/{location}/privateOffers/{private_offer}/documents/{document}',
+ 'service' => 'projects/{project}/locations/{location}/services/{service}',
+ 'sku' => 'projects/{project}/locations/{location}/services/{service}/skus/{sku}',
+ 'skuGroup' => 'projects/{project}/locations/{location}/skuGroups/{sku_group}',
+ 'standardOffer' => 'projects/{project}/locations/{location}/services/{service}/standardOffers/{standard_offer}',
+ ],
+ ],
+ ],
+];
diff --git a/Commerceproducer/src/V1beta/resources/commerce_transaction_rest_client_config.php b/Commerceproducer/src/V1beta/resources/commerce_transaction_rest_client_config.php
new file mode 100644
index 00000000000..02d3ae68fd6
--- /dev/null
+++ b/Commerceproducer/src/V1beta/resources/commerce_transaction_rest_client_config.php
@@ -0,0 +1,339 @@
+ [
+ 'google.cloud.commerceproducer.v1beta.CommerceTransaction' => [
+ 'CancelPrivateOffer' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1beta/{name=projects/*/locations/*/privateOffers/*}:cancel',
+ 'body' => '*',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'CreatePrivateOffer' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1beta/{parent=projects/*/locations/*}/privateOffers',
+ 'body' => 'private_offer',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'CreatePrivateOfferDocument' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1beta/{parent=projects/*/locations/*/privateOffers/*}/documents',
+ 'body' => 'private_offer_document',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'DeletePrivateOffer' => [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v1beta/{name=projects/*/locations/*/privateOffers/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DeletePrivateOfferDocument' => [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v1beta/{name=projects/*/locations/*/privateOffers/*/documents/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetPrivateOffer' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1beta/{name=projects/*/locations/*/privateOffers/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetPrivateOfferDocument' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1beta/{name=projects/*/locations/*/privateOffers/*/documents/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetService' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1beta/{name=projects/*/locations/*/services/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetSku' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1beta/{name=projects/*/locations/*/services/*/skus/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetSkuGroup' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1beta/{name=projects/*/locations/*/skuGroups/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetStandardOffer' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1beta/{name=projects/*/locations/*/services/*/standardOffers/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ListPrivateOfferDocuments' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1beta/{parent=projects/*/locations/*/privateOffers/*}/documents',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListPrivateOffers' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1beta/{parent=projects/*/locations/*}/privateOffers',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListServices' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1beta/{parent=projects/*/locations/*}/services',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListSkuGroups' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1beta/{parent=projects/*/locations/*}/skuGroups',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListSkus' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1beta/{parent=projects/*/locations/*/services/*}/skus',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListStandardOffers' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1beta/{parent=projects/*/locations/*/services/*}/standardOffers',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'PublishPrivateOffer' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1beta/{name=projects/*/locations/*/privateOffers/*}:publish',
+ 'body' => '*',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ResolveAmendmentTarget' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1beta/{parent=projects/*/locations/*}/privateOffers:resolveAmendmentTarget',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'UpdatePrivateOffer' => [
+ 'method' => 'patch',
+ 'uriTemplate' => '/v1beta/{private_offer.name=projects/*/locations/*/privateOffers/*}',
+ 'body' => 'private_offer',
+ 'placeholders' => [
+ 'private_offer.name' => [
+ 'getters' => [
+ 'getPrivateOffer',
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'UpdatePrivateOfferDocument' => [
+ 'method' => 'patch',
+ 'uriTemplate' => '/v1beta/{private_offer_document.name=projects/*/locations/*/privateOffers/*/documents/*}',
+ 'body' => 'private_offer_document',
+ 'placeholders' => [
+ 'private_offer_document.name' => [
+ 'getters' => [
+ 'getPrivateOfferDocument',
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'google.cloud.location.Locations' => [
+ 'GetLocation' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1beta/{name=projects/*/locations/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ListLocations' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1beta/{name=projects/*}/locations',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'google.longrunning.Operations' => [
+ 'CancelOperation' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1beta/{name=projects/*/locations/*/operations/*}:cancel',
+ 'body' => '*',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteOperation' => [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v1beta/{name=projects/*/locations/*/operations/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetOperation' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1beta/{name=projects/*/locations/*/operations/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ListOperations' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1beta/{name=projects/*/locations/*}/operations',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'numericEnums' => true,
+];
diff --git a/Commerceproducer/tests/Unit/V1beta/Client/CommerceTransactionClientTest.php b/Commerceproducer/tests/Unit/V1beta/Client/CommerceTransactionClientTest.php
new file mode 100644
index 00000000000..5955a40bdfc
--- /dev/null
+++ b/Commerceproducer/tests/Unit/V1beta/Client/CommerceTransactionClientTest.php
@@ -0,0 +1,1832 @@
+getMockBuilder(CredentialsWrapper::class)
+ ->disableOriginalConstructor()
+ ->getMock();
+ }
+
+ /** @return CommerceTransactionClient */
+ private function createClient(array $options = [])
+ {
+ $options += [
+ 'credentials' => $this->createCredentials(),
+ ];
+ return new CommerceTransactionClient($options);
+ }
+
+ /** @test */
+ public function cancelPrivateOfferTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $cancellationNote2 = 'cancellationNote2686711265';
+ $internalNote = 'internalNote1826508852';
+ $title = 'title110371416';
+ $customerNote = 'customerNote-2143804493';
+ $expectedResponse = new PrivateOffer();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setCancellationNote($cancellationNote2);
+ $expectedResponse->setInternalNote($internalNote);
+ $expectedResponse->setTitle($title);
+ $expectedResponse->setCustomerNote($customerNote);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->privateOfferName('[PROJECT]', '[LOCATION]', '[PRIVATE_OFFER]');
+ $request = (new CancelPrivateOfferRequest())->setName($formattedName);
+ $response = $gapicClient->cancelPrivateOffer($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame(
+ '/google.cloud.commerceproducer.v1beta.CommerceTransaction/CancelPrivateOffer',
+ $actualFuncCall
+ );
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function cancelPrivateOfferExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode(
+ [
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ],
+ JSON_PRETTY_PRINT
+ );
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->privateOfferName('[PROJECT]', '[LOCATION]', '[PRIVATE_OFFER]');
+ $request = (new CancelPrivateOfferRequest())->setName($formattedName);
+ try {
+ $gapicClient->cancelPrivateOffer($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function createPrivateOfferTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $cancellationNote = 'cancellationNote-750122578';
+ $internalNote = 'internalNote1826508852';
+ $title = 'title110371416';
+ $customerNote = 'customerNote-2143804493';
+ $expectedResponse = new PrivateOffer();
+ $expectedResponse->setName($name);
+ $expectedResponse->setCancellationNote($cancellationNote);
+ $expectedResponse->setInternalNote($internalNote);
+ $expectedResponse->setTitle($title);
+ $expectedResponse->setCustomerNote($customerNote);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $privateOffer = new PrivateOffer();
+ $request = (new CreatePrivateOfferRequest())->setParent($formattedParent)->setPrivateOffer($privateOffer);
+ $response = $gapicClient->createPrivateOffer($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame(
+ '/google.cloud.commerceproducer.v1beta.CommerceTransaction/CreatePrivateOffer',
+ $actualFuncCall
+ );
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualRequestObject->getPrivateOffer();
+ $this->assertProtobufEquals($privateOffer, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function createPrivateOfferExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode(
+ [
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ],
+ JSON_PRETTY_PRINT
+ );
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $privateOffer = new PrivateOffer();
+ $request = (new CreatePrivateOfferRequest())->setParent($formattedParent)->setPrivateOffer($privateOffer);
+ try {
+ $gapicClient->createPrivateOffer($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function createPrivateOfferDocumentTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $inlineContent = '-45';
+ $name = 'name3373707';
+ $mimeType = 'mimeType-196041627';
+ $expectedResponse = new PrivateOfferDocument();
+ $expectedResponse->setInlineContent($inlineContent);
+ $expectedResponse->setName($name);
+ $expectedResponse->setMimeType($mimeType);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->privateOfferName('[PROJECT]', '[LOCATION]', '[PRIVATE_OFFER]');
+ $privateOfferDocument = new PrivateOfferDocument();
+ $privateOfferDocumentDocumentType = DocumentType::DOCUMENT_TYPE_UNSPECIFIED;
+ $privateOfferDocument->setDocumentType($privateOfferDocumentDocumentType);
+ $request = (new CreatePrivateOfferDocumentRequest())
+ ->setParent($formattedParent)
+ ->setPrivateOfferDocument($privateOfferDocument);
+ $response = $gapicClient->createPrivateOfferDocument($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame(
+ '/google.cloud.commerceproducer.v1beta.CommerceTransaction/CreatePrivateOfferDocument',
+ $actualFuncCall
+ );
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualRequestObject->getPrivateOfferDocument();
+ $this->assertProtobufEquals($privateOfferDocument, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function createPrivateOfferDocumentExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode(
+ [
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ],
+ JSON_PRETTY_PRINT
+ );
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedParent = $gapicClient->privateOfferName('[PROJECT]', '[LOCATION]', '[PRIVATE_OFFER]');
+ $privateOfferDocument = new PrivateOfferDocument();
+ $privateOfferDocumentDocumentType = DocumentType::DOCUMENT_TYPE_UNSPECIFIED;
+ $privateOfferDocument->setDocumentType($privateOfferDocumentDocumentType);
+ $request = (new CreatePrivateOfferDocumentRequest())
+ ->setParent($formattedParent)
+ ->setPrivateOfferDocument($privateOfferDocument);
+ try {
+ $gapicClient->createPrivateOfferDocument($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function deletePrivateOfferTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new GPBEmpty();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->privateOfferName('[PROJECT]', '[LOCATION]', '[PRIVATE_OFFER]');
+ $request = (new DeletePrivateOfferRequest())->setName($formattedName);
+ $gapicClient->deletePrivateOffer($request);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame(
+ '/google.cloud.commerceproducer.v1beta.CommerceTransaction/DeletePrivateOffer',
+ $actualFuncCall
+ );
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function deletePrivateOfferExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode(
+ [
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ],
+ JSON_PRETTY_PRINT
+ );
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->privateOfferName('[PROJECT]', '[LOCATION]', '[PRIVATE_OFFER]');
+ $request = (new DeletePrivateOfferRequest())->setName($formattedName);
+ try {
+ $gapicClient->deletePrivateOffer($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function deletePrivateOfferDocumentTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new GPBEmpty();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->privateOfferDocumentName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[PRIVATE_OFFER]',
+ '[DOCUMENT]'
+ );
+ $request = (new DeletePrivateOfferDocumentRequest())->setName($formattedName);
+ $gapicClient->deletePrivateOfferDocument($request);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame(
+ '/google.cloud.commerceproducer.v1beta.CommerceTransaction/DeletePrivateOfferDocument',
+ $actualFuncCall
+ );
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function deletePrivateOfferDocumentExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode(
+ [
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ],
+ JSON_PRETTY_PRINT
+ );
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->privateOfferDocumentName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[PRIVATE_OFFER]',
+ '[DOCUMENT]'
+ );
+ $request = (new DeletePrivateOfferDocumentRequest())->setName($formattedName);
+ try {
+ $gapicClient->deletePrivateOfferDocument($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getPrivateOfferTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $cancellationNote = 'cancellationNote-750122578';
+ $internalNote = 'internalNote1826508852';
+ $title = 'title110371416';
+ $customerNote = 'customerNote-2143804493';
+ $expectedResponse = new PrivateOffer();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setCancellationNote($cancellationNote);
+ $expectedResponse->setInternalNote($internalNote);
+ $expectedResponse->setTitle($title);
+ $expectedResponse->setCustomerNote($customerNote);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->privateOfferName('[PROJECT]', '[LOCATION]', '[PRIVATE_OFFER]');
+ $request = (new GetPrivateOfferRequest())->setName($formattedName);
+ $response = $gapicClient->getPrivateOffer($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.commerceproducer.v1beta.CommerceTransaction/GetPrivateOffer', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getPrivateOfferExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode(
+ [
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ],
+ JSON_PRETTY_PRINT
+ );
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->privateOfferName('[PROJECT]', '[LOCATION]', '[PRIVATE_OFFER]');
+ $request = (new GetPrivateOfferRequest())->setName($formattedName);
+ try {
+ $gapicClient->getPrivateOffer($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getPrivateOfferDocumentTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $inlineContent = '-45';
+ $name2 = 'name2-1052831874';
+ $mimeType = 'mimeType-196041627';
+ $expectedResponse = new PrivateOfferDocument();
+ $expectedResponse->setInlineContent($inlineContent);
+ $expectedResponse->setName($name2);
+ $expectedResponse->setMimeType($mimeType);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->privateOfferDocumentName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[PRIVATE_OFFER]',
+ '[DOCUMENT]'
+ );
+ $request = (new GetPrivateOfferDocumentRequest())->setName($formattedName);
+ $response = $gapicClient->getPrivateOfferDocument($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame(
+ '/google.cloud.commerceproducer.v1beta.CommerceTransaction/GetPrivateOfferDocument',
+ $actualFuncCall
+ );
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getPrivateOfferDocumentExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode(
+ [
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ],
+ JSON_PRETTY_PRINT
+ );
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->privateOfferDocumentName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[PRIVATE_OFFER]',
+ '[DOCUMENT]'
+ );
+ $request = (new GetPrivateOfferDocumentRequest())->setName($formattedName);
+ try {
+ $gapicClient->getPrivateOfferDocument($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getServiceTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $title = 'title110371416';
+ $expectedResponse = new Service();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setTitle($title);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $request = (new GetServiceRequest())->setName($formattedName);
+ $response = $gapicClient->getService($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.commerceproducer.v1beta.CommerceTransaction/GetService', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getServiceExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode(
+ [
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ],
+ JSON_PRETTY_PRINT
+ );
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $request = (new GetServiceRequest())->setName($formattedName);
+ try {
+ $gapicClient->getService($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getSkuTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $description = 'description-1724546052';
+ $expectedResponse = new Sku();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setDescription($description);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->skuName('[PROJECT]', '[LOCATION]', '[SERVICE]', '[SKU]');
+ $request = (new GetSkuRequest())->setName($formattedName);
+ $response = $gapicClient->getSku($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.commerceproducer.v1beta.CommerceTransaction/GetSku', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getSkuExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode(
+ [
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ],
+ JSON_PRETTY_PRINT
+ );
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->skuName('[PROJECT]', '[LOCATION]', '[SERVICE]', '[SKU]');
+ $request = (new GetSkuRequest())->setName($formattedName);
+ try {
+ $gapicClient->getSku($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getSkuGroupTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $expectedResponse = new SkuGroup();
+ $expectedResponse->setName($name2);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->skuGroupName('[PROJECT]', '[LOCATION]', '[SKU_GROUP]');
+ $request = (new GetSkuGroupRequest())->setName($formattedName);
+ $response = $gapicClient->getSkuGroup($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.commerceproducer.v1beta.CommerceTransaction/GetSkuGroup', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getSkuGroupExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode(
+ [
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ],
+ JSON_PRETTY_PRINT
+ );
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->skuGroupName('[PROJECT]', '[LOCATION]', '[SKU_GROUP]');
+ $request = (new GetSkuGroupRequest())->setName($formattedName);
+ try {
+ $gapicClient->getSkuGroup($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getStandardOfferTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $termDurationMonths = 480407851;
+ $name2 = 'name2-1052831874';
+ $serviceLevel = 'serviceLevel-1730336390';
+ $serviceLevelTitle = 'serviceLevelTitle2097359699';
+ $expectedResponse = new StandardOffer();
+ $expectedResponse->setTermDurationMonths($termDurationMonths);
+ $expectedResponse->setName($name2);
+ $expectedResponse->setServiceLevel($serviceLevel);
+ $expectedResponse->setServiceLevelTitle($serviceLevelTitle);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->standardOfferName('[PROJECT]', '[LOCATION]', '[SERVICE]', '[STANDARD_OFFER]');
+ $request = (new GetStandardOfferRequest())->setName($formattedName);
+ $response = $gapicClient->getStandardOffer($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame(
+ '/google.cloud.commerceproducer.v1beta.CommerceTransaction/GetStandardOffer',
+ $actualFuncCall
+ );
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getStandardOfferExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode(
+ [
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ],
+ JSON_PRETTY_PRINT
+ );
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->standardOfferName('[PROJECT]', '[LOCATION]', '[SERVICE]', '[STANDARD_OFFER]');
+ $request = (new GetStandardOfferRequest())->setName($formattedName);
+ try {
+ $gapicClient->getStandardOffer($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listPrivateOfferDocumentsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $privateOfferDocumentsElement = new PrivateOfferDocument();
+ $privateOfferDocuments = [$privateOfferDocumentsElement];
+ $expectedResponse = new ListPrivateOfferDocumentsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setPrivateOfferDocuments($privateOfferDocuments);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->privateOfferName('[PROJECT]', '[LOCATION]', '[PRIVATE_OFFER]');
+ $request = (new ListPrivateOfferDocumentsRequest())->setParent($formattedParent);
+ $response = $gapicClient->listPrivateOfferDocuments($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getPrivateOfferDocuments()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame(
+ '/google.cloud.commerceproducer.v1beta.CommerceTransaction/ListPrivateOfferDocuments',
+ $actualFuncCall
+ );
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listPrivateOfferDocumentsExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode(
+ [
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ],
+ JSON_PRETTY_PRINT
+ );
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedParent = $gapicClient->privateOfferName('[PROJECT]', '[LOCATION]', '[PRIVATE_OFFER]');
+ $request = (new ListPrivateOfferDocumentsRequest())->setParent($formattedParent);
+ try {
+ $gapicClient->listPrivateOfferDocuments($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listPrivateOffersTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $privateOffersElement = new PrivateOffer();
+ $privateOffers = [$privateOffersElement];
+ $expectedResponse = new ListPrivateOffersResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setPrivateOffers($privateOffers);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $request = (new ListPrivateOffersRequest())->setParent($formattedParent);
+ $response = $gapicClient->listPrivateOffers($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getPrivateOffers()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame(
+ '/google.cloud.commerceproducer.v1beta.CommerceTransaction/ListPrivateOffers',
+ $actualFuncCall
+ );
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listPrivateOffersExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode(
+ [
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ],
+ JSON_PRETTY_PRINT
+ );
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $request = (new ListPrivateOffersRequest())->setParent($formattedParent);
+ try {
+ $gapicClient->listPrivateOffers($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listServicesTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $servicesElement = new Service();
+ $services = [$servicesElement];
+ $expectedResponse = new ListServicesResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setServices($services);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $request = (new ListServicesRequest())->setParent($formattedParent);
+ $response = $gapicClient->listServices($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getServices()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.commerceproducer.v1beta.CommerceTransaction/ListServices', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listServicesExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode(
+ [
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ],
+ JSON_PRETTY_PRINT
+ );
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $request = (new ListServicesRequest())->setParent($formattedParent);
+ try {
+ $gapicClient->listServices($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listSkuGroupsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $skuGroupsElement = new SkuGroup();
+ $skuGroups = [$skuGroupsElement];
+ $expectedResponse = new ListSkuGroupsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setSkuGroups($skuGroups);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $request = (new ListSkuGroupsRequest())->setParent($formattedParent);
+ $response = $gapicClient->listSkuGroups($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getSkuGroups()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.commerceproducer.v1beta.CommerceTransaction/ListSkuGroups', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listSkuGroupsExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode(
+ [
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ],
+ JSON_PRETTY_PRINT
+ );
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $request = (new ListSkuGroupsRequest())->setParent($formattedParent);
+ try {
+ $gapicClient->listSkuGroups($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listSkusTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $skusElement = new Sku();
+ $skus = [$skusElement];
+ $expectedResponse = new ListSkusResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setSkus($skus);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $request = (new ListSkusRequest())->setParent($formattedParent);
+ $response = $gapicClient->listSkus($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getSkus()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.commerceproducer.v1beta.CommerceTransaction/ListSkus', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listSkusExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode(
+ [
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ],
+ JSON_PRETTY_PRINT
+ );
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedParent = $gapicClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $request = (new ListSkusRequest())->setParent($formattedParent);
+ try {
+ $gapicClient->listSkus($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listStandardOffersTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $standardOffersElement = new StandardOffer();
+ $standardOffers = [$standardOffersElement];
+ $expectedResponse = new ListStandardOffersResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setStandardOffers($standardOffers);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $request = (new ListStandardOffersRequest())->setParent($formattedParent);
+ $response = $gapicClient->listStandardOffers($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getStandardOffers()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame(
+ '/google.cloud.commerceproducer.v1beta.CommerceTransaction/ListStandardOffers',
+ $actualFuncCall
+ );
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listStandardOffersExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode(
+ [
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ],
+ JSON_PRETTY_PRINT
+ );
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedParent = $gapicClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $request = (new ListStandardOffersRequest())->setParent($formattedParent);
+ try {
+ $gapicClient->listStandardOffers($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function publishPrivateOfferTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $cancellationNote = 'cancellationNote-750122578';
+ $internalNote = 'internalNote1826508852';
+ $title = 'title110371416';
+ $customerNote = 'customerNote-2143804493';
+ $expectedResponse = new PrivateOffer();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setCancellationNote($cancellationNote);
+ $expectedResponse->setInternalNote($internalNote);
+ $expectedResponse->setTitle($title);
+ $expectedResponse->setCustomerNote($customerNote);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->privateOfferName('[PROJECT]', '[LOCATION]', '[PRIVATE_OFFER]');
+ $request = (new PublishPrivateOfferRequest())->setName($formattedName);
+ $response = $gapicClient->publishPrivateOffer($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame(
+ '/google.cloud.commerceproducer.v1beta.CommerceTransaction/PublishPrivateOffer',
+ $actualFuncCall
+ );
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function publishPrivateOfferExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode(
+ [
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ],
+ JSON_PRETTY_PRINT
+ );
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->privateOfferName('[PROJECT]', '[LOCATION]', '[PRIVATE_OFFER]');
+ $request = (new PublishPrivateOfferRequest())->setName($formattedName);
+ try {
+ $gapicClient->publishPrivateOffer($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function resolveAmendmentTargetTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $requiredPrivateOffer = 'requiredPrivateOffer-880218112';
+ $expectedResponse = new ResolveAmendmentTargetResponse();
+ $expectedResponse->setRequiredPrivateOffer($requiredPrivateOffer);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $formattedTargetBillingAccount = $gapicClient->billingAccountName('[BILLING_ACCOUNT]');
+ $formattedBaseStandardOffer = $gapicClient->standardOfferName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[SERVICE]',
+ '[STANDARD_OFFER]'
+ );
+ $request = (new ResolveAmendmentTargetRequest())
+ ->setParent($formattedParent)
+ ->setTargetBillingAccount($formattedTargetBillingAccount)
+ ->setBaseStandardOffer($formattedBaseStandardOffer);
+ $response = $gapicClient->resolveAmendmentTarget($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame(
+ '/google.cloud.commerceproducer.v1beta.CommerceTransaction/ResolveAmendmentTarget',
+ $actualFuncCall
+ );
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualRequestObject->getTargetBillingAccount();
+ $this->assertProtobufEquals($formattedTargetBillingAccount, $actualValue);
+ $actualValue = $actualRequestObject->getBaseStandardOffer();
+ $this->assertProtobufEquals($formattedBaseStandardOffer, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function resolveAmendmentTargetExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode(
+ [
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ],
+ JSON_PRETTY_PRINT
+ );
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $formattedTargetBillingAccount = $gapicClient->billingAccountName('[BILLING_ACCOUNT]');
+ $formattedBaseStandardOffer = $gapicClient->standardOfferName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[SERVICE]',
+ '[STANDARD_OFFER]'
+ );
+ $request = (new ResolveAmendmentTargetRequest())
+ ->setParent($formattedParent)
+ ->setTargetBillingAccount($formattedTargetBillingAccount)
+ ->setBaseStandardOffer($formattedBaseStandardOffer);
+ try {
+ $gapicClient->resolveAmendmentTarget($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function updatePrivateOfferTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $cancellationNote = 'cancellationNote-750122578';
+ $internalNote = 'internalNote1826508852';
+ $title = 'title110371416';
+ $customerNote = 'customerNote-2143804493';
+ $expectedResponse = new PrivateOffer();
+ $expectedResponse->setName($name);
+ $expectedResponse->setCancellationNote($cancellationNote);
+ $expectedResponse->setInternalNote($internalNote);
+ $expectedResponse->setTitle($title);
+ $expectedResponse->setCustomerNote($customerNote);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $privateOffer = new PrivateOffer();
+ $request = (new UpdatePrivateOfferRequest())->setPrivateOffer($privateOffer);
+ $response = $gapicClient->updatePrivateOffer($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame(
+ '/google.cloud.commerceproducer.v1beta.CommerceTransaction/UpdatePrivateOffer',
+ $actualFuncCall
+ );
+ $actualValue = $actualRequestObject->getPrivateOffer();
+ $this->assertProtobufEquals($privateOffer, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function updatePrivateOfferExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode(
+ [
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ],
+ JSON_PRETTY_PRINT
+ );
+ $transport->addResponse(null, $status);
+ // Mock request
+ $privateOffer = new PrivateOffer();
+ $request = (new UpdatePrivateOfferRequest())->setPrivateOffer($privateOffer);
+ try {
+ $gapicClient->updatePrivateOffer($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function updatePrivateOfferDocumentTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $inlineContent = '-45';
+ $name = 'name3373707';
+ $mimeType = 'mimeType-196041627';
+ $expectedResponse = new PrivateOfferDocument();
+ $expectedResponse->setInlineContent($inlineContent);
+ $expectedResponse->setName($name);
+ $expectedResponse->setMimeType($mimeType);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $privateOfferDocument = new PrivateOfferDocument();
+ $privateOfferDocumentDocumentType = DocumentType::DOCUMENT_TYPE_UNSPECIFIED;
+ $privateOfferDocument->setDocumentType($privateOfferDocumentDocumentType);
+ $request = (new UpdatePrivateOfferDocumentRequest())->setPrivateOfferDocument($privateOfferDocument);
+ $response = $gapicClient->updatePrivateOfferDocument($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame(
+ '/google.cloud.commerceproducer.v1beta.CommerceTransaction/UpdatePrivateOfferDocument',
+ $actualFuncCall
+ );
+ $actualValue = $actualRequestObject->getPrivateOfferDocument();
+ $this->assertProtobufEquals($privateOfferDocument, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function updatePrivateOfferDocumentExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode(
+ [
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ],
+ JSON_PRETTY_PRINT
+ );
+ $transport->addResponse(null, $status);
+ // Mock request
+ $privateOfferDocument = new PrivateOfferDocument();
+ $privateOfferDocumentDocumentType = DocumentType::DOCUMENT_TYPE_UNSPECIFIED;
+ $privateOfferDocument->setDocumentType($privateOfferDocumentDocumentType);
+ $request = (new UpdatePrivateOfferDocumentRequest())->setPrivateOfferDocument($privateOfferDocument);
+ try {
+ $gapicClient->updatePrivateOfferDocument($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getLocationTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $locationId = 'locationId552319461';
+ $displayName = 'displayName1615086568';
+ $expectedResponse = new Location();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setLocationId($locationId);
+ $expectedResponse->setDisplayName($displayName);
+ $transport->addResponse($expectedResponse);
+ $request = new GetLocationRequest();
+ $response = $gapicClient->getLocation($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.location.Locations/GetLocation', $actualFuncCall);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getLocationExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode(
+ [
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ],
+ JSON_PRETTY_PRINT
+ );
+ $transport->addResponse(null, $status);
+ $request = new GetLocationRequest();
+ try {
+ $gapicClient->getLocation($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listLocationsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $locationsElement = new Location();
+ $locations = [$locationsElement];
+ $expectedResponse = new ListLocationsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setLocations($locations);
+ $transport->addResponse($expectedResponse);
+ $request = new ListLocationsRequest();
+ $response = $gapicClient->listLocations($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getLocations()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.location.Locations/ListLocations', $actualFuncCall);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listLocationsExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode(
+ [
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ],
+ JSON_PRETTY_PRINT
+ );
+ $transport->addResponse(null, $status);
+ $request = new ListLocationsRequest();
+ try {
+ $gapicClient->listLocations($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function cancelPrivateOfferAsyncTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $cancellationNote2 = 'cancellationNote2686711265';
+ $internalNote = 'internalNote1826508852';
+ $title = 'title110371416';
+ $customerNote = 'customerNote-2143804493';
+ $expectedResponse = new PrivateOffer();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setCancellationNote($cancellationNote2);
+ $expectedResponse->setInternalNote($internalNote);
+ $expectedResponse->setTitle($title);
+ $expectedResponse->setCustomerNote($customerNote);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->privateOfferName('[PROJECT]', '[LOCATION]', '[PRIVATE_OFFER]');
+ $request = (new CancelPrivateOfferRequest())->setName($formattedName);
+ $response = $gapicClient->cancelPrivateOfferAsync($request)->wait();
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame(
+ '/google.cloud.commerceproducer.v1beta.CommerceTransaction/CancelPrivateOffer',
+ $actualFuncCall
+ );
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+}
diff --git a/composer.json b/composer.json
index 496621a55be..4b47cb0daf8 100644
--- a/composer.json
+++ b/composer.json
@@ -140,6 +140,7 @@
"google/cloud-chronicle": "0.5.0",
"google/cloud-cloudcontrolspartner": "0.5.3",
"google/cloud-commerce-consumer-procurement": "1.3.3",
+ "google/cloud-commerceproducer": "0.0.0",
"google/cloud-common-protos": "1.0.0",
"google/cloud-compute": "2.11.0",
"google/cloud-confidentialcomputing": "1.7.1",
@@ -287,8 +288,9 @@
"google/cloud-workflows": "1.3.0",
"google/cloud-workloadmanager": "0.2.1",
"google/common-protos": "4.14.1",
- "google/gax": "1.46.0",
+ "google/developer-knowledge": "0.2.1",
"google/developers-knowledge": "0.0.0",
+ "google/gax": "1.46.0",
"google/geo-common-protos": "0.2.4",
"google/grafeas": "1.7.0",
"google/longrunning": "0.7.1",
@@ -312,8 +314,7 @@
"google/shopping-merchant-reviews": "0.6.1",
"googleads/ad-manager": "0.8.0",
"googleads/data-manager": "0.6.0",
- "googleads/marketingplatform-admin": "0.4.2",
- "google/developer-knowledge": "0.2.1"
+ "googleads/marketingplatform-admin": "0.4.2"
},
"suggest": {
"opis/closure": "May be used to serialize closures to process jobs in the batch daemon. Please require version ^3.",
@@ -383,6 +384,7 @@
"GPBMetadata\\Google\\Cloud\\Clouddms\\": "Dms/metadata",
"GPBMetadata\\Google\\Cloud\\Cloudsecuritycompliance\\": "SecurityCompliance/metadata",
"GPBMetadata\\Google\\Cloud\\Commerce\\Consumer\\Procurement\\": "CommerceConsumerProcurement/metadata",
+ "GPBMetadata\\Google\\Cloud\\Commerceproducer\\": "Commerceproducer/metadata",
"GPBMetadata\\Google\\Cloud\\Common\\": "CloudCommonProtos/metadata/Common",
"GPBMetadata\\Google\\Cloud\\Compute\\": "Compute/metadata",
"GPBMetadata\\Google\\Cloud\\Confidentialcomputing\\": "ConfidentialComputing/metadata",
@@ -631,6 +633,7 @@
"Google\\Cloud\\CloudQuotas\\": "Quotas/src",
"Google\\Cloud\\CloudSecurityCompliance\\": "SecurityCompliance/src",
"Google\\Cloud\\Commerce\\Consumer\\Procurement\\": "CommerceConsumerProcurement/src",
+ "Google\\Cloud\\Commerceproducer\\": "Commerceproducer/src",
"Google\\Cloud\\Compute\\": "Compute/src",
"Google\\Cloud\\ConfidentialComputing\\": "ConfidentialComputing/src",
"Google\\Cloud\\ConfigDelivery\\": "ConfigDelivery/src",