diff --git a/VideoSticher/.OwlBot.yaml b/VideoSticher/.OwlBot.yaml
new file mode 100644
index 00000000000..8421cea6233
--- /dev/null
+++ b/VideoSticher/.OwlBot.yaml
@@ -0,0 +1,4 @@
+deep-copy-regex:
+ - source: google/cloud/video/stitcher/v1/.*-php/(.*)
+ dest: /owl-bot-staging/VideoStitcher/v1/$1
+api-name: VideoStitcher
diff --git a/VideoSticher/.gitattributes b/VideoSticher/.gitattributes
new file mode 100644
index 00000000000..d43b60862bc
--- /dev/null
+++ b/VideoSticher/.gitattributes
@@ -0,0 +1,3 @@
+/*.xml.dist export-ignore
+/tests export-ignore
+/.github export-ignore
diff --git a/VideoSticher/.github/pull_request_template.md b/VideoSticher/.github/pull_request_template.md
new file mode 100644
index 00000000000..21caea6d0c2
--- /dev/null
+++ b/VideoSticher/.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 `VideoStitcher/src`, and tests in `VideoStitcher/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/VideoSticher/.repo-metadata.json b/VideoSticher/.repo-metadata.json
new file mode 100644
index 00000000000..e6e53db6a89
--- /dev/null
+++ b/VideoSticher/.repo-metadata.json
@@ -0,0 +1,5 @@
+{
+ "distribution_name": "google/cloud-video-stitcher",
+ "release_level": "beta",
+ "client_documentation": "http://googleapis.github.io/google-cloud-php/#/docs/cloud-video-stitcher/latest"
+}
diff --git a/VideoSticher/CODE_OF_CONDUCT.md b/VideoSticher/CODE_OF_CONDUCT.md
new file mode 100644
index 00000000000..c3727800341
--- /dev/null
+++ b/VideoSticher/CODE_OF_CONDUCT.md
@@ -0,0 +1,43 @@
+# Contributor Code of Conduct
+
+As contributors and maintainers of this project,
+and in the interest of fostering an open and welcoming community,
+we pledge to respect all people who contribute through reporting issues,
+posting feature requests, updating documentation,
+submitting pull requests or patches, and other activities.
+
+We are committed to making participation in this project
+a harassment-free experience for everyone,
+regardless of level of experience, gender, gender identity and expression,
+sexual orientation, disability, personal appearance,
+body size, race, ethnicity, age, religion, or nationality.
+
+Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery
+* Personal attacks
+* Trolling or insulting/derogatory comments
+* Public or private harassment
+* Publishing other's private information,
+such as physical or electronic
+addresses, without explicit permission
+* Other unethical or unprofessional conduct.
+
+Project maintainers have the right and responsibility to remove, edit, or reject
+comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct.
+By adopting this Code of Conduct,
+project maintainers commit themselves to fairly and consistently
+applying these principles to every aspect of managing this project.
+Project maintainers who do not follow or enforce the Code of Conduct
+may be permanently removed from the project team.
+
+This code of conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community.
+
+Instances of abusive, harassing, or otherwise unacceptable behavior
+may be reported by opening an issue
+or contacting one or more of the project maintainers.
+
+This Code of Conduct is adapted from the [Contributor Covenant](http://contributor-covenant.org), version 1.2.0,
+available at [http://contributor-covenant.org/version/1/2/0/](http://contributor-covenant.org/version/1/2/0/)
\ No newline at end of file
diff --git a/VideoSticher/CONTRIBUTING.md b/VideoSticher/CONTRIBUTING.md
new file mode 100644
index 00000000000..76ea811cacd
--- /dev/null
+++ b/VideoSticher/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/VideoSticher/LICENSE b/VideoSticher/LICENSE
new file mode 100644
index 00000000000..8f71f43fee3
--- /dev/null
+++ b/VideoSticher/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/VideoSticher/README.md b/VideoSticher/README.md
new file mode 100644
index 00000000000..d406b45be4b
--- /dev/null
+++ b/VideoSticher/README.md
@@ -0,0 +1,45 @@
+# Google Cloud Video Stitcher for PHP
+
+> Idiomatic PHP client for [Google Cloud Video Stitcher](https://cloud.google.com/video-stitcher).
+
+[![Latest Stable Version](https://poser.pugx.org/google/cloud-video-stitcher/v/stable)](https://packagist.org/packages/google/cloud-video-stitcher) [![Packagist](https://img.shields.io/packagist/dm/google/cloud-video-stitcher.svg)](https://packagist.org/packages/google/cloud-video-stitcher)
+
+* [API documentation](http://googleapis.github.io/google-cloud-php/#/docs/cloud-video-stitcher/latest/videostitcher/readme)
+
+**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 to install just this component:
+
+```sh
+$ composer require google/cloud-video-stitcher
+```
+
+Or to install the entire suite of components at once:
+
+```sh
+$ composer require google/cloud
+```
+
+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.
+
+### Version
+
+This component is considered beta. As such, it should be expected to be mostly
+stable and we're working towards a release candidate. We will address issues
+and requests with a higher priority.
+
+### Next Steps
+
+1. Understand the [official documentation](https://cloud.google.com/video-stitcher/docs).
diff --git a/VideoSticher/SECURITY.md b/VideoSticher/SECURITY.md
new file mode 100644
index 00000000000..8b58ae9c01a
--- /dev/null
+++ b/VideoSticher/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/VideoSticher/VERSION b/VideoSticher/VERSION
new file mode 100644
index 00000000000..77d6f4ca237
--- /dev/null
+++ b/VideoSticher/VERSION
@@ -0,0 +1 @@
+0.0.0
diff --git a/VideoSticher/composer.json b/VideoSticher/composer.json
new file mode 100644
index 00000000000..5958c7622aa
--- /dev/null
+++ b/VideoSticher/composer.json
@@ -0,0 +1,37 @@
+{
+ "name": "google/cloud-video-stitcher",
+ "description": "Google Cloud Video Stitcher Client for PHP",
+ "license": "Apache-2.0",
+ "minimum-stability": "stable",
+ "autoload": {
+ "psr-4": {
+ "Google\\Cloud\\Video\\Stitcher\\": "src",
+ "GPBMetadata\\Google\\Cloud\\Video\\Stitcher\\": "metadata"
+ }
+ },
+ "autoload-dev": {
+ "psr-4": {
+ "Google\\Cloud\\Video\\Stitcher\\Tests\\": "tests"
+ }
+ },
+ "extra": {
+ "component": {
+ "id": "cloud-video-stitcher",
+ "path": "VideoStitcher",
+ "entry": null,
+ "target": "googleapis/google-cloud-php-video-stitcher.git"
+ }
+ },
+ "require": {
+ "google/gax": "^1.12.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^4.8|^5.0",
+ "google/cloud-core": "^1.31",
+ "phpdocumentor/reflection": "^3.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/VideoSticher/metadata/V1/AdTagDetails.php b/VideoSticher/metadata/V1/AdTagDetails.php
new file mode 100644
index 00000000000..8ef313824ba
--- /dev/null
+++ b/VideoSticher/metadata/V1/AdTagDetails.php
@@ -0,0 +1,52 @@
+internalAddGeneratedFile(
+ '
+¿
+3google/cloud/video/stitcher/v1/ad_tag_details.protogoogle.cloud.video.stitcher.v1google/protobuf/duration.protogoogle/protobuf/struct.proto"ÿ
+LiveAdTagDetail
+name ( >
+ad_requests (2).google.cloud.video.stitcher.v1.AdRequest:êA™
+,videostitcher.googleapis.com/LiveAdTagDetailiprojects/{project}/locations/{location}/liveSessions/{live_session}/liveAdTagDetails/{live_ad_tag_detail}"ù
+VodAdTagDetail
+name ( >
+ad_requests (2).google.cloud.video.stitcher.v1.AdRequest:˜êA”
++videostitcher.googleapis.com/VodAdTagDetaileprojects/{project}/locations/{location}/vodSessions/{vod_session}/vodAdTagDetails/{vod_ad_tag_detail}"°
+ AdRequest
+uri ( I
+request_metadata (2/.google.cloud.video.stitcher.v1.RequestMetadataK
+response_metadata (20.google.cloud.video.stitcher.v1.ResponseMetadata";
+RequestMetadata(
+headers (2.google.protobuf.Struct"¯
+ResponseMetadata
+error ( (
+headers (2.google.protobuf.Struct
+status_code (
+
+size_bytes (+
+duration (2.google.protobuf.Duration
+body ( B
+"com.google.cloud.video.stitcher.v1BAdTagDetailsProtoPZFgoogle.golang.org/genproto/googleapis/cloud/video/stitcher/v1;stitcherbproto3'
+ , true);
+
+ static::$is_initialized = true;
+ }
+}
+
diff --git a/VideoSticher/metadata/V1/CdnKeys.php b/VideoSticher/metadata/V1/CdnKeys.php
new file mode 100644
index 00000000000..eef7491af41
Binary files /dev/null and b/VideoSticher/metadata/V1/CdnKeys.php differ
diff --git a/VideoSticher/metadata/V1/Companions.php b/VideoSticher/metadata/V1/Companions.php
new file mode 100644
index 00000000000..725fc7910f8
Binary files /dev/null and b/VideoSticher/metadata/V1/Companions.php differ
diff --git a/VideoSticher/metadata/V1/Events.php b/VideoSticher/metadata/V1/Events.php
new file mode 100644
index 00000000000..f5185c58e9c
Binary files /dev/null and b/VideoSticher/metadata/V1/Events.php differ
diff --git a/VideoSticher/metadata/V1/Sessions.php b/VideoSticher/metadata/V1/Sessions.php
new file mode 100644
index 00000000000..853ae50e310
Binary files /dev/null and b/VideoSticher/metadata/V1/Sessions.php differ
diff --git a/VideoSticher/metadata/V1/Slates.php b/VideoSticher/metadata/V1/Slates.php
new file mode 100644
index 00000000000..1c48d70ca5a
--- /dev/null
+++ b/VideoSticher/metadata/V1/Slates.php
@@ -0,0 +1,33 @@
+internalAddGeneratedFile(
+ '
+ø
++google/cloud/video/stitcher/v1/slates.protogoogle.cloud.video.stitcher.v1google/api/resource.proto"ˆ
+Slate
+name ( BàA
+uri ( :_êA\\
+"videostitcher.googleapis.com/Slate6projects/{project}/locations/{location}/slates/{slate}B{
+"com.google.cloud.video.stitcher.v1BSlatesProtoPZFgoogle.golang.org/genproto/googleapis/cloud/video/stitcher/v1;stitcherbproto3'
+ , true);
+
+ static::$is_initialized = true;
+ }
+}
+
diff --git a/VideoSticher/metadata/V1/StitchDetails.php b/VideoSticher/metadata/V1/StitchDetails.php
new file mode 100644
index 00000000000..ec39ff61824
--- /dev/null
+++ b/VideoSticher/metadata/V1/StitchDetails.php
@@ -0,0 +1,45 @@
+internalAddGeneratedFile(
+ '
+í
+3google/cloud/video/stitcher/v1/stitch_details.protogoogle.cloud.video.stitcher.v1google/api/resource.protogoogle/protobuf/duration.protogoogle/protobuf/struct.proto"‡
+VodStitchDetail
+name ( I
+ad_stitch_details (2..google.cloud.video.stitcher.v1.AdStitchDetail:šêA–
+,videostitcher.googleapis.com/VodStitchDetailfprojects/{project}/locations/{location}/vodSessions/{vod_session}/vodStitchDetails/{vod_stitch_detail}"¥
+AdStitchDetail
+ad_break_id ( BàA
+ad_id ( BàA6
+ad_time_offset (2.google.protobuf.DurationBàA
+skip_reason ( BàAM
+media (29.google.cloud.video.stitcher.v1.AdStitchDetail.MediaEntryBàAD
+
+MediaEntry
+key ( %
+value (2.google.protobuf.Value:8B‚
+"com.google.cloud.video.stitcher.v1BStitchDetailsProtoPZFgoogle.golang.org/genproto/googleapis/cloud/video/stitcher/v1;stitcherbproto3'
+ , true);
+
+ static::$is_initialized = true;
+ }
+}
+
diff --git a/VideoSticher/metadata/V1/VideoStitcherService.php b/VideoSticher/metadata/V1/VideoStitcherService.php
new file mode 100644
index 00000000000..b7e7cf68bc8
--- /dev/null
+++ b/VideoSticher/metadata/V1/VideoStitcherService.php
@@ -0,0 +1,157 @@
+internalAddGeneratedFile(
+ '
+‘=
+;google/cloud/video/stitcher/v1/video_stitcher_service.protogoogle.cloud.video.stitcher.v1google/api/client.protogoogle/api/field_behavior.protogoogle/api/resource.proto3google/cloud/video/stitcher/v1/ad_tag_details.proto-google/cloud/video/stitcher/v1/cdn_keys.proto-google/cloud/video/stitcher/v1/sessions.proto+google/cloud/video/stitcher/v1/slates.proto3google/cloud/video/stitcher/v1/stitch_details.protogoogle/protobuf/duration.protogoogle/protobuf/empty.proto google/protobuf/field_mask.protogoogle/protobuf/timestamp.proto"©
+CreateCdnKeyRequest;
+parent ( B+àAúA%#videostitcher.googleapis.com/CdnKey<
+cdn_key (2&.google.cloud.video.stitcher.v1.CdnKeyBàA
+
+cdn_key_id ( BàA"š
+ListCdnKeysRequest;
+parent ( B+àAúA%#videostitcher.googleapis.com/CdnKey
+ page_size (
+
+page_token (
+filter (
+order_by ( "}
+ListCdnKeysResponse8
+cdn_keys (2&.google.cloud.video.stitcher.v1.CdnKey
+next_page_token (
+unreachable ( "M
+GetCdnKeyRequest9
+name ( B+àAúA%
+#videostitcher.googleapis.com/CdnKey"P
+DeleteCdnKeyRequest9
+name ( B+àAúA%
+#videostitcher.googleapis.com/CdnKey"‰
+UpdateCdnKeyRequest<
+cdn_key (2&.google.cloud.video.stitcher.v1.CdnKeyBàA4
+update_mask (2.google.protobuf.FieldMaskBàA"
+CreateVodSessionRequest?
+parent ( B/àAúA)\'videostitcher.googleapis.com/VodSessionD
+vod_session (2*.google.cloud.video.stitcher.v1.VodSessionBàA"U
+GetVodSessionRequest=
+name ( B/àAúA)
+\'videostitcher.googleapis.com/VodSession"Š
+ListVodStitchDetailsRequestD
+parent ( B4àAúA.,videostitcher.googleapis.com/VodStitchDetail
+ page_size (
+
+page_token ( "„
+ListVodStitchDetailsResponseK
+vod_stitch_details (2/.google.cloud.video.stitcher.v1.VodStitchDetail
+next_page_token ( "_
+GetVodStitchDetailRequestB
+name ( B4àAúA.
+,videostitcher.googleapis.com/VodStitchDetail"ˆ
+ListVodAdTagDetailsRequestC
+parent ( B3àAúA-+videostitcher.googleapis.com/VodAdTagDetail
+ page_size (
+
+page_token ( "‚
+ListVodAdTagDetailsResponseJ
+vod_ad_tag_details (2..google.cloud.video.stitcher.v1.VodAdTagDetail
+next_page_token ( "]
+GetVodAdTagDetailRequestA
+name ( B3àAúA-
++videostitcher.googleapis.com/VodAdTagDetail"Š
+ListLiveAdTagDetailsRequestD
+parent ( B4àAúA.,videostitcher.googleapis.com/LiveAdTagDetail
+ page_size (
+
+page_token ( "…
+ListLiveAdTagDetailsResponseL
+live_ad_tag_details (2/.google.cloud.video.stitcher.v1.LiveAdTagDetail
+next_page_token ( "_
+GetLiveAdTagDetailRequestB
+name ( B4àAúA.
+,videostitcher.googleapis.com/LiveAdTagDetail"¢
+CreateSlateRequest:
+parent ( B*àAúA$"videostitcher.googleapis.com/Slate
+slate_id ( BàA9
+slate (2%.google.cloud.video.stitcher.v1.SlateBàA"K
+GetSlateRequest8
+name ( B*àAúA$
+"videostitcher.googleapis.com/Slate"˜
+ListSlatesRequest:
+parent ( B*àAúA$"videostitcher.googleapis.com/Slate
+ page_size (
+
+page_token (
+filter (
+order_by ( "y
+ListSlatesResponse5
+slates (2%.google.cloud.video.stitcher.v1.Slate
+next_page_token (
+unreachable ( "…
+UpdateSlateRequest9
+slate (2%.google.cloud.video.stitcher.v1.SlateBàA4
+update_mask (2.google.protobuf.FieldMaskBàA"N
+DeleteSlateRequest8
+name ( B*àAúA$
+"videostitcher.googleapis.com/Slate"¤
+CreateLiveSessionRequest@
+parent ( B0àAúA*
+(videostitcher.googleapis.com/LiveSessionF
+live_session (2+.google.cloud.video.stitcher.v1.LiveSessionBàA"W
+GetLiveSessionRequest>
+name ( B0àAúA*
+(videostitcher.googleapis.com/LiveSession2ª
+VideoStitcherServiceÅ
+CreateCdnKey3.google.cloud.video.stitcher.v1.CreateCdnKeyRequest&.google.cloud.video.stitcher.v1.CdnKey"X‚Óä“6"+/v1/{parent=projects/*/locations/*}/cdnKeys:cdn_keyÚAparent,cdn_key,cdn_key_id´
+ListCdnKeys2.google.cloud.video.stitcher.v1.ListCdnKeysRequest3.google.cloud.video.stitcher.v1.ListCdnKeysResponse"<‚Óä“-+/v1/{parent=projects/*/locations/*}/cdnKeysÚAparent¡
+ GetCdnKey0.google.cloud.video.stitcher.v1.GetCdnKeyRequest&.google.cloud.video.stitcher.v1.CdnKey":‚Óä“-+/v1/{name=projects/*/locations/*/cdnKeys/*}ÚAname—
+DeleteCdnKey3.google.cloud.video.stitcher.v1.DeleteCdnKeyRequest.google.protobuf.Empty":‚Óä“-*+/v1/{name=projects/*/locations/*/cdnKeys/*}ÚAnameÇ
+UpdateCdnKey3.google.cloud.video.stitcher.v1.UpdateCdnKeyRequest&.google.cloud.video.stitcher.v1.CdnKey"Z‚Óä“>23/v1/{cdn_key.name=projects/*/locations/*/cdnKeys/*}:cdn_keyÚAcdn_key,update_maskÒ
+CreateVodSession7.google.cloud.video.stitcher.v1.CreateVodSessionRequest*.google.cloud.video.stitcher.v1.VodSession"Y‚Óä“>"//v1/{parent=projects/*/locations/*}/vodSessions:vod_sessionÚAparent,vod_session±
+
GetVodSession4.google.cloud.video.stitcher.v1.GetVodSessionRequest*.google.cloud.video.stitcher.v1.VodSession">‚Óä“1//v1/{name=projects/*/locations/*/vodSessions/*}ÚAnameæ
+ListVodStitchDetails;.google.cloud.video.stitcher.v1.ListVodStitchDetailsRequest<.google.cloud.video.stitcher.v1.ListVodStitchDetailsResponse"S‚Óä“DB/v1/{parent=projects/*/locations/*/vodSessions/*}/vodStitchDetailsÚAparentÓ
+GetVodStitchDetail9.google.cloud.video.stitcher.v1.GetVodStitchDetailRequest/.google.cloud.video.stitcher.v1.VodStitchDetail"Q‚Óä“DB/v1/{name=projects/*/locations/*/vodSessions/*/vodStitchDetails/*}ÚAnameâ
+ListVodAdTagDetails:.google.cloud.video.stitcher.v1.ListVodAdTagDetailsRequest;.google.cloud.video.stitcher.v1.ListVodAdTagDetailsResponse"R‚Óä“CA/v1/{parent=projects/*/locations/*/vodSessions/*}/vodAdTagDetailsÚAparentÏ
+GetVodAdTagDetail8.google.cloud.video.stitcher.v1.GetVodAdTagDetailRequest..google.cloud.video.stitcher.v1.VodAdTagDetail"P‚Óä“CA/v1/{name=projects/*/locations/*/vodSessions/*/vodAdTagDetails/*}ÚAnameç
+ListLiveAdTagDetails;.google.cloud.video.stitcher.v1.ListLiveAdTagDetailsRequest<.google.cloud.video.stitcher.v1.ListLiveAdTagDetailsResponse"T‚Óä“EC/v1/{parent=projects/*/locations/*/liveSessions/*}/liveAdTagDetailsÚAparentÔ
+GetLiveAdTagDetail9.google.cloud.video.stitcher.v1.GetLiveAdTagDetailRequest/.google.cloud.video.stitcher.v1.LiveAdTagDetail"R‚Óä“EC/v1/{name=projects/*/locations/*/liveSessions/*/liveAdTagDetails/*}ÚAname»
+CreateSlate2.google.cloud.video.stitcher.v1.CreateSlateRequest%.google.cloud.video.stitcher.v1.Slate"Q‚Óä“3"*/v1/{parent=projects/*/locations/*}/slates:slateÚAparent,slate,slate_id°
+
+ListSlates1.google.cloud.video.stitcher.v1.ListSlatesRequest2.google.cloud.video.stitcher.v1.ListSlatesResponse";‚Óä“,*/v1/{parent=projects/*/locations/*}/slatesÚAparent
+GetSlate/.google.cloud.video.stitcher.v1.GetSlateRequest%.google.cloud.video.stitcher.v1.Slate"9‚Óä“,*/v1/{name=projects/*/locations/*/slates/*}ÚAname½
+UpdateSlate2.google.cloud.video.stitcher.v1.UpdateSlateRequest%.google.cloud.video.stitcher.v1.Slate"S‚Óä“920/v1/{slate.name=projects/*/locations/*/slates/*}:slateÚAslate,update_mask”
+DeleteSlate2.google.cloud.video.stitcher.v1.DeleteSlateRequest.google.protobuf.Empty"9‚Óä“,**/v1/{name=projects/*/locations/*/slates/*}ÚAnameØ
+CreateLiveSession8.google.cloud.video.stitcher.v1.CreateLiveSessionRequest+.google.cloud.video.stitcher.v1.LiveSession"\\‚Óä“@"0/v1/{parent=projects/*/locations/*}/liveSessions:live_sessionÚAparent,live_sessionµ
+GetLiveSession5.google.cloud.video.stitcher.v1.GetLiveSessionRequest+.google.cloud.video.stitcher.v1.LiveSession"?‚Óä“20/v1/{name=projects/*/locations/*/liveSessions/*}ÚAnamePÊAvideostitcher.googleapis.comÒA.https://www.googleapis.com/auth/cloud-platformB‰
+"com.google.cloud.video.stitcher.v1BVideoStitcherServiceProtoPZFgoogle.golang.org/genproto/googleapis/cloud/video/stitcher/v1;stitcherbproto3'
+ , true);
+
+ static::$is_initialized = true;
+ }
+}
+
diff --git a/VideoSticher/owlbot.py b/VideoSticher/owlbot.py
new file mode 100644
index 00000000000..7fa5c3f7f1d
--- /dev/null
+++ b/VideoSticher/owlbot.py
@@ -0,0 +1,113 @@
+# Copyright 2022 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+"""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}/VideoStitcher").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,
+ copy_excludes=[
+ src / "**/[A-Z]*_*.php"
+ ]
+)
+
+
+# document and utilize apiEndpoint instead of serviceAddress
+s.replace(
+ "**/Gapic/*GapicClient.php",
+ r"'serviceAddress' =>",
+ r"'apiEndpoint' =>")
+s.replace(
+ "**/Gapic/*GapicClient.php",
+ r"@type string \$serviceAddress\n\s+\*\s+The address",
+ r"""@type string $serviceAddress
+ * **Deprecated**. This option will be removed in a future major release. Please
+ * utilize the `$apiEndpoint` option instead.
+ * @type string $apiEndpoint
+ * The address""")
+s.replace(
+ "**/Gapic/*GapicClient.php",
+ r"\$transportConfig, and any \$serviceAddress",
+ r"$transportConfig, and any `$apiEndpoint`")
+
+# remove class_alias code
+s.replace(
+ "src/V*/**/*.php",
+ r"^// Adding a class alias for backwards compatibility with the previous class name.$"
+ + "\n"
+ + r"^class_alias\(.*\);$"
+ + "\n",
+ '')
+
+### [START] protoc backwards compatibility fixes
+
+# roll back to private properties.
+s.replace(
+ "src/**/V*/**/*.php",
+ r"Generated from protobuf field ([^\n]{0,})\n\s{5}\*/\n\s{4}protected \$",
+ r"""Generated from protobuf field \1
+ */
+ private $""")
+
+# prevent proto messages from being marked final
+s.replace(
+ "src/**/V*/**/*.php",
+ r"final class",
+ r"class")
+
+# Replace "Unwrapped" with "Value" for method names.
+s.replace(
+ "src/**/V*/**/*.php",
+ r"public function ([s|g]\w{3,})Unwrapped",
+ r"public function \1Value"
+)
+
+### [END] protoc backwards compatibility fixes
+
+# fix relative cloud.google.com links
+s.replace(
+ "src/**/V*/**/*.php",
+ r"(.{0,})\]\((/.{0,})\)",
+ r"\1](https://cloud.google.com\2)"
+)
+
+# format generated clients
+subprocess.run([
+ 'npm',
+ 'exec',
+ '--yes',
+ '--package=@prettier/plugin-php@^0.16',
+ '--',
+ 'prettier',
+ '**/Gapic/*',
+ '--write',
+ '--parser=php',
+ '--single-quote',
+ '--print-width=80'])
diff --git a/VideoSticher/phpunit-snippets.xml.dist b/VideoSticher/phpunit-snippets.xml.dist
new file mode 100644
index 00000000000..b92fd83e3c1
--- /dev/null
+++ b/VideoSticher/phpunit-snippets.xml.dist
@@ -0,0 +1,19 @@
+
+
+
+
+ tests/Snippet
+
+
+
+
+ src
+
+ src/V[!a-zA-Z]*
+
+
+
+
diff --git a/VideoSticher/phpunit-system.xml.dist b/VideoSticher/phpunit-system.xml.dist
new file mode 100644
index 00000000000..6ad255f35f5
--- /dev/null
+++ b/VideoSticher/phpunit-system.xml.dist
@@ -0,0 +1,16 @@
+
+
+
+
+ tests/System
+
+
+
+
+ src
+
+ src/V[!a-zA-Z]*
+
+
+
+
diff --git a/VideoSticher/phpunit.xml.dist b/VideoSticher/phpunit.xml.dist
new file mode 100644
index 00000000000..1c2b8f6b56d
--- /dev/null
+++ b/VideoSticher/phpunit.xml.dist
@@ -0,0 +1,16 @@
+
+
+
+
+ tests/Unit
+
+
+
+
+ src
+
+ src/V[!a-zA-Z]*
+
+
+
+
diff --git a/VideoSticher/src/V1/AdRequest.php b/VideoSticher/src/V1/AdRequest.php
new file mode 100644
index 00000000000..847fe5395ed
--- /dev/null
+++ b/VideoSticher/src/V1/AdRequest.php
@@ -0,0 +1,155 @@
+google.cloud.video.stitcher.v1.AdRequest
+ */
+class AdRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The ad tag URI processed with integrated macros.
+ *
+ * Generated from protobuf field string uri = 1;
+ */
+ private $uri = '';
+ /**
+ * The request metadata used to make the ad request.
+ *
+ * Generated from protobuf field .google.cloud.video.stitcher.v1.RequestMetadata request_metadata = 2;
+ */
+ private $request_metadata = null;
+ /**
+ * The response metadata received from the ad request.
+ *
+ * Generated from protobuf field .google.cloud.video.stitcher.v1.ResponseMetadata response_metadata = 3;
+ */
+ private $response_metadata = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $uri
+ * The ad tag URI processed with integrated macros.
+ * @type \Google\Cloud\Video\Stitcher\V1\RequestMetadata $request_metadata
+ * The request metadata used to make the ad request.
+ * @type \Google\Cloud\Video\Stitcher\V1\ResponseMetadata $response_metadata
+ * The response metadata received from the ad request.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Video\Stitcher\V1\AdTagDetails::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The ad tag URI processed with integrated macros.
+ *
+ * Generated from protobuf field string uri = 1;
+ * @return string
+ */
+ public function getUri()
+ {
+ return $this->uri;
+ }
+
+ /**
+ * The ad tag URI processed with integrated macros.
+ *
+ * Generated from protobuf field string uri = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setUri($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->uri = $var;
+
+ return $this;
+ }
+
+ /**
+ * The request metadata used to make the ad request.
+ *
+ * Generated from protobuf field .google.cloud.video.stitcher.v1.RequestMetadata request_metadata = 2;
+ * @return \Google\Cloud\Video\Stitcher\V1\RequestMetadata|null
+ */
+ public function getRequestMetadata()
+ {
+ return $this->request_metadata;
+ }
+
+ public function hasRequestMetadata()
+ {
+ return isset($this->request_metadata);
+ }
+
+ public function clearRequestMetadata()
+ {
+ unset($this->request_metadata);
+ }
+
+ /**
+ * The request metadata used to make the ad request.
+ *
+ * Generated from protobuf field .google.cloud.video.stitcher.v1.RequestMetadata request_metadata = 2;
+ * @param \Google\Cloud\Video\Stitcher\V1\RequestMetadata $var
+ * @return $this
+ */
+ public function setRequestMetadata($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Video\Stitcher\V1\RequestMetadata::class);
+ $this->request_metadata = $var;
+
+ return $this;
+ }
+
+ /**
+ * The response metadata received from the ad request.
+ *
+ * Generated from protobuf field .google.cloud.video.stitcher.v1.ResponseMetadata response_metadata = 3;
+ * @return \Google\Cloud\Video\Stitcher\V1\ResponseMetadata|null
+ */
+ public function getResponseMetadata()
+ {
+ return $this->response_metadata;
+ }
+
+ public function hasResponseMetadata()
+ {
+ return isset($this->response_metadata);
+ }
+
+ public function clearResponseMetadata()
+ {
+ unset($this->response_metadata);
+ }
+
+ /**
+ * The response metadata received from the ad request.
+ *
+ * Generated from protobuf field .google.cloud.video.stitcher.v1.ResponseMetadata response_metadata = 3;
+ * @param \Google\Cloud\Video\Stitcher\V1\ResponseMetadata $var
+ * @return $this
+ */
+ public function setResponseMetadata($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Video\Stitcher\V1\ResponseMetadata::class);
+ $this->response_metadata = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/VideoSticher/src/V1/AdStitchDetail.php b/VideoSticher/src/V1/AdStitchDetail.php
new file mode 100644
index 00000000000..9761089cea6
--- /dev/null
+++ b/VideoSticher/src/V1/AdStitchDetail.php
@@ -0,0 +1,213 @@
+google.cloud.video.stitcher.v1.AdStitchDetail
+ */
+class AdStitchDetail extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The ad break ID of the processed ad.
+ *
+ * Generated from protobuf field string ad_break_id = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ private $ad_break_id = '';
+ /**
+ * Required. The ad ID of the processed ad.
+ *
+ * Generated from protobuf field string ad_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ private $ad_id = '';
+ /**
+ * Required. The time offset of the processed ad.
+ *
+ * Generated from protobuf field .google.protobuf.Duration ad_time_offset = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ private $ad_time_offset = null;
+ /**
+ * Optional. Indicates the reason why the ad has been skipped.
+ *
+ * Generated from protobuf field string skip_reason = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ private $skip_reason = '';
+ /**
+ * Optional. The metadata of the chosen media file for the ad.
+ *
+ * Generated from protobuf field map media = 5 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ private $media;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $ad_break_id
+ * Required. The ad break ID of the processed ad.
+ * @type string $ad_id
+ * Required. The ad ID of the processed ad.
+ * @type \Google\Protobuf\Duration $ad_time_offset
+ * Required. The time offset of the processed ad.
+ * @type string $skip_reason
+ * Optional. Indicates the reason why the ad has been skipped.
+ * @type array|\Google\Protobuf\Internal\MapField $media
+ * Optional. The metadata of the chosen media file for the ad.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Video\Stitcher\V1\StitchDetails::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The ad break ID of the processed ad.
+ *
+ * Generated from protobuf field string ad_break_id = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getAdBreakId()
+ {
+ return $this->ad_break_id;
+ }
+
+ /**
+ * Required. The ad break ID of the processed ad.
+ *
+ * Generated from protobuf field string ad_break_id = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setAdBreakId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->ad_break_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The ad ID of the processed ad.
+ *
+ * Generated from protobuf field string ad_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getAdId()
+ {
+ return $this->ad_id;
+ }
+
+ /**
+ * Required. The ad ID of the processed ad.
+ *
+ * Generated from protobuf field string ad_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setAdId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->ad_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The time offset of the processed ad.
+ *
+ * Generated from protobuf field .google.protobuf.Duration ad_time_offset = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Protobuf\Duration|null
+ */
+ public function getAdTimeOffset()
+ {
+ return $this->ad_time_offset;
+ }
+
+ public function hasAdTimeOffset()
+ {
+ return isset($this->ad_time_offset);
+ }
+
+ public function clearAdTimeOffset()
+ {
+ unset($this->ad_time_offset);
+ }
+
+ /**
+ * Required. The time offset of the processed ad.
+ *
+ * Generated from protobuf field .google.protobuf.Duration ad_time_offset = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Protobuf\Duration $var
+ * @return $this
+ */
+ public function setAdTimeOffset($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class);
+ $this->ad_time_offset = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Indicates the reason why the ad has been skipped.
+ *
+ * Generated from protobuf field string skip_reason = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getSkipReason()
+ {
+ return $this->skip_reason;
+ }
+
+ /**
+ * Optional. Indicates the reason why the ad has been skipped.
+ *
+ * Generated from protobuf field string skip_reason = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setSkipReason($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->skip_reason = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The metadata of the chosen media file for the ad.
+ *
+ * Generated from protobuf field map media = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getMedia()
+ {
+ return $this->media;
+ }
+
+ /**
+ * Optional. The metadata of the chosen media file for the ad.
+ *
+ * Generated from protobuf field map media = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setMedia($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Value::class);
+ $this->media = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/VideoSticher/src/V1/AdTag.php b/VideoSticher/src/V1/AdTag.php
new file mode 100644
index 00000000000..413ee1ce3e7
--- /dev/null
+++ b/VideoSticher/src/V1/AdTag.php
@@ -0,0 +1,67 @@
+google.cloud.video.stitcher.v1.AdTag
+ */
+class AdTag extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Ad tag URI template.
+ *
+ * Generated from protobuf field string uri = 1;
+ */
+ private $uri = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $uri
+ * Ad tag URI template.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Video\Stitcher\V1\Sessions::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Ad tag URI template.
+ *
+ * Generated from protobuf field string uri = 1;
+ * @return string
+ */
+ public function getUri()
+ {
+ return $this->uri;
+ }
+
+ /**
+ * Ad tag URI template.
+ *
+ * Generated from protobuf field string uri = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setUri($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->uri = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/VideoSticher/src/V1/AkamaiCdnKey.php b/VideoSticher/src/V1/AkamaiCdnKey.php
new file mode 100644
index 00000000000..b115199aeaf
--- /dev/null
+++ b/VideoSticher/src/V1/AkamaiCdnKey.php
@@ -0,0 +1,67 @@
+google.cloud.video.stitcher.v1.AkamaiCdnKey
+ */
+class AkamaiCdnKey extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Input only. Token key for the Akamai CDN edge configuration.
+ *
+ * Generated from protobuf field bytes token_key = 1 [(.google.api.field_behavior) = INPUT_ONLY];
+ */
+ private $token_key = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $token_key
+ * Input only. Token key for the Akamai CDN edge configuration.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Video\Stitcher\V1\CdnKeys::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Input only. Token key for the Akamai CDN edge configuration.
+ *
+ * Generated from protobuf field bytes token_key = 1 [(.google.api.field_behavior) = INPUT_ONLY];
+ * @return string
+ */
+ public function getTokenKey()
+ {
+ return $this->token_key;
+ }
+
+ /**
+ * Input only. Token key for the Akamai CDN edge configuration.
+ *
+ * Generated from protobuf field bytes token_key = 1 [(.google.api.field_behavior) = INPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setTokenKey($var)
+ {
+ GPBUtil::checkString($var, False);
+ $this->token_key = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/VideoSticher/src/V1/CdnKey.php b/VideoSticher/src/V1/CdnKey.php
new file mode 100644
index 00000000000..3594f7d8f02
--- /dev/null
+++ b/VideoSticher/src/V1/CdnKey.php
@@ -0,0 +1,186 @@
+google.cloud.video.stitcher.v1.CdnKey
+ */
+class CdnKey extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The resource name of the CDN key, in the form of
+ * `projects/{project}/locations/{location}/cdnKeys/{id}`.
+ * The name is ignored when creating a CDN key.
+ *
+ * Generated from protobuf field string name = 1;
+ */
+ private $name = '';
+ /**
+ * The hostname this key applies to.
+ *
+ * Generated from protobuf field string hostname = 4;
+ */
+ private $hostname = '';
+ protected $cdn_key_config;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Video\Stitcher\V1\GoogleCdnKey $google_cdn_key
+ * The configuration for a Google Cloud CDN key.
+ * @type \Google\Cloud\Video\Stitcher\V1\AkamaiCdnKey $akamai_cdn_key
+ * The configuration for an Akamai CDN key.
+ * @type string $name
+ * The resource name of the CDN key, in the form of
+ * `projects/{project}/locations/{location}/cdnKeys/{id}`.
+ * The name is ignored when creating a CDN key.
+ * @type string $hostname
+ * The hostname this key applies to.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Video\Stitcher\V1\CdnKeys::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The configuration for a Google Cloud CDN key.
+ *
+ * Generated from protobuf field .google.cloud.video.stitcher.v1.GoogleCdnKey google_cdn_key = 5;
+ * @return \Google\Cloud\Video\Stitcher\V1\GoogleCdnKey|null
+ */
+ public function getGoogleCdnKey()
+ {
+ return $this->readOneof(5);
+ }
+
+ public function hasGoogleCdnKey()
+ {
+ return $this->hasOneof(5);
+ }
+
+ /**
+ * The configuration for a Google Cloud CDN key.
+ *
+ * Generated from protobuf field .google.cloud.video.stitcher.v1.GoogleCdnKey google_cdn_key = 5;
+ * @param \Google\Cloud\Video\Stitcher\V1\GoogleCdnKey $var
+ * @return $this
+ */
+ public function setGoogleCdnKey($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Video\Stitcher\V1\GoogleCdnKey::class);
+ $this->writeOneof(5, $var);
+
+ return $this;
+ }
+
+ /**
+ * The configuration for an Akamai CDN key.
+ *
+ * Generated from protobuf field .google.cloud.video.stitcher.v1.AkamaiCdnKey akamai_cdn_key = 6;
+ * @return \Google\Cloud\Video\Stitcher\V1\AkamaiCdnKey|null
+ */
+ public function getAkamaiCdnKey()
+ {
+ return $this->readOneof(6);
+ }
+
+ public function hasAkamaiCdnKey()
+ {
+ return $this->hasOneof(6);
+ }
+
+ /**
+ * The configuration for an Akamai CDN key.
+ *
+ * Generated from protobuf field .google.cloud.video.stitcher.v1.AkamaiCdnKey akamai_cdn_key = 6;
+ * @param \Google\Cloud\Video\Stitcher\V1\AkamaiCdnKey $var
+ * @return $this
+ */
+ public function setAkamaiCdnKey($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Video\Stitcher\V1\AkamaiCdnKey::class);
+ $this->writeOneof(6, $var);
+
+ return $this;
+ }
+
+ /**
+ * The resource name of the CDN key, in the form of
+ * `projects/{project}/locations/{location}/cdnKeys/{id}`.
+ * The name is ignored when creating a CDN key.
+ *
+ * Generated from protobuf field string name = 1;
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * The resource name of the CDN key, in the form of
+ * `projects/{project}/locations/{location}/cdnKeys/{id}`.
+ * The name is ignored when creating a CDN key.
+ *
+ * Generated from protobuf field string name = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * The hostname this key applies to.
+ *
+ * Generated from protobuf field string hostname = 4;
+ * @return string
+ */
+ public function getHostname()
+ {
+ return $this->hostname;
+ }
+
+ /**
+ * The hostname this key applies to.
+ *
+ * Generated from protobuf field string hostname = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setHostname($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->hostname = $var;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getCdnKeyConfig()
+ {
+ return $this->whichOneof("cdn_key_config");
+ }
+
+}
+
diff --git a/VideoSticher/src/V1/Companion.php b/VideoSticher/src/V1/Companion.php
new file mode 100644
index 00000000000..a7b21361f4f
--- /dev/null
+++ b/VideoSticher/src/V1/Companion.php
@@ -0,0 +1,455 @@
+google.cloud.video.stitcher.v1.Companion
+ */
+class Companion extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The API necessary to communicate with the creative if available.
+ *
+ * Generated from protobuf field string api_framework = 1;
+ */
+ private $api_framework = '';
+ /**
+ * The pixel height of the placement slot for the intended creative.
+ *
+ * Generated from protobuf field int32 height_px = 2;
+ */
+ private $height_px = 0;
+ /**
+ * The pixel width of the placement slot for the intended creative.
+ *
+ * Generated from protobuf field int32 width_px = 3;
+ */
+ private $width_px = 0;
+ /**
+ * The pixel height of the creative.
+ *
+ * Generated from protobuf field int32 asset_height_px = 4;
+ */
+ private $asset_height_px = 0;
+ /**
+ * The maximum pixel height of the creative in its expanded state.
+ *
+ * Generated from protobuf field int32 expanded_height_px = 5;
+ */
+ private $expanded_height_px = 0;
+ /**
+ * The pixel width of the creative.
+ *
+ * Generated from protobuf field int32 asset_width_px = 6;
+ */
+ private $asset_width_px = 0;
+ /**
+ * The maximum pixel width of the creative in its expanded state.
+ *
+ * Generated from protobuf field int32 expanded_width_px = 7;
+ */
+ private $expanded_width_px = 0;
+ /**
+ * The ID used to identify the desired placement on a publisher's page.
+ * Values to be used should be discussed between publishers and
+ * advertisers.
+ *
+ * Generated from protobuf field string ad_slot_id = 8;
+ */
+ private $ad_slot_id = '';
+ /**
+ * The list of tracking events for the companion.
+ *
+ * Generated from protobuf field repeated .google.cloud.video.stitcher.v1.Event events = 9;
+ */
+ private $events;
+ protected $ad_resource;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Video\Stitcher\V1\IframeAdResource $iframe_ad_resource
+ * The IFrame ad resource associated with the companion ad.
+ * @type \Google\Cloud\Video\Stitcher\V1\StaticAdResource $static_ad_resource
+ * The static ad resource associated with the companion ad.
+ * @type \Google\Cloud\Video\Stitcher\V1\HtmlAdResource $html_ad_resource
+ * The HTML ad resource associated with the companion ad.
+ * @type string $api_framework
+ * The API necessary to communicate with the creative if available.
+ * @type int $height_px
+ * The pixel height of the placement slot for the intended creative.
+ * @type int $width_px
+ * The pixel width of the placement slot for the intended creative.
+ * @type int $asset_height_px
+ * The pixel height of the creative.
+ * @type int $expanded_height_px
+ * The maximum pixel height of the creative in its expanded state.
+ * @type int $asset_width_px
+ * The pixel width of the creative.
+ * @type int $expanded_width_px
+ * The maximum pixel width of the creative in its expanded state.
+ * @type string $ad_slot_id
+ * The ID used to identify the desired placement on a publisher's page.
+ * Values to be used should be discussed between publishers and
+ * advertisers.
+ * @type \Google\Cloud\Video\Stitcher\V1\Event[]|\Google\Protobuf\Internal\RepeatedField $events
+ * The list of tracking events for the companion.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Video\Stitcher\V1\Companions::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The IFrame ad resource associated with the companion ad.
+ *
+ * Generated from protobuf field .google.cloud.video.stitcher.v1.IframeAdResource iframe_ad_resource = 10;
+ * @return \Google\Cloud\Video\Stitcher\V1\IframeAdResource|null
+ */
+ public function getIframeAdResource()
+ {
+ return $this->readOneof(10);
+ }
+
+ public function hasIframeAdResource()
+ {
+ return $this->hasOneof(10);
+ }
+
+ /**
+ * The IFrame ad resource associated with the companion ad.
+ *
+ * Generated from protobuf field .google.cloud.video.stitcher.v1.IframeAdResource iframe_ad_resource = 10;
+ * @param \Google\Cloud\Video\Stitcher\V1\IframeAdResource $var
+ * @return $this
+ */
+ public function setIframeAdResource($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Video\Stitcher\V1\IframeAdResource::class);
+ $this->writeOneof(10, $var);
+
+ return $this;
+ }
+
+ /**
+ * The static ad resource associated with the companion ad.
+ *
+ * Generated from protobuf field .google.cloud.video.stitcher.v1.StaticAdResource static_ad_resource = 11;
+ * @return \Google\Cloud\Video\Stitcher\V1\StaticAdResource|null
+ */
+ public function getStaticAdResource()
+ {
+ return $this->readOneof(11);
+ }
+
+ public function hasStaticAdResource()
+ {
+ return $this->hasOneof(11);
+ }
+
+ /**
+ * The static ad resource associated with the companion ad.
+ *
+ * Generated from protobuf field .google.cloud.video.stitcher.v1.StaticAdResource static_ad_resource = 11;
+ * @param \Google\Cloud\Video\Stitcher\V1\StaticAdResource $var
+ * @return $this
+ */
+ public function setStaticAdResource($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Video\Stitcher\V1\StaticAdResource::class);
+ $this->writeOneof(11, $var);
+
+ return $this;
+ }
+
+ /**
+ * The HTML ad resource associated with the companion ad.
+ *
+ * Generated from protobuf field .google.cloud.video.stitcher.v1.HtmlAdResource html_ad_resource = 12;
+ * @return \Google\Cloud\Video\Stitcher\V1\HtmlAdResource|null
+ */
+ public function getHtmlAdResource()
+ {
+ return $this->readOneof(12);
+ }
+
+ public function hasHtmlAdResource()
+ {
+ return $this->hasOneof(12);
+ }
+
+ /**
+ * The HTML ad resource associated with the companion ad.
+ *
+ * Generated from protobuf field .google.cloud.video.stitcher.v1.HtmlAdResource html_ad_resource = 12;
+ * @param \Google\Cloud\Video\Stitcher\V1\HtmlAdResource $var
+ * @return $this
+ */
+ public function setHtmlAdResource($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Video\Stitcher\V1\HtmlAdResource::class);
+ $this->writeOneof(12, $var);
+
+ return $this;
+ }
+
+ /**
+ * The API necessary to communicate with the creative if available.
+ *
+ * Generated from protobuf field string api_framework = 1;
+ * @return string
+ */
+ public function getApiFramework()
+ {
+ return $this->api_framework;
+ }
+
+ /**
+ * The API necessary to communicate with the creative if available.
+ *
+ * Generated from protobuf field string api_framework = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setApiFramework($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->api_framework = $var;
+
+ return $this;
+ }
+
+ /**
+ * The pixel height of the placement slot for the intended creative.
+ *
+ * Generated from protobuf field int32 height_px = 2;
+ * @return int
+ */
+ public function getHeightPx()
+ {
+ return $this->height_px;
+ }
+
+ /**
+ * The pixel height of the placement slot for the intended creative.
+ *
+ * Generated from protobuf field int32 height_px = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setHeightPx($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->height_px = $var;
+
+ return $this;
+ }
+
+ /**
+ * The pixel width of the placement slot for the intended creative.
+ *
+ * Generated from protobuf field int32 width_px = 3;
+ * @return int
+ */
+ public function getWidthPx()
+ {
+ return $this->width_px;
+ }
+
+ /**
+ * The pixel width of the placement slot for the intended creative.
+ *
+ * Generated from protobuf field int32 width_px = 3;
+ * @param int $var
+ * @return $this
+ */
+ public function setWidthPx($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->width_px = $var;
+
+ return $this;
+ }
+
+ /**
+ * The pixel height of the creative.
+ *
+ * Generated from protobuf field int32 asset_height_px = 4;
+ * @return int
+ */
+ public function getAssetHeightPx()
+ {
+ return $this->asset_height_px;
+ }
+
+ /**
+ * The pixel height of the creative.
+ *
+ * Generated from protobuf field int32 asset_height_px = 4;
+ * @param int $var
+ * @return $this
+ */
+ public function setAssetHeightPx($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->asset_height_px = $var;
+
+ return $this;
+ }
+
+ /**
+ * The maximum pixel height of the creative in its expanded state.
+ *
+ * Generated from protobuf field int32 expanded_height_px = 5;
+ * @return int
+ */
+ public function getExpandedHeightPx()
+ {
+ return $this->expanded_height_px;
+ }
+
+ /**
+ * The maximum pixel height of the creative in its expanded state.
+ *
+ * Generated from protobuf field int32 expanded_height_px = 5;
+ * @param int $var
+ * @return $this
+ */
+ public function setExpandedHeightPx($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->expanded_height_px = $var;
+
+ return $this;
+ }
+
+ /**
+ * The pixel width of the creative.
+ *
+ * Generated from protobuf field int32 asset_width_px = 6;
+ * @return int
+ */
+ public function getAssetWidthPx()
+ {
+ return $this->asset_width_px;
+ }
+
+ /**
+ * The pixel width of the creative.
+ *
+ * Generated from protobuf field int32 asset_width_px = 6;
+ * @param int $var
+ * @return $this
+ */
+ public function setAssetWidthPx($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->asset_width_px = $var;
+
+ return $this;
+ }
+
+ /**
+ * The maximum pixel width of the creative in its expanded state.
+ *
+ * Generated from protobuf field int32 expanded_width_px = 7;
+ * @return int
+ */
+ public function getExpandedWidthPx()
+ {
+ return $this->expanded_width_px;
+ }
+
+ /**
+ * The maximum pixel width of the creative in its expanded state.
+ *
+ * Generated from protobuf field int32 expanded_width_px = 7;
+ * @param int $var
+ * @return $this
+ */
+ public function setExpandedWidthPx($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->expanded_width_px = $var;
+
+ return $this;
+ }
+
+ /**
+ * The ID used to identify the desired placement on a publisher's page.
+ * Values to be used should be discussed between publishers and
+ * advertisers.
+ *
+ * Generated from protobuf field string ad_slot_id = 8;
+ * @return string
+ */
+ public function getAdSlotId()
+ {
+ return $this->ad_slot_id;
+ }
+
+ /**
+ * The ID used to identify the desired placement on a publisher's page.
+ * Values to be used should be discussed between publishers and
+ * advertisers.
+ *
+ * Generated from protobuf field string ad_slot_id = 8;
+ * @param string $var
+ * @return $this
+ */
+ public function setAdSlotId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->ad_slot_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * The list of tracking events for the companion.
+ *
+ * Generated from protobuf field repeated .google.cloud.video.stitcher.v1.Event events = 9;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getEvents()
+ {
+ return $this->events;
+ }
+
+ /**
+ * The list of tracking events for the companion.
+ *
+ * Generated from protobuf field repeated .google.cloud.video.stitcher.v1.Event events = 9;
+ * @param \Google\Cloud\Video\Stitcher\V1\Event[]|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setEvents($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Video\Stitcher\V1\Event::class);
+ $this->events = $arr;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getAdResource()
+ {
+ return $this->whichOneof("ad_resource");
+ }
+
+}
+
diff --git a/VideoSticher/src/V1/CompanionAds.php b/VideoSticher/src/V1/CompanionAds.php
new file mode 100644
index 00000000000..4bfa4aea3df
--- /dev/null
+++ b/VideoSticher/src/V1/CompanionAds.php
@@ -0,0 +1,101 @@
+google.cloud.video.stitcher.v1.CompanionAds
+ */
+class CompanionAds extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Indicates how many of the companions should be displayed with the ad.
+ *
+ * Generated from protobuf field .google.cloud.video.stitcher.v1.CompanionAds.DisplayRequirement display_requirement = 1;
+ */
+ private $display_requirement = 0;
+ /**
+ * List of companion ads.
+ *
+ * Generated from protobuf field repeated .google.cloud.video.stitcher.v1.Companion companions = 2;
+ */
+ private $companions;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $display_requirement
+ * Indicates how many of the companions should be displayed with the ad.
+ * @type \Google\Cloud\Video\Stitcher\V1\Companion[]|\Google\Protobuf\Internal\RepeatedField $companions
+ * List of companion ads.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Video\Stitcher\V1\Companions::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Indicates how many of the companions should be displayed with the ad.
+ *
+ * Generated from protobuf field .google.cloud.video.stitcher.v1.CompanionAds.DisplayRequirement display_requirement = 1;
+ * @return int
+ */
+ public function getDisplayRequirement()
+ {
+ return $this->display_requirement;
+ }
+
+ /**
+ * Indicates how many of the companions should be displayed with the ad.
+ *
+ * Generated from protobuf field .google.cloud.video.stitcher.v1.CompanionAds.DisplayRequirement display_requirement = 1;
+ * @param int $var
+ * @return $this
+ */
+ public function setDisplayRequirement($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Video\Stitcher\V1\CompanionAds\DisplayRequirement::class);
+ $this->display_requirement = $var;
+
+ return $this;
+ }
+
+ /**
+ * List of companion ads.
+ *
+ * Generated from protobuf field repeated .google.cloud.video.stitcher.v1.Companion companions = 2;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getCompanions()
+ {
+ return $this->companions;
+ }
+
+ /**
+ * List of companion ads.
+ *
+ * Generated from protobuf field repeated .google.cloud.video.stitcher.v1.Companion companions = 2;
+ * @param \Google\Cloud\Video\Stitcher\V1\Companion[]|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setCompanions($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Video\Stitcher\V1\Companion::class);
+ $this->companions = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/VideoSticher/src/V1/CompanionAds/DisplayRequirement.php b/VideoSticher/src/V1/CompanionAds/DisplayRequirement.php
new file mode 100644
index 00000000000..70d2eed382e
--- /dev/null
+++ b/VideoSticher/src/V1/CompanionAds/DisplayRequirement.php
@@ -0,0 +1,69 @@
+google.cloud.video.stitcher.v1.CompanionAds.DisplayRequirement
+ */
+class DisplayRequirement
+{
+ /**
+ * Required companions are not specified. The default is ALL.
+ *
+ * Generated from protobuf enum DISPLAY_REQUIREMENT_UNSPECIFIED = 0;
+ */
+ const DISPLAY_REQUIREMENT_UNSPECIFIED = 0;
+ /**
+ * All companions are required to be displayed.
+ *
+ * Generated from protobuf enum ALL = 1;
+ */
+ const ALL = 1;
+ /**
+ * At least one of companions needs to be displayed.
+ *
+ * Generated from protobuf enum ANY = 2;
+ */
+ const ANY = 2;
+ /**
+ * All companions are optional for display.
+ *
+ * Generated from protobuf enum NONE = 3;
+ */
+ const NONE = 3;
+
+ private static $valueToName = [
+ self::DISPLAY_REQUIREMENT_UNSPECIFIED => 'DISPLAY_REQUIREMENT_UNSPECIFIED',
+ self::ALL => 'ALL',
+ self::ANY => 'ANY',
+ self::NONE => 'NONE',
+ ];
+
+ 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/VideoSticher/src/V1/CreateCdnKeyRequest.php b/VideoSticher/src/V1/CreateCdnKeyRequest.php
new file mode 100644
index 00000000000..31df34e5a78
--- /dev/null
+++ b/VideoSticher/src/V1/CreateCdnKeyRequest.php
@@ -0,0 +1,165 @@
+google.cloud.video.stitcher.v1.CreateCdnKeyRequest
+ */
+class CreateCdnKeyRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The project in which the CDN key should be created, in the form of
+ * `projects/{project_number}/locations/{location}`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ private $parent = '';
+ /**
+ * Required. The CDN key resource to create.
+ *
+ * Generated from protobuf field .google.cloud.video.stitcher.v1.CdnKey cdn_key = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ private $cdn_key = null;
+ /**
+ * Required. The ID to use for the CDN key, which will become the final component of
+ * the CDN key's resource name.
+ * This value should conform to RFC-1034, which restricts to
+ * lower-case letters, numbers, and hyphen, with the first character a
+ * letter, the last a letter or a number, and a 63 character maximum.
+ *
+ * Generated from protobuf field string cdn_key_id = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ private $cdn_key_id = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The project in which the CDN key should be created, in the form of
+ * `projects/{project_number}/locations/{location}`.
+ * @type \Google\Cloud\Video\Stitcher\V1\CdnKey $cdn_key
+ * Required. The CDN key resource to create.
+ * @type string $cdn_key_id
+ * Required. The ID to use for the CDN key, which will become the final component of
+ * the CDN key's resource name.
+ * This value should conform to RFC-1034, which restricts to
+ * lower-case letters, numbers, and hyphen, with the first character a
+ * letter, the last a letter or a number, and a 63 character maximum.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Video\Stitcher\V1\VideoStitcherService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The project in which the CDN key should be created, in the form of
+ * `projects/{project_number}/locations/{location}`.
+ *
+ * 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. The project in which the CDN key should be created, in the form of
+ * `projects/{project_number}/locations/{location}`.
+ *
+ * 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 CDN key resource to create.
+ *
+ * Generated from protobuf field .google.cloud.video.stitcher.v1.CdnKey cdn_key = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\Video\Stitcher\V1\CdnKey|null
+ */
+ public function getCdnKey()
+ {
+ return $this->cdn_key;
+ }
+
+ public function hasCdnKey()
+ {
+ return isset($this->cdn_key);
+ }
+
+ public function clearCdnKey()
+ {
+ unset($this->cdn_key);
+ }
+
+ /**
+ * Required. The CDN key resource to create.
+ *
+ * Generated from protobuf field .google.cloud.video.stitcher.v1.CdnKey cdn_key = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\Video\Stitcher\V1\CdnKey $var
+ * @return $this
+ */
+ public function setCdnKey($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Video\Stitcher\V1\CdnKey::class);
+ $this->cdn_key = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The ID to use for the CDN key, which will become the final component of
+ * the CDN key's resource name.
+ * This value should conform to RFC-1034, which restricts to
+ * lower-case letters, numbers, and hyphen, with the first character a
+ * letter, the last a letter or a number, and a 63 character maximum.
+ *
+ * Generated from protobuf field string cdn_key_id = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getCdnKeyId()
+ {
+ return $this->cdn_key_id;
+ }
+
+ /**
+ * Required. The ID to use for the CDN key, which will become the final component of
+ * the CDN key's resource name.
+ * This value should conform to RFC-1034, which restricts to
+ * lower-case letters, numbers, and hyphen, with the first character a
+ * letter, the last a letter or a number, and a 63 character maximum.
+ *
+ * Generated from protobuf field string cdn_key_id = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setCdnKeyId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->cdn_key_id = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/VideoSticher/src/V1/CreateLiveSessionRequest.php b/VideoSticher/src/V1/CreateLiveSessionRequest.php
new file mode 100644
index 00000000000..597ff23b03c
--- /dev/null
+++ b/VideoSticher/src/V1/CreateLiveSessionRequest.php
@@ -0,0 +1,143 @@
+google.cloud.video.stitcher.v1.CreateLiveSessionRequest
+ */
+class CreateLiveSessionRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The project and location in which the live session should be created,
+ * in the form of `projects/{project_number}/locations/{location}`.
+ * Valid locations:
+ * * `-` (Video Stitcher API will pick a location that is closest to the
+ * caller.)
+ * * `us-east1`
+ * * `us-west1`
+ * * `us-central1`
+ * * `europe-west1`
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ private $parent = '';
+ /**
+ * Required. Parameters for creating a live session.
+ *
+ * Generated from protobuf field .google.cloud.video.stitcher.v1.LiveSession live_session = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ private $live_session = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The project and location in which the live session should be created,
+ * in the form of `projects/{project_number}/locations/{location}`.
+ * Valid locations:
+ * * `-` (Video Stitcher API will pick a location that is closest to the
+ * caller.)
+ * * `us-east1`
+ * * `us-west1`
+ * * `us-central1`
+ * * `europe-west1`
+ * @type \Google\Cloud\Video\Stitcher\V1\LiveSession $live_session
+ * Required. Parameters for creating a live session.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Video\Stitcher\V1\VideoStitcherService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The project and location in which the live session should be created,
+ * in the form of `projects/{project_number}/locations/{location}`.
+ * Valid locations:
+ * * `-` (Video Stitcher API will pick a location that is closest to the
+ * caller.)
+ * * `us-east1`
+ * * `us-west1`
+ * * `us-central1`
+ * * `europe-west1`
+ *
+ * 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. The project and location in which the live session should be created,
+ * in the form of `projects/{project_number}/locations/{location}`.
+ * Valid locations:
+ * * `-` (Video Stitcher API will pick a location that is closest to the
+ * caller.)
+ * * `us-east1`
+ * * `us-west1`
+ * * `us-central1`
+ * * `europe-west1`
+ *
+ * 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. Parameters for creating a live session.
+ *
+ * Generated from protobuf field .google.cloud.video.stitcher.v1.LiveSession live_session = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\Video\Stitcher\V1\LiveSession|null
+ */
+ public function getLiveSession()
+ {
+ return $this->live_session;
+ }
+
+ public function hasLiveSession()
+ {
+ return isset($this->live_session);
+ }
+
+ public function clearLiveSession()
+ {
+ unset($this->live_session);
+ }
+
+ /**
+ * Required. Parameters for creating a live session.
+ *
+ * Generated from protobuf field .google.cloud.video.stitcher.v1.LiveSession live_session = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\Video\Stitcher\V1\LiveSession $var
+ * @return $this
+ */
+ public function setLiveSession($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Video\Stitcher\V1\LiveSession::class);
+ $this->live_session = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/VideoSticher/src/V1/CreateSlateRequest.php b/VideoSticher/src/V1/CreateSlateRequest.php
new file mode 100644
index 00000000000..d89a4e1d42b
--- /dev/null
+++ b/VideoSticher/src/V1/CreateSlateRequest.php
@@ -0,0 +1,161 @@
+google.cloud.video.stitcher.v1.CreateSlateRequest
+ */
+class CreateSlateRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The project in which the slate should be created, in the form of
+ * `projects/{project_number}`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ private $parent = '';
+ /**
+ * Required. The unique identifier for the slate.
+ * This value should conform to RFC-1034, which restricts to
+ * lower-case letters, numbers, and hyphen, with the first character a
+ * letter, the last a letter or a number, and a 63 character maximum.
+ *
+ * Generated from protobuf field string slate_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ private $slate_id = '';
+ /**
+ * Required. The slate to create.
+ *
+ * Generated from protobuf field .google.cloud.video.stitcher.v1.Slate slate = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ private $slate = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The project in which the slate should be created, in the form of
+ * `projects/{project_number}`.
+ * @type string $slate_id
+ * Required. The unique identifier for the slate.
+ * This value should conform to RFC-1034, which restricts to
+ * lower-case letters, numbers, and hyphen, with the first character a
+ * letter, the last a letter or a number, and a 63 character maximum.
+ * @type \Google\Cloud\Video\Stitcher\V1\Slate $slate
+ * Required. The slate to create.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Video\Stitcher\V1\VideoStitcherService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The project in which the slate should be created, in the form of
+ * `projects/{project_number}`.
+ *
+ * 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. The project in which the slate should be created, in the form of
+ * `projects/{project_number}`.
+ *
+ * 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 unique identifier for the slate.
+ * This value should conform to RFC-1034, which restricts to
+ * lower-case letters, numbers, and hyphen, with the first character a
+ * letter, the last a letter or a number, and a 63 character maximum.
+ *
+ * Generated from protobuf field string slate_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getSlateId()
+ {
+ return $this->slate_id;
+ }
+
+ /**
+ * Required. The unique identifier for the slate.
+ * This value should conform to RFC-1034, which restricts to
+ * lower-case letters, numbers, and hyphen, with the first character a
+ * letter, the last a letter or a number, and a 63 character maximum.
+ *
+ * Generated from protobuf field string slate_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setSlateId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->slate_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The slate to create.
+ *
+ * Generated from protobuf field .google.cloud.video.stitcher.v1.Slate slate = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\Video\Stitcher\V1\Slate|null
+ */
+ public function getSlate()
+ {
+ return $this->slate;
+ }
+
+ public function hasSlate()
+ {
+ return isset($this->slate);
+ }
+
+ public function clearSlate()
+ {
+ unset($this->slate);
+ }
+
+ /**
+ * Required. The slate to create.
+ *
+ * Generated from protobuf field .google.cloud.video.stitcher.v1.Slate slate = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\Video\Stitcher\V1\Slate $var
+ * @return $this
+ */
+ public function setSlate($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Video\Stitcher\V1\Slate::class);
+ $this->slate = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/VideoSticher/src/V1/CreateVodSessionRequest.php b/VideoSticher/src/V1/CreateVodSessionRequest.php
new file mode 100644
index 00000000000..a3ab0dad7a8
--- /dev/null
+++ b/VideoSticher/src/V1/CreateVodSessionRequest.php
@@ -0,0 +1,115 @@
+google.cloud.video.stitcher.v1.CreateVodSessionRequest
+ */
+class CreateVodSessionRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The project and location in which the VOD session should be created, in the
+ * form of `projects/{project_number}/locations/{location}`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ private $parent = '';
+ /**
+ * Required. Parameters for creating a session.
+ *
+ * Generated from protobuf field .google.cloud.video.stitcher.v1.VodSession vod_session = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ private $vod_session = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The project and location in which the VOD session should be created, in the
+ * form of `projects/{project_number}/locations/{location}`.
+ * @type \Google\Cloud\Video\Stitcher\V1\VodSession $vod_session
+ * Required. Parameters for creating a session.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Video\Stitcher\V1\VideoStitcherService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The project and location in which the VOD session should be created, in the
+ * form of `projects/{project_number}/locations/{location}`.
+ *
+ * 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. The project and location in which the VOD session should be created, in the
+ * form of `projects/{project_number}/locations/{location}`.
+ *
+ * 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. Parameters for creating a session.
+ *
+ * Generated from protobuf field .google.cloud.video.stitcher.v1.VodSession vod_session = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\Video\Stitcher\V1\VodSession|null
+ */
+ public function getVodSession()
+ {
+ return $this->vod_session;
+ }
+
+ public function hasVodSession()
+ {
+ return isset($this->vod_session);
+ }
+
+ public function clearVodSession()
+ {
+ unset($this->vod_session);
+ }
+
+ /**
+ * Required. Parameters for creating a session.
+ *
+ * Generated from protobuf field .google.cloud.video.stitcher.v1.VodSession vod_session = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\Video\Stitcher\V1\VodSession $var
+ * @return $this
+ */
+ public function setVodSession($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Video\Stitcher\V1\VodSession::class);
+ $this->vod_session = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/VideoSticher/src/V1/DeleteCdnKeyRequest.php b/VideoSticher/src/V1/DeleteCdnKeyRequest.php
new file mode 100644
index 00000000000..5b55c4e683c
--- /dev/null
+++ b/VideoSticher/src/V1/DeleteCdnKeyRequest.php
@@ -0,0 +1,71 @@
+google.cloud.video.stitcher.v1.DeleteCdnKeyRequest
+ */
+class DeleteCdnKeyRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the CDN key to be deleted, in the form of
+ * `projects/{project_number}/locations/{location}/cdnKeys/{id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ private $name = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The name of the CDN key to be deleted, in the form of
+ * `projects/{project_number}/locations/{location}/cdnKeys/{id}`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Video\Stitcher\V1\VideoStitcherService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the CDN key to be deleted, in the form of
+ * `projects/{project_number}/locations/{location}/cdnKeys/{id}`.
+ *
+ * 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. The name of the CDN key to be deleted, in the form of
+ * `projects/{project_number}/locations/{location}/cdnKeys/{id}`.
+ *
+ * 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/VideoSticher/src/V1/DeleteSlateRequest.php b/VideoSticher/src/V1/DeleteSlateRequest.php
new file mode 100644
index 00000000000..1dcf21111b5
--- /dev/null
+++ b/VideoSticher/src/V1/DeleteSlateRequest.php
@@ -0,0 +1,71 @@
+google.cloud.video.stitcher.v1.DeleteSlateRequest
+ */
+class DeleteSlateRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the slate to be deleted, in the form of
+ * `projects/{project_number}/locations/{location}/slates/{id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ private $name = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The name of the slate to be deleted, in the form of
+ * `projects/{project_number}/locations/{location}/slates/{id}`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Video\Stitcher\V1\VideoStitcherService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the slate to be deleted, in the form of
+ * `projects/{project_number}/locations/{location}/slates/{id}`.
+ *
+ * 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. The name of the slate to be deleted, in the form of
+ * `projects/{project_number}/locations/{location}/slates/{id}`.
+ *
+ * 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/VideoSticher/src/V1/Event.php b/VideoSticher/src/V1/Event.php
new file mode 100644
index 00000000000..ce46fe5bae5
--- /dev/null
+++ b/VideoSticher/src/V1/Event.php
@@ -0,0 +1,179 @@
+google.cloud.video.stitcher.v1.Event
+ */
+class Event extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Describes the event that occurred.
+ *
+ * Generated from protobuf field .google.cloud.video.stitcher.v1.Event.EventType type = 1;
+ */
+ private $type = 0;
+ /**
+ * The URI to trigger for this event.
+ *
+ * Generated from protobuf field string uri = 2;
+ */
+ private $uri = '';
+ /**
+ * The ID of the event.
+ *
+ * Generated from protobuf field string id = 3;
+ */
+ private $id = '';
+ /**
+ * The offset in seconds if the event type is `PROGRESS`.
+ *
+ * Generated from protobuf field .google.protobuf.Duration offset = 4;
+ */
+ private $offset = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $type
+ * Describes the event that occurred.
+ * @type string $uri
+ * The URI to trigger for this event.
+ * @type string $id
+ * The ID of the event.
+ * @type \Google\Protobuf\Duration $offset
+ * The offset in seconds if the event type is `PROGRESS`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Video\Stitcher\V1\Events::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Describes the event that occurred.
+ *
+ * Generated from protobuf field .google.cloud.video.stitcher.v1.Event.EventType type = 1;
+ * @return int
+ */
+ public function getType()
+ {
+ return $this->type;
+ }
+
+ /**
+ * Describes the event that occurred.
+ *
+ * Generated from protobuf field .google.cloud.video.stitcher.v1.Event.EventType type = 1;
+ * @param int $var
+ * @return $this
+ */
+ public function setType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Video\Stitcher\V1\Event\EventType::class);
+ $this->type = $var;
+
+ return $this;
+ }
+
+ /**
+ * The URI to trigger for this event.
+ *
+ * Generated from protobuf field string uri = 2;
+ * @return string
+ */
+ public function getUri()
+ {
+ return $this->uri;
+ }
+
+ /**
+ * The URI to trigger for this event.
+ *
+ * Generated from protobuf field string uri = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setUri($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->uri = $var;
+
+ return $this;
+ }
+
+ /**
+ * The ID of the event.
+ *
+ * Generated from protobuf field string id = 3;
+ * @return string
+ */
+ public function getId()
+ {
+ return $this->id;
+ }
+
+ /**
+ * The ID of the event.
+ *
+ * Generated from protobuf field string id = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->id = $var;
+
+ return $this;
+ }
+
+ /**
+ * The offset in seconds if the event type is `PROGRESS`.
+ *
+ * Generated from protobuf field .google.protobuf.Duration offset = 4;
+ * @return \Google\Protobuf\Duration|null
+ */
+ public function getOffset()
+ {
+ return $this->offset;
+ }
+
+ public function hasOffset()
+ {
+ return isset($this->offset);
+ }
+
+ public function clearOffset()
+ {
+ unset($this->offset);
+ }
+
+ /**
+ * The offset in seconds if the event type is `PROGRESS`.
+ *
+ * Generated from protobuf field .google.protobuf.Duration offset = 4;
+ * @param \Google\Protobuf\Duration $var
+ * @return $this
+ */
+ public function setOffset($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class);
+ $this->offset = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/VideoSticher/src/V1/Event/EventType.php b/VideoSticher/src/V1/Event/EventType.php
new file mode 100644
index 00000000000..3cd6fe230f8
--- /dev/null
+++ b/VideoSticher/src/V1/Event/EventType.php
@@ -0,0 +1,216 @@
+google.cloud.video.stitcher.v1.Event.EventType
+ */
+class EventType
+{
+ /**
+ * The event type is unspecified.
+ *
+ * Generated from protobuf enum EVENT_TYPE_UNSPECIFIED = 0;
+ */
+ const EVENT_TYPE_UNSPECIFIED = 0;
+ /**
+ * First frame of creative ad viewed.
+ *
+ * Generated from protobuf enum CREATIVE_VIEW = 1;
+ */
+ const CREATIVE_VIEW = 1;
+ /**
+ * Creative ad started.
+ *
+ * Generated from protobuf enum START = 2;
+ */
+ const START = 2;
+ /**
+ * Start of an ad break.
+ *
+ * Generated from protobuf enum BREAK_START = 3;
+ */
+ const BREAK_START = 3;
+ /**
+ * End of an ad break.
+ *
+ * Generated from protobuf enum BREAK_END = 4;
+ */
+ const BREAK_END = 4;
+ /**
+ * Impression.
+ *
+ * Generated from protobuf enum IMPRESSION = 5;
+ */
+ const IMPRESSION = 5;
+ /**
+ * First quartile progress.
+ *
+ * Generated from protobuf enum FIRST_QUARTILE = 6;
+ */
+ const FIRST_QUARTILE = 6;
+ /**
+ * Midpoint progress.
+ *
+ * Generated from protobuf enum MIDPOINT = 7;
+ */
+ const MIDPOINT = 7;
+ /**
+ * Third quartile progress.
+ *
+ * Generated from protobuf enum THIRD_QUARTILE = 8;
+ */
+ const THIRD_QUARTILE = 8;
+ /**
+ * Ad progress completed.
+ *
+ * Generated from protobuf enum COMPLETE = 9;
+ */
+ const COMPLETE = 9;
+ /**
+ * Specific progress event with an offset.
+ *
+ * Generated from protobuf enum PROGRESS = 10;
+ */
+ const PROGRESS = 10;
+ /**
+ * Player muted.
+ *
+ * Generated from protobuf enum MUTE = 11;
+ */
+ const MUTE = 11;
+ /**
+ * Player unmuted.
+ *
+ * Generated from protobuf enum UNMUTE = 12;
+ */
+ const UNMUTE = 12;
+ /**
+ * Player paused.
+ *
+ * Generated from protobuf enum PAUSE = 13;
+ */
+ const PAUSE = 13;
+ /**
+ * Click event.
+ *
+ * Generated from protobuf enum CLICK = 14;
+ */
+ const CLICK = 14;
+ /**
+ * Click-through event.
+ *
+ * Generated from protobuf enum CLICK_THROUGH = 15;
+ */
+ const CLICK_THROUGH = 15;
+ /**
+ * Player rewinding.
+ *
+ * Generated from protobuf enum REWIND = 16;
+ */
+ const REWIND = 16;
+ /**
+ * Player resumed.
+ *
+ * Generated from protobuf enum RESUME = 17;
+ */
+ const RESUME = 17;
+ /**
+ * Error event.
+ *
+ * Generated from protobuf enum ERROR = 18;
+ */
+ const ERROR = 18;
+ /**
+ * Ad expanded to a larger size.
+ *
+ * Generated from protobuf enum EXPAND = 21;
+ */
+ const EXPAND = 21;
+ /**
+ * Ad collapsed to a smaller size.
+ *
+ * Generated from protobuf enum COLLAPSE = 22;
+ */
+ const COLLAPSE = 22;
+ /**
+ * Non-linear ad closed.
+ *
+ * Generated from protobuf enum CLOSE = 24;
+ */
+ const CLOSE = 24;
+ /**
+ * Linear ad closed.
+ *
+ * Generated from protobuf enum CLOSE_LINEAR = 25;
+ */
+ const CLOSE_LINEAR = 25;
+ /**
+ * Ad skipped.
+ *
+ * Generated from protobuf enum SKIP = 26;
+ */
+ const SKIP = 26;
+ /**
+ * Accept invitation event.
+ *
+ * Generated from protobuf enum ACCEPT_INVITATION = 27;
+ */
+ const ACCEPT_INVITATION = 27;
+
+ private static $valueToName = [
+ self::EVENT_TYPE_UNSPECIFIED => 'EVENT_TYPE_UNSPECIFIED',
+ self::CREATIVE_VIEW => 'CREATIVE_VIEW',
+ self::START => 'START',
+ self::BREAK_START => 'BREAK_START',
+ self::BREAK_END => 'BREAK_END',
+ self::IMPRESSION => 'IMPRESSION',
+ self::FIRST_QUARTILE => 'FIRST_QUARTILE',
+ self::MIDPOINT => 'MIDPOINT',
+ self::THIRD_QUARTILE => 'THIRD_QUARTILE',
+ self::COMPLETE => 'COMPLETE',
+ self::PROGRESS => 'PROGRESS',
+ self::MUTE => 'MUTE',
+ self::UNMUTE => 'UNMUTE',
+ self::PAUSE => 'PAUSE',
+ self::CLICK => 'CLICK',
+ self::CLICK_THROUGH => 'CLICK_THROUGH',
+ self::REWIND => 'REWIND',
+ self::RESUME => 'RESUME',
+ self::ERROR => 'ERROR',
+ self::EXPAND => 'EXPAND',
+ self::COLLAPSE => 'COLLAPSE',
+ self::CLOSE => 'CLOSE',
+ self::CLOSE_LINEAR => 'CLOSE_LINEAR',
+ self::SKIP => 'SKIP',
+ self::ACCEPT_INVITATION => 'ACCEPT_INVITATION',
+ ];
+
+ 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/VideoSticher/src/V1/Gapic/VideoStitcherServiceGapicClient.php b/VideoSticher/src/V1/Gapic/VideoStitcherServiceGapicClient.php
new file mode 100644
index 00000000000..c59e50854ef
--- /dev/null
+++ b/VideoSticher/src/V1/Gapic/VideoStitcherServiceGapicClient.php
@@ -0,0 +1,1787 @@
+locationName('[PROJECT]', '[LOCATION]');
+ * $cdnKey = new CdnKey();
+ * $cdnKeyId = 'cdn_key_id';
+ * $response = $videoStitcherServiceClient->createCdnKey($formattedParent, $cdnKey, $cdnKeyId);
+ * } finally {
+ * $videoStitcherServiceClient->close();
+ * }
+ * ```
+ *
+ * Many parameters require resource names to be formatted in a particular way. To
+ * assist with these names, this class includes a format method for each type of
+ * name, and additionally a parseName method to extract the individual identifiers
+ * contained within formatted names that are returned by the API.
+ */
+class VideoStitcherServiceGapicClient
+{
+ use GapicClientTrait;
+
+ /**
+ * The name of the service.
+ */
+ const SERVICE_NAME = 'google.cloud.video.stitcher.v1.VideoStitcherService';
+
+ /**
+ * The default address of the service.
+ */
+ const SERVICE_ADDRESS = 'videostitcher.googleapis.com';
+
+ /**
+ * The default port of the service.
+ */
+ const DEFAULT_SERVICE_PORT = 443;
+
+ /**
+ * The name of the code generator, to be included in the agent header.
+ */
+ const CODEGEN_NAME = 'gapic';
+
+ /**
+ * The default scopes required by the service.
+ */
+ public static $serviceScopes = [
+ 'https://www.googleapis.com/auth/cloud-platform',
+ ];
+
+ private static $cdnKeyNameTemplate;
+
+ private static $liveAdTagDetailNameTemplate;
+
+ private static $liveSessionNameTemplate;
+
+ private static $locationNameTemplate;
+
+ private static $slateNameTemplate;
+
+ private static $vodAdTagDetailNameTemplate;
+
+ private static $vodSessionNameTemplate;
+
+ private static $vodStitchDetailNameTemplate;
+
+ private static $pathTemplateMap;
+
+ private static function getClientDefaults()
+ {
+ return [
+ 'serviceName' => self::SERVICE_NAME,
+ 'apiEndpoint' =>
+ self::SERVICE_ADDRESS . ':' . self::DEFAULT_SERVICE_PORT,
+ 'clientConfig' =>
+ __DIR__ .
+ '/../resources/video_stitcher_service_client_config.json',
+ 'descriptorsConfigPath' =>
+ __DIR__ .
+ '/../resources/video_stitcher_service_descriptor_config.php',
+ 'gcpApiConfigPath' =>
+ __DIR__ .
+ '/../resources/video_stitcher_service_grpc_config.json',
+ 'credentialsConfig' => [
+ 'defaultScopes' => self::$serviceScopes,
+ ],
+ 'transportConfig' => [
+ 'rest' => [
+ 'restClientConfigPath' =>
+ __DIR__ .
+ '/../resources/video_stitcher_service_rest_client_config.php',
+ ],
+ ],
+ ];
+ }
+
+ private static function getCdnKeyNameTemplate()
+ {
+ if (self::$cdnKeyNameTemplate == null) {
+ self::$cdnKeyNameTemplate = new PathTemplate(
+ 'projects/{project}/locations/{location}/cdnKeys/{cdn_key}'
+ );
+ }
+
+ return self::$cdnKeyNameTemplate;
+ }
+
+ private static function getLiveAdTagDetailNameTemplate()
+ {
+ if (self::$liveAdTagDetailNameTemplate == null) {
+ self::$liveAdTagDetailNameTemplate = new PathTemplate(
+ 'projects/{project}/locations/{location}/liveSessions/{live_session}/liveAdTagDetails/{live_ad_tag_detail}'
+ );
+ }
+
+ return self::$liveAdTagDetailNameTemplate;
+ }
+
+ private static function getLiveSessionNameTemplate()
+ {
+ if (self::$liveSessionNameTemplate == null) {
+ self::$liveSessionNameTemplate = new PathTemplate(
+ 'projects/{project}/locations/{location}/liveSessions/{live_session}'
+ );
+ }
+
+ return self::$liveSessionNameTemplate;
+ }
+
+ private static function getLocationNameTemplate()
+ {
+ if (self::$locationNameTemplate == null) {
+ self::$locationNameTemplate = new PathTemplate(
+ 'projects/{project}/locations/{location}'
+ );
+ }
+
+ return self::$locationNameTemplate;
+ }
+
+ private static function getSlateNameTemplate()
+ {
+ if (self::$slateNameTemplate == null) {
+ self::$slateNameTemplate = new PathTemplate(
+ 'projects/{project}/locations/{location}/slates/{slate}'
+ );
+ }
+
+ return self::$slateNameTemplate;
+ }
+
+ private static function getVodAdTagDetailNameTemplate()
+ {
+ if (self::$vodAdTagDetailNameTemplate == null) {
+ self::$vodAdTagDetailNameTemplate = new PathTemplate(
+ 'projects/{project}/locations/{location}/vodSessions/{vod_session}/vodAdTagDetails/{vod_ad_tag_detail}'
+ );
+ }
+
+ return self::$vodAdTagDetailNameTemplate;
+ }
+
+ private static function getVodSessionNameTemplate()
+ {
+ if (self::$vodSessionNameTemplate == null) {
+ self::$vodSessionNameTemplate = new PathTemplate(
+ 'projects/{project}/locations/{location}/vodSessions/{vod_session}'
+ );
+ }
+
+ return self::$vodSessionNameTemplate;
+ }
+
+ private static function getVodStitchDetailNameTemplate()
+ {
+ if (self::$vodStitchDetailNameTemplate == null) {
+ self::$vodStitchDetailNameTemplate = new PathTemplate(
+ 'projects/{project}/locations/{location}/vodSessions/{vod_session}/vodStitchDetails/{vod_stitch_detail}'
+ );
+ }
+
+ return self::$vodStitchDetailNameTemplate;
+ }
+
+ private static function getPathTemplateMap()
+ {
+ if (self::$pathTemplateMap == null) {
+ self::$pathTemplateMap = [
+ 'cdnKey' => self::getCdnKeyNameTemplate(),
+ 'liveAdTagDetail' => self::getLiveAdTagDetailNameTemplate(),
+ 'liveSession' => self::getLiveSessionNameTemplate(),
+ 'location' => self::getLocationNameTemplate(),
+ 'slate' => self::getSlateNameTemplate(),
+ 'vodAdTagDetail' => self::getVodAdTagDetailNameTemplate(),
+ 'vodSession' => self::getVodSessionNameTemplate(),
+ 'vodStitchDetail' => self::getVodStitchDetailNameTemplate(),
+ ];
+ }
+
+ return self::$pathTemplateMap;
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a cdn_key
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $cdnKey
+ *
+ * @return string The formatted cdn_key resource.
+ */
+ public static function cdnKeyName($project, $location, $cdnKey)
+ {
+ return self::getCdnKeyNameTemplate()->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'cdn_key' => $cdnKey,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a
+ * live_ad_tag_detail resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $liveSession
+ * @param string $liveAdTagDetail
+ *
+ * @return string The formatted live_ad_tag_detail resource.
+ */
+ public static function liveAdTagDetailName(
+ $project,
+ $location,
+ $liveSession,
+ $liveAdTagDetail
+ ) {
+ return self::getLiveAdTagDetailNameTemplate()->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'live_session' => $liveSession,
+ 'live_ad_tag_detail' => $liveAdTagDetail,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a live_session
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $liveSession
+ *
+ * @return string The formatted live_session resource.
+ */
+ public static function liveSessionName($project, $location, $liveSession)
+ {
+ return self::getLiveSessionNameTemplate()->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'live_session' => $liveSession,
+ ]);
+ }
+
+ /**
+ * 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.
+ */
+ public static function locationName($project, $location)
+ {
+ return self::getLocationNameTemplate()->render([
+ 'project' => $project,
+ 'location' => $location,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a slate
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $slate
+ *
+ * @return string The formatted slate resource.
+ */
+ public static function slateName($project, $location, $slate)
+ {
+ return self::getSlateNameTemplate()->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'slate' => $slate,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a
+ * vod_ad_tag_detail resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $vodSession
+ * @param string $vodAdTagDetail
+ *
+ * @return string The formatted vod_ad_tag_detail resource.
+ */
+ public static function vodAdTagDetailName(
+ $project,
+ $location,
+ $vodSession,
+ $vodAdTagDetail
+ ) {
+ return self::getVodAdTagDetailNameTemplate()->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'vod_session' => $vodSession,
+ 'vod_ad_tag_detail' => $vodAdTagDetail,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a vod_session
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $vodSession
+ *
+ * @return string The formatted vod_session resource.
+ */
+ public static function vodSessionName($project, $location, $vodSession)
+ {
+ return self::getVodSessionNameTemplate()->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'vod_session' => $vodSession,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a
+ * vod_stitch_detail resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $vodSession
+ * @param string $vodStitchDetail
+ *
+ * @return string The formatted vod_stitch_detail resource.
+ */
+ public static function vodStitchDetailName(
+ $project,
+ $location,
+ $vodSession,
+ $vodStitchDetail
+ ) {
+ return self::getVodStitchDetailNameTemplate()->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'vod_session' => $vodSession,
+ 'vod_stitch_detail' => $vodStitchDetail,
+ ]);
+ }
+
+ /**
+ * Parses a formatted name string and returns an associative array of the components in the name.
+ * The following name formats are supported:
+ * Template: Pattern
+ * - cdnKey: projects/{project}/locations/{location}/cdnKeys/{cdn_key}
+ * - liveAdTagDetail: projects/{project}/locations/{location}/liveSessions/{live_session}/liveAdTagDetails/{live_ad_tag_detail}
+ * - liveSession: projects/{project}/locations/{location}/liveSessions/{live_session}
+ * - location: projects/{project}/locations/{location}
+ * - slate: projects/{project}/locations/{location}/slates/{slate}
+ * - vodAdTagDetail: projects/{project}/locations/{location}/vodSessions/{vod_session}/vodAdTagDetails/{vod_ad_tag_detail}
+ * - vodSession: projects/{project}/locations/{location}/vodSessions/{vod_session}
+ * - vodStitchDetail: projects/{project}/locations/{location}/vodSessions/{vod_session}/vodStitchDetails/{vod_stitch_detail}
+ *
+ * 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.
+ */
+ public static function parseName($formattedName, $template = null)
+ {
+ $templateMap = self::getPathTemplateMap();
+ if ($template) {
+ if (!isset($templateMap[$template])) {
+ throw new ValidationException(
+ "Template name $template does not exist"
+ );
+ }
+
+ return $templateMap[$template]->match($formattedName);
+ }
+
+ foreach ($templateMap as $templateName => $pathTemplate) {
+ try {
+ return $pathTemplate->match($formattedName);
+ } catch (ValidationException $ex) {
+ // Swallow the exception to continue trying other path templates
+ }
+ }
+
+ throw new ValidationException(
+ "Input did not match any known format. Input: $formattedName"
+ );
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $options {
+ * Optional. Options for configuring the service API wrapper.
+ *
+ * @type string $serviceAddress
+ * **Deprecated**. This option will be removed in a future major release. Please
+ * utilize the `$apiEndpoint` option instead.
+ * @type string $apiEndpoint
+ * The address of the API remote host. May optionally include the port, formatted
+ * as ":". Default 'videostitcher.googleapis.com:443'.
+ * @type string|array|FetchAuthTokenInterface|CredentialsWrapper $credentials
+ * The credentials to be used by the client to authorize API calls. This option
+ * accepts either a path to a credentials file, or a decoded credentials file as a
+ * PHP array.
+ * *Advanced usage*: In addition, this option can also accept a pre-constructed
+ * {@see \Google\Auth\FetchAuthTokenInterface} object or
+ * {@see \Google\ApiCore\CredentialsWrapper} object. Note that when one of these
+ * objects are provided, any settings in $credentialsConfig will be ignored.
+ * @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
+ * $serviceAddress 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.
+ * }
+ *
+ * @throws ValidationException
+ */
+ public function __construct(array $options = [])
+ {
+ $clientOptions = $this->buildClientOptions($options);
+ $this->setClientOptions($clientOptions);
+ }
+
+ /**
+ * Creates a new CDN key.
+ *
+ * Sample code:
+ * ```
+ * $videoStitcherServiceClient = new VideoStitcherServiceClient();
+ * try {
+ * $formattedParent = $videoStitcherServiceClient->locationName('[PROJECT]', '[LOCATION]');
+ * $cdnKey = new CdnKey();
+ * $cdnKeyId = 'cdn_key_id';
+ * $response = $videoStitcherServiceClient->createCdnKey($formattedParent, $cdnKey, $cdnKeyId);
+ * } finally {
+ * $videoStitcherServiceClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. The project in which the CDN key should be created, in the form of
+ * `projects/{project_number}/locations/{location}`.
+ * @param CdnKey $cdnKey Required. The CDN key resource to create.
+ * @param string $cdnKeyId Required. The ID to use for the CDN key, which will become the final component of
+ * the CDN key's resource name.
+ *
+ * This value should conform to RFC-1034, which restricts to
+ * lower-case letters, numbers, and hyphen, with the first character a
+ * letter, the last a letter or a number, and a 63 character maximum.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a
+ * {@see Google\ApiCore\RetrySettings} object, or an associative array of retry
+ * settings parameters. See the documentation on
+ * {@see Google\ApiCore\RetrySettings} for example usage.
+ * }
+ *
+ * @return \Google\Cloud\Video\Stitcher\V1\CdnKey
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function createCdnKey(
+ $parent,
+ $cdnKey,
+ $cdnKeyId,
+ array $optionalArgs = []
+ ) {
+ $request = new CreateCdnKeyRequest();
+ $requestParamHeaders = [];
+ $request->setParent($parent);
+ $request->setCdnKey($cdnKey);
+ $request->setCdnKeyId($cdnKeyId);
+ $requestParamHeaders['parent'] = $parent;
+ $requestParams = new RequestParamsHeaderDescriptor(
+ $requestParamHeaders
+ );
+ $optionalArgs['headers'] = isset($optionalArgs['headers'])
+ ? array_merge($requestParams->getHeader(), $optionalArgs['headers'])
+ : $requestParams->getHeader();
+ return $this->startCall(
+ 'CreateCdnKey',
+ CdnKey::class,
+ $optionalArgs,
+ $request
+ )->wait();
+ }
+
+ /**
+ * Creates a new live session.
+ *
+ * Sample code:
+ * ```
+ * $videoStitcherServiceClient = new VideoStitcherServiceClient();
+ * try {
+ * $formattedParent = $videoStitcherServiceClient->liveSessionName('[PROJECT]', '[LOCATION]', '[LIVE_SESSION]');
+ * $liveSession = new LiveSession();
+ * $response = $videoStitcherServiceClient->createLiveSession($formattedParent, $liveSession);
+ * } finally {
+ * $videoStitcherServiceClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. The project and location in which the live session should be created,
+ * in the form of `projects/{project_number}/locations/{location}`.
+ *
+ * Valid locations:
+ *
+ * * `-` (Video Stitcher API will pick a location that is closest to the
+ * caller.)
+ * * `us-east1`
+ * * `us-west1`
+ * * `us-central1`
+ * * `europe-west1`
+ * @param LiveSession $liveSession Required. Parameters for creating a live session.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a
+ * {@see Google\ApiCore\RetrySettings} object, or an associative array of retry
+ * settings parameters. See the documentation on
+ * {@see Google\ApiCore\RetrySettings} for example usage.
+ * }
+ *
+ * @return \Google\Cloud\Video\Stitcher\V1\LiveSession
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function createLiveSession(
+ $parent,
+ $liveSession,
+ array $optionalArgs = []
+ ) {
+ $request = new CreateLiveSessionRequest();
+ $requestParamHeaders = [];
+ $request->setParent($parent);
+ $request->setLiveSession($liveSession);
+ $requestParamHeaders['parent'] = $parent;
+ $requestParams = new RequestParamsHeaderDescriptor(
+ $requestParamHeaders
+ );
+ $optionalArgs['headers'] = isset($optionalArgs['headers'])
+ ? array_merge($requestParams->getHeader(), $optionalArgs['headers'])
+ : $requestParams->getHeader();
+ return $this->startCall(
+ 'CreateLiveSession',
+ LiveSession::class,
+ $optionalArgs,
+ $request
+ )->wait();
+ }
+
+ /**
+ * Creates a slate.
+ *
+ * Sample code:
+ * ```
+ * $videoStitcherServiceClient = new VideoStitcherServiceClient();
+ * try {
+ * $formattedParent = $videoStitcherServiceClient->locationName('[PROJECT]', '[LOCATION]');
+ * $slateId = 'slate_id';
+ * $slate = new Slate();
+ * $response = $videoStitcherServiceClient->createSlate($formattedParent, $slateId, $slate);
+ * } finally {
+ * $videoStitcherServiceClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. The project in which the slate should be created, in the form of
+ * `projects/{project_number}`.
+ * @param string $slateId Required. The unique identifier for the slate.
+ * This value should conform to RFC-1034, which restricts to
+ * lower-case letters, numbers, and hyphen, with the first character a
+ * letter, the last a letter or a number, and a 63 character maximum.
+ * @param Slate $slate Required. The slate to create.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a
+ * {@see Google\ApiCore\RetrySettings} object, or an associative array of retry
+ * settings parameters. See the documentation on
+ * {@see Google\ApiCore\RetrySettings} for example usage.
+ * }
+ *
+ * @return \Google\Cloud\Video\Stitcher\V1\Slate
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function createSlate(
+ $parent,
+ $slateId,
+ $slate,
+ array $optionalArgs = []
+ ) {
+ $request = new CreateSlateRequest();
+ $requestParamHeaders = [];
+ $request->setParent($parent);
+ $request->setSlateId($slateId);
+ $request->setSlate($slate);
+ $requestParamHeaders['parent'] = $parent;
+ $requestParams = new RequestParamsHeaderDescriptor(
+ $requestParamHeaders
+ );
+ $optionalArgs['headers'] = isset($optionalArgs['headers'])
+ ? array_merge($requestParams->getHeader(), $optionalArgs['headers'])
+ : $requestParams->getHeader();
+ return $this->startCall(
+ 'CreateSlate',
+ Slate::class,
+ $optionalArgs,
+ $request
+ )->wait();
+ }
+
+ /**
+ * Creates a client side playback VOD session and returns the full
+ * tracking and playback metadata of the session.
+ *
+ * Sample code:
+ * ```
+ * $videoStitcherServiceClient = new VideoStitcherServiceClient();
+ * try {
+ * $formattedParent = $videoStitcherServiceClient->locationName('[PROJECT]', '[LOCATION]');
+ * $vodSession = new VodSession();
+ * $response = $videoStitcherServiceClient->createVodSession($formattedParent, $vodSession);
+ * } finally {
+ * $videoStitcherServiceClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. The project and location in which the VOD session should be created, in the
+ * form of `projects/{project_number}/locations/{location}`.
+ * @param VodSession $vodSession Required. Parameters for creating a session.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a
+ * {@see Google\ApiCore\RetrySettings} object, or an associative array of retry
+ * settings parameters. See the documentation on
+ * {@see Google\ApiCore\RetrySettings} for example usage.
+ * }
+ *
+ * @return \Google\Cloud\Video\Stitcher\V1\VodSession
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function createVodSession(
+ $parent,
+ $vodSession,
+ array $optionalArgs = []
+ ) {
+ $request = new CreateVodSessionRequest();
+ $requestParamHeaders = [];
+ $request->setParent($parent);
+ $request->setVodSession($vodSession);
+ $requestParamHeaders['parent'] = $parent;
+ $requestParams = new RequestParamsHeaderDescriptor(
+ $requestParamHeaders
+ );
+ $optionalArgs['headers'] = isset($optionalArgs['headers'])
+ ? array_merge($requestParams->getHeader(), $optionalArgs['headers'])
+ : $requestParams->getHeader();
+ return $this->startCall(
+ 'CreateVodSession',
+ VodSession::class,
+ $optionalArgs,
+ $request
+ )->wait();
+ }
+
+ /**
+ * Deletes the specified CDN key.
+ *
+ * Sample code:
+ * ```
+ * $videoStitcherServiceClient = new VideoStitcherServiceClient();
+ * try {
+ * $formattedName = $videoStitcherServiceClient->cdnKeyName('[PROJECT]', '[LOCATION]', '[CDN_KEY]');
+ * $videoStitcherServiceClient->deleteCdnKey($formattedName);
+ * } finally {
+ * $videoStitcherServiceClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The name of the CDN key to be deleted, in the form of
+ * `projects/{project_number}/locations/{location}/cdnKeys/{id}`.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a
+ * {@see Google\ApiCore\RetrySettings} object, or an associative array of retry
+ * settings parameters. See the documentation on
+ * {@see Google\ApiCore\RetrySettings} for example usage.
+ * }
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function deleteCdnKey($name, array $optionalArgs = [])
+ {
+ $request = new DeleteCdnKeyRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $requestParamHeaders['name'] = $name;
+ $requestParams = new RequestParamsHeaderDescriptor(
+ $requestParamHeaders
+ );
+ $optionalArgs['headers'] = isset($optionalArgs['headers'])
+ ? array_merge($requestParams->getHeader(), $optionalArgs['headers'])
+ : $requestParams->getHeader();
+ return $this->startCall(
+ 'DeleteCdnKey',
+ GPBEmpty::class,
+ $optionalArgs,
+ $request
+ )->wait();
+ }
+
+ /**
+ * Deletes the specified slate.
+ *
+ * Sample code:
+ * ```
+ * $videoStitcherServiceClient = new VideoStitcherServiceClient();
+ * try {
+ * $formattedName = $videoStitcherServiceClient->slateName('[PROJECT]', '[LOCATION]', '[SLATE]');
+ * $videoStitcherServiceClient->deleteSlate($formattedName);
+ * } finally {
+ * $videoStitcherServiceClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The name of the slate to be deleted, in the form of
+ * `projects/{project_number}/locations/{location}/slates/{id}`.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a
+ * {@see Google\ApiCore\RetrySettings} object, or an associative array of retry
+ * settings parameters. See the documentation on
+ * {@see Google\ApiCore\RetrySettings} for example usage.
+ * }
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function deleteSlate($name, array $optionalArgs = [])
+ {
+ $request = new DeleteSlateRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $requestParamHeaders['name'] = $name;
+ $requestParams = new RequestParamsHeaderDescriptor(
+ $requestParamHeaders
+ );
+ $optionalArgs['headers'] = isset($optionalArgs['headers'])
+ ? array_merge($requestParams->getHeader(), $optionalArgs['headers'])
+ : $requestParams->getHeader();
+ return $this->startCall(
+ 'DeleteSlate',
+ GPBEmpty::class,
+ $optionalArgs,
+ $request
+ )->wait();
+ }
+
+ /**
+ * Returns the specified CDN key.
+ *
+ * Sample code:
+ * ```
+ * $videoStitcherServiceClient = new VideoStitcherServiceClient();
+ * try {
+ * $formattedName = $videoStitcherServiceClient->cdnKeyName('[PROJECT]', '[LOCATION]', '[CDN_KEY]');
+ * $response = $videoStitcherServiceClient->getCdnKey($formattedName);
+ * } finally {
+ * $videoStitcherServiceClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The name of the CDN key to be retrieved, in the form of
+ * `projects/{project}/locations/{location}/cdnKeys/{id}`.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a
+ * {@see Google\ApiCore\RetrySettings} object, or an associative array of retry
+ * settings parameters. See the documentation on
+ * {@see Google\ApiCore\RetrySettings} for example usage.
+ * }
+ *
+ * @return \Google\Cloud\Video\Stitcher\V1\CdnKey
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function getCdnKey($name, array $optionalArgs = [])
+ {
+ $request = new GetCdnKeyRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $requestParamHeaders['name'] = $name;
+ $requestParams = new RequestParamsHeaderDescriptor(
+ $requestParamHeaders
+ );
+ $optionalArgs['headers'] = isset($optionalArgs['headers'])
+ ? array_merge($requestParams->getHeader(), $optionalArgs['headers'])
+ : $requestParams->getHeader();
+ return $this->startCall(
+ 'GetCdnKey',
+ CdnKey::class,
+ $optionalArgs,
+ $request
+ )->wait();
+ }
+
+ /**
+ * Returns the specified ad tag detail for the specified live session.
+ *
+ * Sample code:
+ * ```
+ * $videoStitcherServiceClient = new VideoStitcherServiceClient();
+ * try {
+ * $formattedName = $videoStitcherServiceClient->liveAdTagDetailName('[PROJECT]', '[LOCATION]', '[LIVE_SESSION]', '[LIVE_AD_TAG_DETAIL]');
+ * $response = $videoStitcherServiceClient->getLiveAdTagDetail($formattedName);
+ * } finally {
+ * $videoStitcherServiceClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The resource name in the form of
+ * `projects/{project}/locations/{location}/liveSessions/{live_session}/liveAdTagDetails/{live_ad_tag_detail}`.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a
+ * {@see Google\ApiCore\RetrySettings} object, or an associative array of retry
+ * settings parameters. See the documentation on
+ * {@see Google\ApiCore\RetrySettings} for example usage.
+ * }
+ *
+ * @return \Google\Cloud\Video\Stitcher\V1\LiveAdTagDetail
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function getLiveAdTagDetail($name, array $optionalArgs = [])
+ {
+ $request = new GetLiveAdTagDetailRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $requestParamHeaders['name'] = $name;
+ $requestParams = new RequestParamsHeaderDescriptor(
+ $requestParamHeaders
+ );
+ $optionalArgs['headers'] = isset($optionalArgs['headers'])
+ ? array_merge($requestParams->getHeader(), $optionalArgs['headers'])
+ : $requestParams->getHeader();
+ return $this->startCall(
+ 'GetLiveAdTagDetail',
+ LiveAdTagDetail::class,
+ $optionalArgs,
+ $request
+ )->wait();
+ }
+
+ /**
+ * Returns the details for the specified live session.
+ *
+ * Sample code:
+ * ```
+ * $videoStitcherServiceClient = new VideoStitcherServiceClient();
+ * try {
+ * $formattedName = $videoStitcherServiceClient->liveSessionName('[PROJECT]', '[LOCATION]', '[LIVE_SESSION]');
+ * $response = $videoStitcherServiceClient->getLiveSession($formattedName);
+ * } finally {
+ * $videoStitcherServiceClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The name of the live session, in the form of
+ * `projects/{project_number}/locations/{location}/liveSessions/{id}`.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a
+ * {@see Google\ApiCore\RetrySettings} object, or an associative array of retry
+ * settings parameters. See the documentation on
+ * {@see Google\ApiCore\RetrySettings} for example usage.
+ * }
+ *
+ * @return \Google\Cloud\Video\Stitcher\V1\LiveSession
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function getLiveSession($name, array $optionalArgs = [])
+ {
+ $request = new GetLiveSessionRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $requestParamHeaders['name'] = $name;
+ $requestParams = new RequestParamsHeaderDescriptor(
+ $requestParamHeaders
+ );
+ $optionalArgs['headers'] = isset($optionalArgs['headers'])
+ ? array_merge($requestParams->getHeader(), $optionalArgs['headers'])
+ : $requestParams->getHeader();
+ return $this->startCall(
+ 'GetLiveSession',
+ LiveSession::class,
+ $optionalArgs,
+ $request
+ )->wait();
+ }
+
+ /**
+ * Returns the specified slate.
+ *
+ * Sample code:
+ * ```
+ * $videoStitcherServiceClient = new VideoStitcherServiceClient();
+ * try {
+ * $formattedName = $videoStitcherServiceClient->slateName('[PROJECT]', '[LOCATION]', '[SLATE]');
+ * $response = $videoStitcherServiceClient->getSlate($formattedName);
+ * } finally {
+ * $videoStitcherServiceClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The name of the slate to be retrieved, of the slate, in the form of
+ * `projects/{project_number}/locations/{location}/slates/{id}`.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a
+ * {@see Google\ApiCore\RetrySettings} object, or an associative array of retry
+ * settings parameters. See the documentation on
+ * {@see Google\ApiCore\RetrySettings} for example usage.
+ * }
+ *
+ * @return \Google\Cloud\Video\Stitcher\V1\Slate
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function getSlate($name, array $optionalArgs = [])
+ {
+ $request = new GetSlateRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $requestParamHeaders['name'] = $name;
+ $requestParams = new RequestParamsHeaderDescriptor(
+ $requestParamHeaders
+ );
+ $optionalArgs['headers'] = isset($optionalArgs['headers'])
+ ? array_merge($requestParams->getHeader(), $optionalArgs['headers'])
+ : $requestParams->getHeader();
+ return $this->startCall(
+ 'GetSlate',
+ Slate::class,
+ $optionalArgs,
+ $request
+ )->wait();
+ }
+
+ /**
+ * Returns the specified ad tag detail for the specified VOD session.
+ *
+ * Sample code:
+ * ```
+ * $videoStitcherServiceClient = new VideoStitcherServiceClient();
+ * try {
+ * $formattedName = $videoStitcherServiceClient->vodAdTagDetailName('[PROJECT]', '[LOCATION]', '[VOD_SESSION]', '[VOD_AD_TAG_DETAIL]');
+ * $response = $videoStitcherServiceClient->getVodAdTagDetail($formattedName);
+ * } finally {
+ * $videoStitcherServiceClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The name of the ad tag detail for the specified VOD session, in the form of
+ * `projects/{project}/locations/{location}/vodSessions/{vod_session_id}/vodAdTagDetails/{vod_ad_tag_detail}`.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a
+ * {@see Google\ApiCore\RetrySettings} object, or an associative array of retry
+ * settings parameters. See the documentation on
+ * {@see Google\ApiCore\RetrySettings} for example usage.
+ * }
+ *
+ * @return \Google\Cloud\Video\Stitcher\V1\VodAdTagDetail
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function getVodAdTagDetail($name, array $optionalArgs = [])
+ {
+ $request = new GetVodAdTagDetailRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $requestParamHeaders['name'] = $name;
+ $requestParams = new RequestParamsHeaderDescriptor(
+ $requestParamHeaders
+ );
+ $optionalArgs['headers'] = isset($optionalArgs['headers'])
+ ? array_merge($requestParams->getHeader(), $optionalArgs['headers'])
+ : $requestParams->getHeader();
+ return $this->startCall(
+ 'GetVodAdTagDetail',
+ VodAdTagDetail::class,
+ $optionalArgs,
+ $request
+ )->wait();
+ }
+
+ /**
+ * Returns the full tracking, playback metadata, and relevant ad-ops
+ * logs for the specified VOD session.
+ *
+ * Sample code:
+ * ```
+ * $videoStitcherServiceClient = new VideoStitcherServiceClient();
+ * try {
+ * $formattedName = $videoStitcherServiceClient->vodSessionName('[PROJECT]', '[LOCATION]', '[VOD_SESSION]');
+ * $response = $videoStitcherServiceClient->getVodSession($formattedName);
+ * } finally {
+ * $videoStitcherServiceClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The name of the VOD session to be retrieved, in the form of
+ * `projects/{project_number}/locations/{location}/vodSessions/{id}`.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a
+ * {@see Google\ApiCore\RetrySettings} object, or an associative array of retry
+ * settings parameters. See the documentation on
+ * {@see Google\ApiCore\RetrySettings} for example usage.
+ * }
+ *
+ * @return \Google\Cloud\Video\Stitcher\V1\VodSession
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function getVodSession($name, array $optionalArgs = [])
+ {
+ $request = new GetVodSessionRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $requestParamHeaders['name'] = $name;
+ $requestParams = new RequestParamsHeaderDescriptor(
+ $requestParamHeaders
+ );
+ $optionalArgs['headers'] = isset($optionalArgs['headers'])
+ ? array_merge($requestParams->getHeader(), $optionalArgs['headers'])
+ : $requestParams->getHeader();
+ return $this->startCall(
+ 'GetVodSession',
+ VodSession::class,
+ $optionalArgs,
+ $request
+ )->wait();
+ }
+
+ /**
+ * Returns the specified stitching information for the specified VOD session.
+ *
+ * Sample code:
+ * ```
+ * $videoStitcherServiceClient = new VideoStitcherServiceClient();
+ * try {
+ * $formattedName = $videoStitcherServiceClient->vodStitchDetailName('[PROJECT]', '[LOCATION]', '[VOD_SESSION]', '[VOD_STITCH_DETAIL]');
+ * $response = $videoStitcherServiceClient->getVodStitchDetail($formattedName);
+ * } finally {
+ * $videoStitcherServiceClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The name of the stitch detail in the specified VOD session, in the form of
+ * `projects/{project}/locations/{location}/vodSessions/{vod_session_id}/vodStitchDetails/{id}`.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a
+ * {@see Google\ApiCore\RetrySettings} object, or an associative array of retry
+ * settings parameters. See the documentation on
+ * {@see Google\ApiCore\RetrySettings} for example usage.
+ * }
+ *
+ * @return \Google\Cloud\Video\Stitcher\V1\VodStitchDetail
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function getVodStitchDetail($name, array $optionalArgs = [])
+ {
+ $request = new GetVodStitchDetailRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $requestParamHeaders['name'] = $name;
+ $requestParams = new RequestParamsHeaderDescriptor(
+ $requestParamHeaders
+ );
+ $optionalArgs['headers'] = isset($optionalArgs['headers'])
+ ? array_merge($requestParams->getHeader(), $optionalArgs['headers'])
+ : $requestParams->getHeader();
+ return $this->startCall(
+ 'GetVodStitchDetail',
+ VodStitchDetail::class,
+ $optionalArgs,
+ $request
+ )->wait();
+ }
+
+ /**
+ * Lists all CDN keys in the specified project and location.
+ *
+ * Sample code:
+ * ```
+ * $videoStitcherServiceClient = new VideoStitcherServiceClient();
+ * try {
+ * $formattedParent = $videoStitcherServiceClient->locationName('[PROJECT]', '[LOCATION]');
+ * // Iterate over pages of elements
+ * $pagedResponse = $videoStitcherServiceClient->listCdnKeys($formattedParent);
+ * foreach ($pagedResponse->iteratePages() as $page) {
+ * foreach ($page as $element) {
+ * // doSomethingWith($element);
+ * }
+ * }
+ * // Alternatively:
+ * // Iterate through all elements
+ * $pagedResponse = $videoStitcherServiceClient->listCdnKeys($formattedParent);
+ * foreach ($pagedResponse->iterateAllElements() as $element) {
+ * // doSomethingWith($element);
+ * }
+ * } finally {
+ * $videoStitcherServiceClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. The project that contains the list of CDN keys, in the form of
+ * `projects/{project_number}/locations/{location}`.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type int $pageSize
+ * The maximum number of resources contained in the underlying API
+ * response. The API may return fewer values in a page, even if
+ * there are additional values to be retrieved.
+ * @type string $pageToken
+ * A page token is used to specify a page of values to be returned.
+ * If no page token is specified (the default), the first page
+ * of values will be returned. Any page token used here must have
+ * been generated by a previous call to the API.
+ * @type string $filter
+ * Filtering results
+ * @type string $orderBy
+ * Hint for how to order the results
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a
+ * {@see Google\ApiCore\RetrySettings} object, or an associative array of retry
+ * settings parameters. See the documentation on
+ * {@see Google\ApiCore\RetrySettings} for example usage.
+ * }
+ *
+ * @return \Google\ApiCore\PagedListResponse
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function listCdnKeys($parent, array $optionalArgs = [])
+ {
+ $request = new ListCdnKeysRequest();
+ $requestParamHeaders = [];
+ $request->setParent($parent);
+ $requestParamHeaders['parent'] = $parent;
+ if (isset($optionalArgs['pageSize'])) {
+ $request->setPageSize($optionalArgs['pageSize']);
+ }
+
+ if (isset($optionalArgs['pageToken'])) {
+ $request->setPageToken($optionalArgs['pageToken']);
+ }
+
+ if (isset($optionalArgs['filter'])) {
+ $request->setFilter($optionalArgs['filter']);
+ }
+
+ if (isset($optionalArgs['orderBy'])) {
+ $request->setOrderBy($optionalArgs['orderBy']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor(
+ $requestParamHeaders
+ );
+ $optionalArgs['headers'] = isset($optionalArgs['headers'])
+ ? array_merge($requestParams->getHeader(), $optionalArgs['headers'])
+ : $requestParams->getHeader();
+ return $this->getPagedListResponse(
+ 'ListCdnKeys',
+ $optionalArgs,
+ ListCdnKeysResponse::class,
+ $request
+ );
+ }
+
+ /**
+ * Return the list of ad tag details for the specified live session.
+ *
+ * Sample code:
+ * ```
+ * $videoStitcherServiceClient = new VideoStitcherServiceClient();
+ * try {
+ * $formattedParent = $videoStitcherServiceClient->liveSessionName('[PROJECT]', '[LOCATION]', '[LIVE_SESSION]');
+ * // Iterate over pages of elements
+ * $pagedResponse = $videoStitcherServiceClient->listLiveAdTagDetails($formattedParent);
+ * foreach ($pagedResponse->iteratePages() as $page) {
+ * foreach ($page as $element) {
+ * // doSomethingWith($element);
+ * }
+ * }
+ * // Alternatively:
+ * // Iterate through all elements
+ * $pagedResponse = $videoStitcherServiceClient->listLiveAdTagDetails($formattedParent);
+ * foreach ($pagedResponse->iterateAllElements() as $element) {
+ * // doSomethingWith($element);
+ * }
+ * } finally {
+ * $videoStitcherServiceClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. The resource parent in the form of
+ * `projects/{project}/locations/{location}/liveSessions/{live_session}`.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type int $pageSize
+ * The maximum number of resources contained in the underlying API
+ * response. The API may return fewer values in a page, even if
+ * there are additional values to be retrieved.
+ * @type string $pageToken
+ * A page token is used to specify a page of values to be returned.
+ * If no page token is specified (the default), the first page
+ * of values will be returned. Any page token used here must have
+ * been generated by a previous call to the API.
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a
+ * {@see Google\ApiCore\RetrySettings} object, or an associative array of retry
+ * settings parameters. See the documentation on
+ * {@see Google\ApiCore\RetrySettings} for example usage.
+ * }
+ *
+ * @return \Google\ApiCore\PagedListResponse
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function listLiveAdTagDetails($parent, array $optionalArgs = [])
+ {
+ $request = new ListLiveAdTagDetailsRequest();
+ $requestParamHeaders = [];
+ $request->setParent($parent);
+ $requestParamHeaders['parent'] = $parent;
+ if (isset($optionalArgs['pageSize'])) {
+ $request->setPageSize($optionalArgs['pageSize']);
+ }
+
+ if (isset($optionalArgs['pageToken'])) {
+ $request->setPageToken($optionalArgs['pageToken']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor(
+ $requestParamHeaders
+ );
+ $optionalArgs['headers'] = isset($optionalArgs['headers'])
+ ? array_merge($requestParams->getHeader(), $optionalArgs['headers'])
+ : $requestParams->getHeader();
+ return $this->getPagedListResponse(
+ 'ListLiveAdTagDetails',
+ $optionalArgs,
+ ListLiveAdTagDetailsResponse::class,
+ $request
+ );
+ }
+
+ /**
+ * Lists all slates in the specified project and location.
+ *
+ * Sample code:
+ * ```
+ * $videoStitcherServiceClient = new VideoStitcherServiceClient();
+ * try {
+ * $formattedParent = $videoStitcherServiceClient->locationName('[PROJECT]', '[LOCATION]');
+ * // Iterate over pages of elements
+ * $pagedResponse = $videoStitcherServiceClient->listSlates($formattedParent);
+ * foreach ($pagedResponse->iteratePages() as $page) {
+ * foreach ($page as $element) {
+ * // doSomethingWith($element);
+ * }
+ * }
+ * // Alternatively:
+ * // Iterate through all elements
+ * $pagedResponse = $videoStitcherServiceClient->listSlates($formattedParent);
+ * foreach ($pagedResponse->iterateAllElements() as $element) {
+ * // doSomethingWith($element);
+ * }
+ * } finally {
+ * $videoStitcherServiceClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. The project to list slates, in the form of `projects/{project_number}`.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type int $pageSize
+ * The maximum number of resources contained in the underlying API
+ * response. The API may return fewer values in a page, even if
+ * there are additional values to be retrieved.
+ * @type string $pageToken
+ * A page token is used to specify a page of values to be returned.
+ * If no page token is specified (the default), the first page
+ * of values will be returned. Any page token used here must have
+ * been generated by a previous call to the API.
+ * @type string $filter
+ * Filtering results
+ * @type string $orderBy
+ * Hint for how to order the results
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a
+ * {@see Google\ApiCore\RetrySettings} object, or an associative array of retry
+ * settings parameters. See the documentation on
+ * {@see Google\ApiCore\RetrySettings} for example usage.
+ * }
+ *
+ * @return \Google\ApiCore\PagedListResponse
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function listSlates($parent, array $optionalArgs = [])
+ {
+ $request = new ListSlatesRequest();
+ $requestParamHeaders = [];
+ $request->setParent($parent);
+ $requestParamHeaders['parent'] = $parent;
+ if (isset($optionalArgs['pageSize'])) {
+ $request->setPageSize($optionalArgs['pageSize']);
+ }
+
+ if (isset($optionalArgs['pageToken'])) {
+ $request->setPageToken($optionalArgs['pageToken']);
+ }
+
+ if (isset($optionalArgs['filter'])) {
+ $request->setFilter($optionalArgs['filter']);
+ }
+
+ if (isset($optionalArgs['orderBy'])) {
+ $request->setOrderBy($optionalArgs['orderBy']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor(
+ $requestParamHeaders
+ );
+ $optionalArgs['headers'] = isset($optionalArgs['headers'])
+ ? array_merge($requestParams->getHeader(), $optionalArgs['headers'])
+ : $requestParams->getHeader();
+ return $this->getPagedListResponse(
+ 'ListSlates',
+ $optionalArgs,
+ ListSlatesResponse::class,
+ $request
+ );
+ }
+
+ /**
+ * Return the list of ad tag details for the specified VOD session.
+ *
+ * Sample code:
+ * ```
+ * $videoStitcherServiceClient = new VideoStitcherServiceClient();
+ * try {
+ * $formattedParent = $videoStitcherServiceClient->vodSessionName('[PROJECT]', '[LOCATION]', '[VOD_SESSION]');
+ * // Iterate over pages of elements
+ * $pagedResponse = $videoStitcherServiceClient->listVodAdTagDetails($formattedParent);
+ * foreach ($pagedResponse->iteratePages() as $page) {
+ * foreach ($page as $element) {
+ * // doSomethingWith($element);
+ * }
+ * }
+ * // Alternatively:
+ * // Iterate through all elements
+ * $pagedResponse = $videoStitcherServiceClient->listVodAdTagDetails($formattedParent);
+ * foreach ($pagedResponse->iterateAllElements() as $element) {
+ * // doSomethingWith($element);
+ * }
+ * } finally {
+ * $videoStitcherServiceClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. The VOD session which the ad tag details belong to, in the form of
+ * `projects/{project}/locations/{location}/vodSessions/{vod_session_id}`.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type int $pageSize
+ * The maximum number of resources contained in the underlying API
+ * response. The API may return fewer values in a page, even if
+ * there are additional values to be retrieved.
+ * @type string $pageToken
+ * A page token is used to specify a page of values to be returned.
+ * If no page token is specified (the default), the first page
+ * of values will be returned. Any page token used here must have
+ * been generated by a previous call to the API.
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a
+ * {@see Google\ApiCore\RetrySettings} object, or an associative array of retry
+ * settings parameters. See the documentation on
+ * {@see Google\ApiCore\RetrySettings} for example usage.
+ * }
+ *
+ * @return \Google\ApiCore\PagedListResponse
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function listVodAdTagDetails($parent, array $optionalArgs = [])
+ {
+ $request = new ListVodAdTagDetailsRequest();
+ $requestParamHeaders = [];
+ $request->setParent($parent);
+ $requestParamHeaders['parent'] = $parent;
+ if (isset($optionalArgs['pageSize'])) {
+ $request->setPageSize($optionalArgs['pageSize']);
+ }
+
+ if (isset($optionalArgs['pageToken'])) {
+ $request->setPageToken($optionalArgs['pageToken']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor(
+ $requestParamHeaders
+ );
+ $optionalArgs['headers'] = isset($optionalArgs['headers'])
+ ? array_merge($requestParams->getHeader(), $optionalArgs['headers'])
+ : $requestParams->getHeader();
+ return $this->getPagedListResponse(
+ 'ListVodAdTagDetails',
+ $optionalArgs,
+ ListVodAdTagDetailsResponse::class,
+ $request
+ );
+ }
+
+ /**
+ * Returns a list of detailed stitching information of the specified VOD
+ * session.
+ *
+ * Sample code:
+ * ```
+ * $videoStitcherServiceClient = new VideoStitcherServiceClient();
+ * try {
+ * $formattedParent = $videoStitcherServiceClient->vodSessionName('[PROJECT]', '[LOCATION]', '[VOD_SESSION]');
+ * // Iterate over pages of elements
+ * $pagedResponse = $videoStitcherServiceClient->listVodStitchDetails($formattedParent);
+ * foreach ($pagedResponse->iteratePages() as $page) {
+ * foreach ($page as $element) {
+ * // doSomethingWith($element);
+ * }
+ * }
+ * // Alternatively:
+ * // Iterate through all elements
+ * $pagedResponse = $videoStitcherServiceClient->listVodStitchDetails($formattedParent);
+ * foreach ($pagedResponse->iterateAllElements() as $element) {
+ * // doSomethingWith($element);
+ * }
+ * } finally {
+ * $videoStitcherServiceClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. The VOD session where the stitch details belong to, in the form of
+ * `projects/{project}/locations/{location}/vodSessions/{id}`.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type int $pageSize
+ * The maximum number of resources contained in the underlying API
+ * response. The API may return fewer values in a page, even if
+ * there are additional values to be retrieved.
+ * @type string $pageToken
+ * A page token is used to specify a page of values to be returned.
+ * If no page token is specified (the default), the first page
+ * of values will be returned. Any page token used here must have
+ * been generated by a previous call to the API.
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a
+ * {@see Google\ApiCore\RetrySettings} object, or an associative array of retry
+ * settings parameters. See the documentation on
+ * {@see Google\ApiCore\RetrySettings} for example usage.
+ * }
+ *
+ * @return \Google\ApiCore\PagedListResponse
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function listVodStitchDetails($parent, array $optionalArgs = [])
+ {
+ $request = new ListVodStitchDetailsRequest();
+ $requestParamHeaders = [];
+ $request->setParent($parent);
+ $requestParamHeaders['parent'] = $parent;
+ if (isset($optionalArgs['pageSize'])) {
+ $request->setPageSize($optionalArgs['pageSize']);
+ }
+
+ if (isset($optionalArgs['pageToken'])) {
+ $request->setPageToken($optionalArgs['pageToken']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor(
+ $requestParamHeaders
+ );
+ $optionalArgs['headers'] = isset($optionalArgs['headers'])
+ ? array_merge($requestParams->getHeader(), $optionalArgs['headers'])
+ : $requestParams->getHeader();
+ return $this->getPagedListResponse(
+ 'ListVodStitchDetails',
+ $optionalArgs,
+ ListVodStitchDetailsResponse::class,
+ $request
+ );
+ }
+
+ /**
+ * Updates the specified CDN key. Only update fields specified
+ * in the call method body.
+ *
+ * Sample code:
+ * ```
+ * $videoStitcherServiceClient = new VideoStitcherServiceClient();
+ * try {
+ * $cdnKey = new CdnKey();
+ * $updateMask = new FieldMask();
+ * $response = $videoStitcherServiceClient->updateCdnKey($cdnKey, $updateMask);
+ * } finally {
+ * $videoStitcherServiceClient->close();
+ * }
+ * ```
+ *
+ * @param CdnKey $cdnKey Required. The CDN key resource which replaces the resource on the server.
+ * @param FieldMask $updateMask Required. The update mask applies to the resource.
+ * For the `FieldMask` definition, see
+ * https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a
+ * {@see Google\ApiCore\RetrySettings} object, or an associative array of retry
+ * settings parameters. See the documentation on
+ * {@see Google\ApiCore\RetrySettings} for example usage.
+ * }
+ *
+ * @return \Google\Cloud\Video\Stitcher\V1\CdnKey
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function updateCdnKey($cdnKey, $updateMask, array $optionalArgs = [])
+ {
+ $request = new UpdateCdnKeyRequest();
+ $requestParamHeaders = [];
+ $request->setCdnKey($cdnKey);
+ $request->setUpdateMask($updateMask);
+ $requestParamHeaders['cdn_key.name'] = $cdnKey->getName();
+ $requestParams = new RequestParamsHeaderDescriptor(
+ $requestParamHeaders
+ );
+ $optionalArgs['headers'] = isset($optionalArgs['headers'])
+ ? array_merge($requestParams->getHeader(), $optionalArgs['headers'])
+ : $requestParams->getHeader();
+ return $this->startCall(
+ 'UpdateCdnKey',
+ CdnKey::class,
+ $optionalArgs,
+ $request
+ )->wait();
+ }
+
+ /**
+ * Updates the specified slate.
+ *
+ * Sample code:
+ * ```
+ * $videoStitcherServiceClient = new VideoStitcherServiceClient();
+ * try {
+ * $slate = new Slate();
+ * $updateMask = new FieldMask();
+ * $response = $videoStitcherServiceClient->updateSlate($slate, $updateMask);
+ * } finally {
+ * $videoStitcherServiceClient->close();
+ * }
+ * ```
+ *
+ * @param Slate $slate Required. The resource with updated fields.
+ * @param FieldMask $updateMask Required. The update mask which specifies fields which should be updated.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a
+ * {@see Google\ApiCore\RetrySettings} object, or an associative array of retry
+ * settings parameters. See the documentation on
+ * {@see Google\ApiCore\RetrySettings} for example usage.
+ * }
+ *
+ * @return \Google\Cloud\Video\Stitcher\V1\Slate
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function updateSlate($slate, $updateMask, array $optionalArgs = [])
+ {
+ $request = new UpdateSlateRequest();
+ $requestParamHeaders = [];
+ $request->setSlate($slate);
+ $request->setUpdateMask($updateMask);
+ $requestParamHeaders['slate.name'] = $slate->getName();
+ $requestParams = new RequestParamsHeaderDescriptor(
+ $requestParamHeaders
+ );
+ $optionalArgs['headers'] = isset($optionalArgs['headers'])
+ ? array_merge($requestParams->getHeader(), $optionalArgs['headers'])
+ : $requestParams->getHeader();
+ return $this->startCall(
+ 'UpdateSlate',
+ Slate::class,
+ $optionalArgs,
+ $request
+ )->wait();
+ }
+}
diff --git a/VideoSticher/src/V1/GetCdnKeyRequest.php b/VideoSticher/src/V1/GetCdnKeyRequest.php
new file mode 100644
index 00000000000..68b97e09d37
--- /dev/null
+++ b/VideoSticher/src/V1/GetCdnKeyRequest.php
@@ -0,0 +1,71 @@
+google.cloud.video.stitcher.v1.GetCdnKeyRequest
+ */
+class GetCdnKeyRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the CDN key to be retrieved, in the form of
+ * `projects/{project}/locations/{location}/cdnKeys/{id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ private $name = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The name of the CDN key to be retrieved, in the form of
+ * `projects/{project}/locations/{location}/cdnKeys/{id}`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Video\Stitcher\V1\VideoStitcherService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the CDN key to be retrieved, in the form of
+ * `projects/{project}/locations/{location}/cdnKeys/{id}`.
+ *
+ * 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. The name of the CDN key to be retrieved, in the form of
+ * `projects/{project}/locations/{location}/cdnKeys/{id}`.
+ *
+ * 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/VideoSticher/src/V1/GetLiveAdTagDetailRequest.php b/VideoSticher/src/V1/GetLiveAdTagDetailRequest.php
new file mode 100644
index 00000000000..b1ce1baa454
--- /dev/null
+++ b/VideoSticher/src/V1/GetLiveAdTagDetailRequest.php
@@ -0,0 +1,71 @@
+google.cloud.video.stitcher.v1.GetLiveAdTagDetailRequest
+ */
+class GetLiveAdTagDetailRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The resource name in the form of
+ * `projects/{project}/locations/{location}/liveSessions/{live_session}/liveAdTagDetails/{live_ad_tag_detail}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ private $name = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The resource name in the form of
+ * `projects/{project}/locations/{location}/liveSessions/{live_session}/liveAdTagDetails/{live_ad_tag_detail}`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Video\Stitcher\V1\VideoStitcherService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The resource name in the form of
+ * `projects/{project}/locations/{location}/liveSessions/{live_session}/liveAdTagDetails/{live_ad_tag_detail}`.
+ *
+ * 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. The resource name in the form of
+ * `projects/{project}/locations/{location}/liveSessions/{live_session}/liveAdTagDetails/{live_ad_tag_detail}`.
+ *
+ * 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/VideoSticher/src/V1/GetLiveSessionRequest.php b/VideoSticher/src/V1/GetLiveSessionRequest.php
new file mode 100644
index 00000000000..9e4bf9bfff8
--- /dev/null
+++ b/VideoSticher/src/V1/GetLiveSessionRequest.php
@@ -0,0 +1,71 @@
+google.cloud.video.stitcher.v1.GetLiveSessionRequest
+ */
+class GetLiveSessionRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the live session, in the form of
+ * `projects/{project_number}/locations/{location}/liveSessions/{id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ private $name = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The name of the live session, in the form of
+ * `projects/{project_number}/locations/{location}/liveSessions/{id}`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Video\Stitcher\V1\VideoStitcherService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the live session, in the form of
+ * `projects/{project_number}/locations/{location}/liveSessions/{id}`.
+ *
+ * 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. The name of the live session, in the form of
+ * `projects/{project_number}/locations/{location}/liveSessions/{id}`.
+ *
+ * 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/VideoSticher/src/V1/GetSlateRequest.php b/VideoSticher/src/V1/GetSlateRequest.php
new file mode 100644
index 00000000000..e7bfc89fa1d
--- /dev/null
+++ b/VideoSticher/src/V1/GetSlateRequest.php
@@ -0,0 +1,71 @@
+google.cloud.video.stitcher.v1.GetSlateRequest
+ */
+class GetSlateRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the slate to be retrieved, of the slate, in the form of
+ * `projects/{project_number}/locations/{location}/slates/{id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ private $name = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The name of the slate to be retrieved, of the slate, in the form of
+ * `projects/{project_number}/locations/{location}/slates/{id}`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Video\Stitcher\V1\VideoStitcherService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the slate to be retrieved, of the slate, in the form of
+ * `projects/{project_number}/locations/{location}/slates/{id}`.
+ *
+ * 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. The name of the slate to be retrieved, of the slate, in the form of
+ * `projects/{project_number}/locations/{location}/slates/{id}`.
+ *
+ * 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/VideoSticher/src/V1/GetVodAdTagDetailRequest.php b/VideoSticher/src/V1/GetVodAdTagDetailRequest.php
new file mode 100644
index 00000000000..c8c8ee590b3
--- /dev/null
+++ b/VideoSticher/src/V1/GetVodAdTagDetailRequest.php
@@ -0,0 +1,71 @@
+google.cloud.video.stitcher.v1.GetVodAdTagDetailRequest
+ */
+class GetVodAdTagDetailRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the ad tag detail for the specified VOD session, in the form of
+ * `projects/{project}/locations/{location}/vodSessions/{vod_session_id}/vodAdTagDetails/{vod_ad_tag_detail}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ private $name = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The name of the ad tag detail for the specified VOD session, in the form of
+ * `projects/{project}/locations/{location}/vodSessions/{vod_session_id}/vodAdTagDetails/{vod_ad_tag_detail}`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Video\Stitcher\V1\VideoStitcherService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the ad tag detail for the specified VOD session, in the form of
+ * `projects/{project}/locations/{location}/vodSessions/{vod_session_id}/vodAdTagDetails/{vod_ad_tag_detail}`.
+ *
+ * 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. The name of the ad tag detail for the specified VOD session, in the form of
+ * `projects/{project}/locations/{location}/vodSessions/{vod_session_id}/vodAdTagDetails/{vod_ad_tag_detail}`.
+ *
+ * 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/VideoSticher/src/V1/GetVodSessionRequest.php b/VideoSticher/src/V1/GetVodSessionRequest.php
new file mode 100644
index 00000000000..b6557892765
--- /dev/null
+++ b/VideoSticher/src/V1/GetVodSessionRequest.php
@@ -0,0 +1,71 @@
+google.cloud.video.stitcher.v1.GetVodSessionRequest
+ */
+class GetVodSessionRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the VOD session to be retrieved, in the form of
+ * `projects/{project_number}/locations/{location}/vodSessions/{id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ private $name = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The name of the VOD session to be retrieved, in the form of
+ * `projects/{project_number}/locations/{location}/vodSessions/{id}`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Video\Stitcher\V1\VideoStitcherService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the VOD session to be retrieved, in the form of
+ * `projects/{project_number}/locations/{location}/vodSessions/{id}`.
+ *
+ * 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. The name of the VOD session to be retrieved, in the form of
+ * `projects/{project_number}/locations/{location}/vodSessions/{id}`.
+ *
+ * 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/VideoSticher/src/V1/GetVodStitchDetailRequest.php b/VideoSticher/src/V1/GetVodStitchDetailRequest.php
new file mode 100644
index 00000000000..8b992668014
--- /dev/null
+++ b/VideoSticher/src/V1/GetVodStitchDetailRequest.php
@@ -0,0 +1,71 @@
+google.cloud.video.stitcher.v1.GetVodStitchDetailRequest
+ */
+class GetVodStitchDetailRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the stitch detail in the specified VOD session, in the form of
+ * `projects/{project}/locations/{location}/vodSessions/{vod_session_id}/vodStitchDetails/{id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ private $name = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The name of the stitch detail in the specified VOD session, in the form of
+ * `projects/{project}/locations/{location}/vodSessions/{vod_session_id}/vodStitchDetails/{id}`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Video\Stitcher\V1\VideoStitcherService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the stitch detail in the specified VOD session, in the form of
+ * `projects/{project}/locations/{location}/vodSessions/{vod_session_id}/vodStitchDetails/{id}`.
+ *
+ * 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. The name of the stitch detail in the specified VOD session, in the form of
+ * `projects/{project}/locations/{location}/vodSessions/{vod_session_id}/vodStitchDetails/{id}`.
+ *
+ * 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/VideoSticher/src/V1/GoogleCdnKey.php b/VideoSticher/src/V1/GoogleCdnKey.php
new file mode 100644
index 00000000000..ec977f7b5e9
--- /dev/null
+++ b/VideoSticher/src/V1/GoogleCdnKey.php
@@ -0,0 +1,101 @@
+google.cloud.video.stitcher.v1.GoogleCdnKey
+ */
+class GoogleCdnKey extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Input only. Secret for this Google Cloud CDN key.
+ *
+ * Generated from protobuf field bytes private_key = 1 [(.google.api.field_behavior) = INPUT_ONLY];
+ */
+ private $private_key = '';
+ /**
+ * The public name of the Google Cloud CDN key.
+ *
+ * Generated from protobuf field string key_name = 2;
+ */
+ private $key_name = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $private_key
+ * Input only. Secret for this Google Cloud CDN key.
+ * @type string $key_name
+ * The public name of the Google Cloud CDN key.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Video\Stitcher\V1\CdnKeys::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Input only. Secret for this Google Cloud CDN key.
+ *
+ * Generated from protobuf field bytes private_key = 1 [(.google.api.field_behavior) = INPUT_ONLY];
+ * @return string
+ */
+ public function getPrivateKey()
+ {
+ return $this->private_key;
+ }
+
+ /**
+ * Input only. Secret for this Google Cloud CDN key.
+ *
+ * Generated from protobuf field bytes private_key = 1 [(.google.api.field_behavior) = INPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setPrivateKey($var)
+ {
+ GPBUtil::checkString($var, False);
+ $this->private_key = $var;
+
+ return $this;
+ }
+
+ /**
+ * The public name of the Google Cloud CDN key.
+ *
+ * Generated from protobuf field string key_name = 2;
+ * @return string
+ */
+ public function getKeyName()
+ {
+ return $this->key_name;
+ }
+
+ /**
+ * The public name of the Google Cloud CDN key.
+ *
+ * Generated from protobuf field string key_name = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setKeyName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->key_name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/VideoSticher/src/V1/HtmlAdResource.php b/VideoSticher/src/V1/HtmlAdResource.php
new file mode 100644
index 00000000000..747e9d78888
--- /dev/null
+++ b/VideoSticher/src/V1/HtmlAdResource.php
@@ -0,0 +1,67 @@
+google.cloud.video.stitcher.v1.HtmlAdResource
+ */
+class HtmlAdResource extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The HTML to display for the ad resource.
+ *
+ * Generated from protobuf field string html_source = 1;
+ */
+ private $html_source = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $html_source
+ * The HTML to display for the ad resource.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Video\Stitcher\V1\Companions::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The HTML to display for the ad resource.
+ *
+ * Generated from protobuf field string html_source = 1;
+ * @return string
+ */
+ public function getHtmlSource()
+ {
+ return $this->html_source;
+ }
+
+ /**
+ * The HTML to display for the ad resource.
+ *
+ * Generated from protobuf field string html_source = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setHtmlSource($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->html_source = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/VideoSticher/src/V1/IframeAdResource.php b/VideoSticher/src/V1/IframeAdResource.php
new file mode 100644
index 00000000000..a9c1819811d
--- /dev/null
+++ b/VideoSticher/src/V1/IframeAdResource.php
@@ -0,0 +1,67 @@
+google.cloud.video.stitcher.v1.IframeAdResource
+ */
+class IframeAdResource extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * URI source for an IFrame to display for the ad resource.
+ *
+ * Generated from protobuf field string uri = 1;
+ */
+ private $uri = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $uri
+ * URI source for an IFrame to display for the ad resource.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Video\Stitcher\V1\Companions::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * URI source for an IFrame to display for the ad resource.
+ *
+ * Generated from protobuf field string uri = 1;
+ * @return string
+ */
+ public function getUri()
+ {
+ return $this->uri;
+ }
+
+ /**
+ * URI source for an IFrame to display for the ad resource.
+ *
+ * Generated from protobuf field string uri = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setUri($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->uri = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/VideoSticher/src/V1/Interstitials.php b/VideoSticher/src/V1/Interstitials.php
new file mode 100644
index 00000000000..fc55435660c
--- /dev/null
+++ b/VideoSticher/src/V1/Interstitials.php
@@ -0,0 +1,111 @@
+google.cloud.video.stitcher.v1.Interstitials
+ */
+class Interstitials extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * List of ad breaks ordered by time.
+ *
+ * Generated from protobuf field repeated .google.cloud.video.stitcher.v1.VodSessionAdBreak ad_breaks = 1;
+ */
+ private $ad_breaks;
+ /**
+ * Information related to the content of the VOD session.
+ *
+ * Generated from protobuf field .google.cloud.video.stitcher.v1.VodSessionContent session_content = 2;
+ */
+ private $session_content = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Video\Stitcher\V1\VodSessionAdBreak[]|\Google\Protobuf\Internal\RepeatedField $ad_breaks
+ * List of ad breaks ordered by time.
+ * @type \Google\Cloud\Video\Stitcher\V1\VodSessionContent $session_content
+ * Information related to the content of the VOD session.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Video\Stitcher\V1\Sessions::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * List of ad breaks ordered by time.
+ *
+ * Generated from protobuf field repeated .google.cloud.video.stitcher.v1.VodSessionAdBreak ad_breaks = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getAdBreaks()
+ {
+ return $this->ad_breaks;
+ }
+
+ /**
+ * List of ad breaks ordered by time.
+ *
+ * Generated from protobuf field repeated .google.cloud.video.stitcher.v1.VodSessionAdBreak ad_breaks = 1;
+ * @param \Google\Cloud\Video\Stitcher\V1\VodSessionAdBreak[]|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setAdBreaks($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Video\Stitcher\V1\VodSessionAdBreak::class);
+ $this->ad_breaks = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Information related to the content of the VOD session.
+ *
+ * Generated from protobuf field .google.cloud.video.stitcher.v1.VodSessionContent session_content = 2;
+ * @return \Google\Cloud\Video\Stitcher\V1\VodSessionContent|null
+ */
+ public function getSessionContent()
+ {
+ return $this->session_content;
+ }
+
+ public function hasSessionContent()
+ {
+ return isset($this->session_content);
+ }
+
+ public function clearSessionContent()
+ {
+ unset($this->session_content);
+ }
+
+ /**
+ * Information related to the content of the VOD session.
+ *
+ * Generated from protobuf field .google.cloud.video.stitcher.v1.VodSessionContent session_content = 2;
+ * @param \Google\Cloud\Video\Stitcher\V1\VodSessionContent $var
+ * @return $this
+ */
+ public function setSessionContent($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Video\Stitcher\V1\VodSessionContent::class);
+ $this->session_content = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/VideoSticher/src/V1/ListCdnKeysRequest.php b/VideoSticher/src/V1/ListCdnKeysRequest.php
new file mode 100644
index 00000000000..17081a6fe6c
--- /dev/null
+++ b/VideoSticher/src/V1/ListCdnKeysRequest.php
@@ -0,0 +1,211 @@
+google.cloud.video.stitcher.v1.ListCdnKeysRequest
+ */
+class ListCdnKeysRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The project that contains the list of CDN keys, in the form of
+ * `projects/{project_number}/locations/{location}`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ private $parent = '';
+ /**
+ * Requested page size. Server may return fewer items than requested.
+ * If unspecified, server will pick an appropriate default.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ */
+ private $page_size = 0;
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string page_token = 3;
+ */
+ private $page_token = '';
+ /**
+ * Filtering results
+ *
+ * Generated from protobuf field string filter = 4;
+ */
+ private $filter = '';
+ /**
+ * Hint for how to order the results
+ *
+ * Generated from protobuf field string order_by = 5;
+ */
+ private $order_by = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The project that contains the list of CDN keys, in the form of
+ * `projects/{project_number}/locations/{location}`.
+ * @type int $page_size
+ * Requested page size. Server may return fewer items than requested.
+ * If unspecified, server will pick an appropriate default.
+ * @type string $page_token
+ * A token identifying a page of results the server should return.
+ * @type string $filter
+ * Filtering results
+ * @type string $order_by
+ * Hint for how to order the results
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Video\Stitcher\V1\VideoStitcherService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The project that contains the list of CDN keys, in the form of
+ * `projects/{project_number}/locations/{location}`.
+ *
+ * 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. The project that contains the list of CDN keys, in the form of
+ * `projects/{project_number}/locations/{location}`.
+ *
+ * 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;
+ }
+
+ /**
+ * Requested page size. Server may return fewer items than requested.
+ * If unspecified, server will pick an appropriate default.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @return int
+ */
+ public function getPageSize()
+ {
+ return $this->page_size;
+ }
+
+ /**
+ * Requested page size. Server may return fewer items than requested.
+ * If unspecified, server will pick an appropriate default.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setPageSize($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->page_size = $var;
+
+ return $this;
+ }
+
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @return string
+ */
+ public function getPageToken()
+ {
+ return $this->page_token;
+ }
+
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->page_token = $var;
+
+ return $this;
+ }
+
+ /**
+ * Filtering results
+ *
+ * Generated from protobuf field string filter = 4;
+ * @return string
+ */
+ public function getFilter()
+ {
+ return $this->filter;
+ }
+
+ /**
+ * Filtering results
+ *
+ * Generated from protobuf field string filter = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setFilter($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->filter = $var;
+
+ return $this;
+ }
+
+ /**
+ * Hint for how to order the results
+ *
+ * Generated from protobuf field string order_by = 5;
+ * @return string
+ */
+ public function getOrderBy()
+ {
+ return $this->order_by;
+ }
+
+ /**
+ * Hint for how to order the results
+ *
+ * Generated from protobuf field string order_by = 5;
+ * @param string $var
+ * @return $this
+ */
+ public function setOrderBy($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->order_by = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/VideoSticher/src/V1/ListCdnKeysResponse.php b/VideoSticher/src/V1/ListCdnKeysResponse.php
new file mode 100644
index 00000000000..dd961a42e1e
--- /dev/null
+++ b/VideoSticher/src/V1/ListCdnKeysResponse.php
@@ -0,0 +1,135 @@
+google.cloud.video.stitcher.v1.ListCdnKeysResponse
+ */
+class ListCdnKeysResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * List of CDN keys.
+ *
+ * Generated from protobuf field repeated .google.cloud.video.stitcher.v1.CdnKey cdn_keys = 1;
+ */
+ private $cdn_keys;
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ */
+ private $next_page_token = '';
+ /**
+ * Locations that could not be reached.
+ *
+ * Generated from protobuf field repeated string unreachable = 3;
+ */
+ private $unreachable;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Video\Stitcher\V1\CdnKey[]|\Google\Protobuf\Internal\RepeatedField $cdn_keys
+ * List of CDN keys.
+ * @type string $next_page_token
+ * A token identifying a page of results the server should return.
+ * @type string[]|\Google\Protobuf\Internal\RepeatedField $unreachable
+ * Locations that could not be reached.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Video\Stitcher\V1\VideoStitcherService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * List of CDN keys.
+ *
+ * Generated from protobuf field repeated .google.cloud.video.stitcher.v1.CdnKey cdn_keys = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getCdnKeys()
+ {
+ return $this->cdn_keys;
+ }
+
+ /**
+ * List of CDN keys.
+ *
+ * Generated from protobuf field repeated .google.cloud.video.stitcher.v1.CdnKey cdn_keys = 1;
+ * @param \Google\Cloud\Video\Stitcher\V1\CdnKey[]|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setCdnKeys($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Video\Stitcher\V1\CdnKey::class);
+ $this->cdn_keys = $arr;
+
+ return $this;
+ }
+
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @return string
+ */
+ public function getNextPageToken()
+ {
+ return $this->next_page_token;
+ }
+
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * 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;
+ }
+
+ /**
+ * Locations that could not be reached.
+ *
+ * Generated from protobuf field repeated string unreachable = 3;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getUnreachable()
+ {
+ return $this->unreachable;
+ }
+
+ /**
+ * Locations that could not be reached.
+ *
+ * Generated from protobuf field repeated string unreachable = 3;
+ * @param string[]|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setUnreachable($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->unreachable = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/VideoSticher/src/V1/ListLiveAdTagDetailsRequest.php b/VideoSticher/src/V1/ListLiveAdTagDetailsRequest.php
new file mode 100644
index 00000000000..233c430e7a6
--- /dev/null
+++ b/VideoSticher/src/V1/ListLiveAdTagDetailsRequest.php
@@ -0,0 +1,139 @@
+google.cloud.video.stitcher.v1.ListLiveAdTagDetailsRequest
+ */
+class ListLiveAdTagDetailsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The resource parent in the form of
+ * `projects/{project}/locations/{location}/liveSessions/{live_session}`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ private $parent = '';
+ /**
+ * The maximum number of items to return.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ */
+ private $page_size = 0;
+ /**
+ * The pagination token returned from a previous List request.
+ *
+ * Generated from protobuf field string page_token = 3;
+ */
+ private $page_token = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The resource parent in the form of
+ * `projects/{project}/locations/{location}/liveSessions/{live_session}`.
+ * @type int $page_size
+ * The maximum number of items to return.
+ * @type string $page_token
+ * The pagination token returned from a previous List request.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Video\Stitcher\V1\VideoStitcherService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The resource parent in the form of
+ * `projects/{project}/locations/{location}/liveSessions/{live_session}`.
+ *
+ * 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. The resource parent in the form of
+ * `projects/{project}/locations/{location}/liveSessions/{live_session}`.
+ *
+ * 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;
+ }
+
+ /**
+ * The maximum number of items to return.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @return int
+ */
+ public function getPageSize()
+ {
+ return $this->page_size;
+ }
+
+ /**
+ * The maximum number of items to return.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setPageSize($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->page_size = $var;
+
+ return $this;
+ }
+
+ /**
+ * The pagination token returned from a previous List request.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @return string
+ */
+ public function getPageToken()
+ {
+ return $this->page_token;
+ }
+
+ /**
+ * The pagination token returned from a previous List request.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->page_token = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/VideoSticher/src/V1/ListLiveAdTagDetailsResponse.php b/VideoSticher/src/V1/ListLiveAdTagDetailsResponse.php
new file mode 100644
index 00000000000..dfb3e669e9b
--- /dev/null
+++ b/VideoSticher/src/V1/ListLiveAdTagDetailsResponse.php
@@ -0,0 +1,101 @@
+google.cloud.video.stitcher.v1.ListLiveAdTagDetailsResponse
+ */
+class ListLiveAdTagDetailsResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * A list of live session ad tag details.
+ *
+ * Generated from protobuf field repeated .google.cloud.video.stitcher.v1.LiveAdTagDetail live_ad_tag_details = 1;
+ */
+ private $live_ad_tag_details;
+ /**
+ * The pagination token.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ */
+ private $next_page_token = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Video\Stitcher\V1\LiveAdTagDetail[]|\Google\Protobuf\Internal\RepeatedField $live_ad_tag_details
+ * A list of live session ad tag details.
+ * @type string $next_page_token
+ * The pagination token.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Video\Stitcher\V1\VideoStitcherService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * A list of live session ad tag details.
+ *
+ * Generated from protobuf field repeated .google.cloud.video.stitcher.v1.LiveAdTagDetail live_ad_tag_details = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getLiveAdTagDetails()
+ {
+ return $this->live_ad_tag_details;
+ }
+
+ /**
+ * A list of live session ad tag details.
+ *
+ * Generated from protobuf field repeated .google.cloud.video.stitcher.v1.LiveAdTagDetail live_ad_tag_details = 1;
+ * @param \Google\Cloud\Video\Stitcher\V1\LiveAdTagDetail[]|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setLiveAdTagDetails($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Video\Stitcher\V1\LiveAdTagDetail::class);
+ $this->live_ad_tag_details = $arr;
+
+ return $this;
+ }
+
+ /**
+ * The pagination token.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @return string
+ */
+ public function getNextPageToken()
+ {
+ return $this->next_page_token;
+ }
+
+ /**
+ * The pagination token.
+ *
+ * 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/VideoSticher/src/V1/ListSlatesRequest.php b/VideoSticher/src/V1/ListSlatesRequest.php
new file mode 100644
index 00000000000..e9cea253abb
--- /dev/null
+++ b/VideoSticher/src/V1/ListSlatesRequest.php
@@ -0,0 +1,207 @@
+google.cloud.video.stitcher.v1.ListSlatesRequest
+ */
+class ListSlatesRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The project to list slates, in the form of `projects/{project_number}`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ private $parent = '';
+ /**
+ * Requested page size. Server may return fewer items than requested.
+ * If unspecified, server will pick an appropriate default.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ */
+ private $page_size = 0;
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string page_token = 3;
+ */
+ private $page_token = '';
+ /**
+ * Filtering results
+ *
+ * Generated from protobuf field string filter = 4;
+ */
+ private $filter = '';
+ /**
+ * Hint for how to order the results
+ *
+ * Generated from protobuf field string order_by = 5;
+ */
+ private $order_by = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The project to list slates, in the form of `projects/{project_number}`.
+ * @type int $page_size
+ * Requested page size. Server may return fewer items than requested.
+ * If unspecified, server will pick an appropriate default.
+ * @type string $page_token
+ * A token identifying a page of results the server should return.
+ * @type string $filter
+ * Filtering results
+ * @type string $order_by
+ * Hint for how to order the results
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Video\Stitcher\V1\VideoStitcherService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The project to list slates, in the form of `projects/{project_number}`.
+ *
+ * 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. The project to list slates, in the form of `projects/{project_number}`.
+ *
+ * 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;
+ }
+
+ /**
+ * Requested page size. Server may return fewer items than requested.
+ * If unspecified, server will pick an appropriate default.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @return int
+ */
+ public function getPageSize()
+ {
+ return $this->page_size;
+ }
+
+ /**
+ * Requested page size. Server may return fewer items than requested.
+ * If unspecified, server will pick an appropriate default.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setPageSize($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->page_size = $var;
+
+ return $this;
+ }
+
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @return string
+ */
+ public function getPageToken()
+ {
+ return $this->page_token;
+ }
+
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->page_token = $var;
+
+ return $this;
+ }
+
+ /**
+ * Filtering results
+ *
+ * Generated from protobuf field string filter = 4;
+ * @return string
+ */
+ public function getFilter()
+ {
+ return $this->filter;
+ }
+
+ /**
+ * Filtering results
+ *
+ * Generated from protobuf field string filter = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setFilter($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->filter = $var;
+
+ return $this;
+ }
+
+ /**
+ * Hint for how to order the results
+ *
+ * Generated from protobuf field string order_by = 5;
+ * @return string
+ */
+ public function getOrderBy()
+ {
+ return $this->order_by;
+ }
+
+ /**
+ * Hint for how to order the results
+ *
+ * Generated from protobuf field string order_by = 5;
+ * @param string $var
+ * @return $this
+ */
+ public function setOrderBy($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->order_by = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/VideoSticher/src/V1/ListSlatesResponse.php b/VideoSticher/src/V1/ListSlatesResponse.php
new file mode 100644
index 00000000000..f4974f4e756
--- /dev/null
+++ b/VideoSticher/src/V1/ListSlatesResponse.php
@@ -0,0 +1,135 @@
+google.cloud.video.stitcher.v1.ListSlatesResponse
+ */
+class ListSlatesResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The list of slates
+ *
+ * Generated from protobuf field repeated .google.cloud.video.stitcher.v1.Slate slates = 1;
+ */
+ private $slates;
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ */
+ private $next_page_token = '';
+ /**
+ * Locations that could not be reached.
+ *
+ * Generated from protobuf field repeated string unreachable = 3;
+ */
+ private $unreachable;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Video\Stitcher\V1\Slate[]|\Google\Protobuf\Internal\RepeatedField $slates
+ * The list of slates
+ * @type string $next_page_token
+ * A token identifying a page of results the server should return.
+ * @type string[]|\Google\Protobuf\Internal\RepeatedField $unreachable
+ * Locations that could not be reached.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Video\Stitcher\V1\VideoStitcherService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The list of slates
+ *
+ * Generated from protobuf field repeated .google.cloud.video.stitcher.v1.Slate slates = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getSlates()
+ {
+ return $this->slates;
+ }
+
+ /**
+ * The list of slates
+ *
+ * Generated from protobuf field repeated .google.cloud.video.stitcher.v1.Slate slates = 1;
+ * @param \Google\Cloud\Video\Stitcher\V1\Slate[]|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setSlates($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Video\Stitcher\V1\Slate::class);
+ $this->slates = $arr;
+
+ return $this;
+ }
+
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @return string
+ */
+ public function getNextPageToken()
+ {
+ return $this->next_page_token;
+ }
+
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * 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;
+ }
+
+ /**
+ * Locations that could not be reached.
+ *
+ * Generated from protobuf field repeated string unreachable = 3;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getUnreachable()
+ {
+ return $this->unreachable;
+ }
+
+ /**
+ * Locations that could not be reached.
+ *
+ * Generated from protobuf field repeated string unreachable = 3;
+ * @param string[]|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setUnreachable($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->unreachable = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/VideoSticher/src/V1/ListVodAdTagDetailsRequest.php b/VideoSticher/src/V1/ListVodAdTagDetailsRequest.php
new file mode 100644
index 00000000000..7a7fa32be44
--- /dev/null
+++ b/VideoSticher/src/V1/ListVodAdTagDetailsRequest.php
@@ -0,0 +1,139 @@
+google.cloud.video.stitcher.v1.ListVodAdTagDetailsRequest
+ */
+class ListVodAdTagDetailsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The VOD session which the ad tag details belong to, in the form of
+ * `projects/{project}/locations/{location}/vodSessions/{vod_session_id}`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ private $parent = '';
+ /**
+ * The maximum number of items to return.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ */
+ private $page_size = 0;
+ /**
+ * The next_page_token value returned from a previous List request, if any.
+ *
+ * Generated from protobuf field string page_token = 3;
+ */
+ private $page_token = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The VOD session which the ad tag details belong to, in the form of
+ * `projects/{project}/locations/{location}/vodSessions/{vod_session_id}`.
+ * @type int $page_size
+ * The maximum number of items to return.
+ * @type string $page_token
+ * The next_page_token value returned from a previous List request, if any.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Video\Stitcher\V1\VideoStitcherService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The VOD session which the ad tag details belong to, in the form of
+ * `projects/{project}/locations/{location}/vodSessions/{vod_session_id}`.
+ *
+ * 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. The VOD session which the ad tag details belong to, in the form of
+ * `projects/{project}/locations/{location}/vodSessions/{vod_session_id}`.
+ *
+ * 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;
+ }
+
+ /**
+ * The maximum number of items to return.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @return int
+ */
+ public function getPageSize()
+ {
+ return $this->page_size;
+ }
+
+ /**
+ * The maximum number of items to return.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setPageSize($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->page_size = $var;
+
+ return $this;
+ }
+
+ /**
+ * The next_page_token value returned from a previous List request, if any.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @return string
+ */
+ public function getPageToken()
+ {
+ return $this->page_token;
+ }
+
+ /**
+ * The next_page_token value returned from a previous List request, if any.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->page_token = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/VideoSticher/src/V1/ListVodAdTagDetailsResponse.php b/VideoSticher/src/V1/ListVodAdTagDetailsResponse.php
new file mode 100644
index 00000000000..1906bb18992
--- /dev/null
+++ b/VideoSticher/src/V1/ListVodAdTagDetailsResponse.php
@@ -0,0 +1,101 @@
+google.cloud.video.stitcher.v1.ListVodAdTagDetailsResponse
+ */
+class ListVodAdTagDetailsResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * A List of ad tag details.
+ *
+ * Generated from protobuf field repeated .google.cloud.video.stitcher.v1.VodAdTagDetail vod_ad_tag_details = 1;
+ */
+ private $vod_ad_tag_details;
+ /**
+ * The pagination token.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ */
+ private $next_page_token = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Video\Stitcher\V1\VodAdTagDetail[]|\Google\Protobuf\Internal\RepeatedField $vod_ad_tag_details
+ * A List of ad tag details.
+ * @type string $next_page_token
+ * The pagination token.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Video\Stitcher\V1\VideoStitcherService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * A List of ad tag details.
+ *
+ * Generated from protobuf field repeated .google.cloud.video.stitcher.v1.VodAdTagDetail vod_ad_tag_details = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getVodAdTagDetails()
+ {
+ return $this->vod_ad_tag_details;
+ }
+
+ /**
+ * A List of ad tag details.
+ *
+ * Generated from protobuf field repeated .google.cloud.video.stitcher.v1.VodAdTagDetail vod_ad_tag_details = 1;
+ * @param \Google\Cloud\Video\Stitcher\V1\VodAdTagDetail[]|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setVodAdTagDetails($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Video\Stitcher\V1\VodAdTagDetail::class);
+ $this->vod_ad_tag_details = $arr;
+
+ return $this;
+ }
+
+ /**
+ * The pagination token.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @return string
+ */
+ public function getNextPageToken()
+ {
+ return $this->next_page_token;
+ }
+
+ /**
+ * The pagination token.
+ *
+ * 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/VideoSticher/src/V1/ListVodStitchDetailsRequest.php b/VideoSticher/src/V1/ListVodStitchDetailsRequest.php
new file mode 100644
index 00000000000..253611d417b
--- /dev/null
+++ b/VideoSticher/src/V1/ListVodStitchDetailsRequest.php
@@ -0,0 +1,139 @@
+google.cloud.video.stitcher.v1.ListVodStitchDetailsRequest
+ */
+class ListVodStitchDetailsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The VOD session where the stitch details belong to, in the form of
+ * `projects/{project}/locations/{location}/vodSessions/{id}`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ private $parent = '';
+ /**
+ * The maximum number of items to return.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ */
+ private $page_size = 0;
+ /**
+ * The next_page_token value returned from a previous List request, if any.
+ *
+ * Generated from protobuf field string page_token = 3;
+ */
+ private $page_token = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The VOD session where the stitch details belong to, in the form of
+ * `projects/{project}/locations/{location}/vodSessions/{id}`.
+ * @type int $page_size
+ * The maximum number of items to return.
+ * @type string $page_token
+ * The next_page_token value returned from a previous List request, if any.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Video\Stitcher\V1\VideoStitcherService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The VOD session where the stitch details belong to, in the form of
+ * `projects/{project}/locations/{location}/vodSessions/{id}`.
+ *
+ * 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. The VOD session where the stitch details belong to, in the form of
+ * `projects/{project}/locations/{location}/vodSessions/{id}`.
+ *
+ * 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;
+ }
+
+ /**
+ * The maximum number of items to return.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @return int
+ */
+ public function getPageSize()
+ {
+ return $this->page_size;
+ }
+
+ /**
+ * The maximum number of items to return.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setPageSize($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->page_size = $var;
+
+ return $this;
+ }
+
+ /**
+ * The next_page_token value returned from a previous List request, if any.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @return string
+ */
+ public function getPageToken()
+ {
+ return $this->page_token;
+ }
+
+ /**
+ * The next_page_token value returned from a previous List request, if any.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->page_token = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/VideoSticher/src/V1/ListVodStitchDetailsResponse.php b/VideoSticher/src/V1/ListVodStitchDetailsResponse.php
new file mode 100644
index 00000000000..c79893290ba
--- /dev/null
+++ b/VideoSticher/src/V1/ListVodStitchDetailsResponse.php
@@ -0,0 +1,101 @@
+google.cloud.video.stitcher.v1.ListVodStitchDetailsResponse
+ */
+class ListVodStitchDetailsResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * A List of stitch Details.
+ *
+ * Generated from protobuf field repeated .google.cloud.video.stitcher.v1.VodStitchDetail vod_stitch_details = 1;
+ */
+ private $vod_stitch_details;
+ /**
+ * The pagination token.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ */
+ private $next_page_token = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Video\Stitcher\V1\VodStitchDetail[]|\Google\Protobuf\Internal\RepeatedField $vod_stitch_details
+ * A List of stitch Details.
+ * @type string $next_page_token
+ * The pagination token.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Video\Stitcher\V1\VideoStitcherService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * A List of stitch Details.
+ *
+ * Generated from protobuf field repeated .google.cloud.video.stitcher.v1.VodStitchDetail vod_stitch_details = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getVodStitchDetails()
+ {
+ return $this->vod_stitch_details;
+ }
+
+ /**
+ * A List of stitch Details.
+ *
+ * Generated from protobuf field repeated .google.cloud.video.stitcher.v1.VodStitchDetail vod_stitch_details = 1;
+ * @param \Google\Cloud\Video\Stitcher\V1\VodStitchDetail[]|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setVodStitchDetails($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Video\Stitcher\V1\VodStitchDetail::class);
+ $this->vod_stitch_details = $arr;
+
+ return $this;
+ }
+
+ /**
+ * The pagination token.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @return string
+ */
+ public function getNextPageToken()
+ {
+ return $this->next_page_token;
+ }
+
+ /**
+ * The pagination token.
+ *
+ * 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/VideoSticher/src/V1/LiveAdTagDetail.php b/VideoSticher/src/V1/LiveAdTagDetail.php
new file mode 100644
index 00000000000..bd3bb4cedca
--- /dev/null
+++ b/VideoSticher/src/V1/LiveAdTagDetail.php
@@ -0,0 +1,105 @@
+google.cloud.video.stitcher.v1.LiveAdTagDetail
+ */
+class LiveAdTagDetail extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The resource name in the form of
+ * `projects/{project}/locations/{location}/liveSessions/{live_session}/liveAdTagDetails/{id}`.
+ *
+ * Generated from protobuf field string name = 1;
+ */
+ private $name = '';
+ /**
+ * A list of ad requests.
+ *
+ * Generated from protobuf field repeated .google.cloud.video.stitcher.v1.AdRequest ad_requests = 2;
+ */
+ private $ad_requests;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * The resource name in the form of
+ * `projects/{project}/locations/{location}/liveSessions/{live_session}/liveAdTagDetails/{id}`.
+ * @type \Google\Cloud\Video\Stitcher\V1\AdRequest[]|\Google\Protobuf\Internal\RepeatedField $ad_requests
+ * A list of ad requests.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Video\Stitcher\V1\AdTagDetails::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The resource name in the form of
+ * `projects/{project}/locations/{location}/liveSessions/{live_session}/liveAdTagDetails/{id}`.
+ *
+ * Generated from protobuf field string name = 1;
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * The resource name in the form of
+ * `projects/{project}/locations/{location}/liveSessions/{live_session}/liveAdTagDetails/{id}`.
+ *
+ * Generated from protobuf field string name = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * A list of ad requests.
+ *
+ * Generated from protobuf field repeated .google.cloud.video.stitcher.v1.AdRequest ad_requests = 2;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getAdRequests()
+ {
+ return $this->ad_requests;
+ }
+
+ /**
+ * A list of ad requests.
+ *
+ * Generated from protobuf field repeated .google.cloud.video.stitcher.v1.AdRequest ad_requests = 2;
+ * @param \Google\Cloud\Video\Stitcher\V1\AdRequest[]|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setAdRequests($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Video\Stitcher\V1\AdRequest::class);
+ $this->ad_requests = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/VideoSticher/src/V1/LiveSession.php b/VideoSticher/src/V1/LiveSession.php
new file mode 100644
index 00000000000..47d75e8476a
--- /dev/null
+++ b/VideoSticher/src/V1/LiveSession.php
@@ -0,0 +1,463 @@
+google.cloud.video.stitcher.v1.LiveSession
+ */
+class LiveSession extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The name of the live session, in the form of
+ * `projects/{project}/locations/{location}/liveSessions/{id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ private $name = '';
+ /**
+ * Output only. The URI to play the live session's ad-stitched stream.
+ *
+ * Generated from protobuf field string play_uri = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ private $play_uri = '';
+ /**
+ * The URI of the live session's source stream.
+ *
+ * Generated from protobuf field string source_uri = 3;
+ */
+ private $source_uri = '';
+ /**
+ * The default ad tag to use when no ad tag ids are specified in an ad break's
+ * SCTE-35 message.
+ * default_ad_tag_id is necessary when `adTagMap` has more than one key. Its
+ * value must be present in the `adTagMap`.
+ *
+ * Generated from protobuf field string default_ad_tag_id = 4;
+ */
+ private $default_ad_tag_id = '';
+ /**
+ * Key value pairs for ad tags. Ads parsed from ad tags must be MP4 videos
+ * each with at least one audio track.
+ *
+ * Generated from protobuf field map ad_tag_map = 5;
+ */
+ private $ad_tag_map;
+ /**
+ * Key value pairs for ad tag macro replacement. If the
+ * specified ad tag URI has macros, this field provides the mapping
+ * to the value that will replace the macro in the ad tag URI.
+ * Macros are designated by square brackets.
+ * For example:
+ * Ad tag URI: "https://doubleclick.google.com/ad/1?geo_id=[geoId]"
+ * Ad tag macros: `{"geoId": "123"}`
+ * Fully qualified ad tag:
+ * `"https://doubleclick.google.com/ad/1?geo_id=123"`
+ *
+ * Generated from protobuf field map ad_tag_macros = 6;
+ */
+ private $ad_tag_macros;
+ /**
+ * Whether client side ad tracking is enabled. If enabled, the client player
+ * is expected to trigger playback and activity events itself. Otherwise,
+ * server side ad tracking is enabled and the Video Stitcher API will trigger
+ * playback events on behalf of the client player.
+ *
+ * Generated from protobuf field bool client_ad_tracking = 7;
+ */
+ private $client_ad_tracking = false;
+ /**
+ * The default slate to use when no slates are specified in an ad break's
+ * SCTE-35 message. When specified, this value must match the ID for a slate
+ * that has already been created via the
+ * [CreateSlate](projects.locations.slates/create) method.
+ *
+ * Generated from protobuf field string default_slate_id = 8;
+ */
+ private $default_slate_id = '';
+ /**
+ * Defines the stitcher behavior in case an ad does not align exactly with
+ * the ad break boundaries. If not specified, the default is `COMPLETE_AD`.
+ *
+ * Generated from protobuf field .google.cloud.video.stitcher.v1.LiveSession.StitchingPolicy stitching_policy = 9;
+ */
+ private $stitching_policy = 0;
+ /**
+ * Additional options that affect the output of the manifest.
+ *
+ * Generated from protobuf field .google.cloud.video.stitcher.v1.ManifestOptions manifest_options = 10;
+ */
+ private $manifest_options = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Output only. The name of the live session, in the form of
+ * `projects/{project}/locations/{location}/liveSessions/{id}`.
+ * @type string $play_uri
+ * Output only. The URI to play the live session's ad-stitched stream.
+ * @type string $source_uri
+ * The URI of the live session's source stream.
+ * @type string $default_ad_tag_id
+ * The default ad tag to use when no ad tag ids are specified in an ad break's
+ * SCTE-35 message.
+ * default_ad_tag_id is necessary when `adTagMap` has more than one key. Its
+ * value must be present in the `adTagMap`.
+ * @type array|\Google\Protobuf\Internal\MapField $ad_tag_map
+ * Key value pairs for ad tags. Ads parsed from ad tags must be MP4 videos
+ * each with at least one audio track.
+ * @type array|\Google\Protobuf\Internal\MapField $ad_tag_macros
+ * Key value pairs for ad tag macro replacement. If the
+ * specified ad tag URI has macros, this field provides the mapping
+ * to the value that will replace the macro in the ad tag URI.
+ * Macros are designated by square brackets.
+ * For example:
+ * Ad tag URI: "https://doubleclick.google.com/ad/1?geo_id=[geoId]"
+ * Ad tag macros: `{"geoId": "123"}`
+ * Fully qualified ad tag:
+ * `"https://doubleclick.google.com/ad/1?geo_id=123"`
+ * @type bool $client_ad_tracking
+ * Whether client side ad tracking is enabled. If enabled, the client player
+ * is expected to trigger playback and activity events itself. Otherwise,
+ * server side ad tracking is enabled and the Video Stitcher API will trigger
+ * playback events on behalf of the client player.
+ * @type string $default_slate_id
+ * The default slate to use when no slates are specified in an ad break's
+ * SCTE-35 message. When specified, this value must match the ID for a slate
+ * that has already been created via the
+ * [CreateSlate](projects.locations.slates/create) method.
+ * @type int $stitching_policy
+ * Defines the stitcher behavior in case an ad does not align exactly with
+ * the ad break boundaries. If not specified, the default is `COMPLETE_AD`.
+ * @type \Google\Cloud\Video\Stitcher\V1\ManifestOptions $manifest_options
+ * Additional options that affect the output of the manifest.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Video\Stitcher\V1\Sessions::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The name of the live session, in the form of
+ * `projects/{project}/locations/{location}/liveSessions/{id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Output only. The name of the live session, in the form of
+ * `projects/{project}/locations/{location}/liveSessions/{id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.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. The URI to play the live session's ad-stitched stream.
+ *
+ * Generated from protobuf field string play_uri = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getPlayUri()
+ {
+ return $this->play_uri;
+ }
+
+ /**
+ * Output only. The URI to play the live session's ad-stitched stream.
+ *
+ * Generated from protobuf field string play_uri = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setPlayUri($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->play_uri = $var;
+
+ return $this;
+ }
+
+ /**
+ * The URI of the live session's source stream.
+ *
+ * Generated from protobuf field string source_uri = 3;
+ * @return string
+ */
+ public function getSourceUri()
+ {
+ return $this->source_uri;
+ }
+
+ /**
+ * The URI of the live session's source stream.
+ *
+ * Generated from protobuf field string source_uri = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setSourceUri($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->source_uri = $var;
+
+ return $this;
+ }
+
+ /**
+ * The default ad tag to use when no ad tag ids are specified in an ad break's
+ * SCTE-35 message.
+ * default_ad_tag_id is necessary when `adTagMap` has more than one key. Its
+ * value must be present in the `adTagMap`.
+ *
+ * Generated from protobuf field string default_ad_tag_id = 4;
+ * @return string
+ */
+ public function getDefaultAdTagId()
+ {
+ return $this->default_ad_tag_id;
+ }
+
+ /**
+ * The default ad tag to use when no ad tag ids are specified in an ad break's
+ * SCTE-35 message.
+ * default_ad_tag_id is necessary when `adTagMap` has more than one key. Its
+ * value must be present in the `adTagMap`.
+ *
+ * Generated from protobuf field string default_ad_tag_id = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setDefaultAdTagId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->default_ad_tag_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Key value pairs for ad tags. Ads parsed from ad tags must be MP4 videos
+ * each with at least one audio track.
+ *
+ * Generated from protobuf field map ad_tag_map = 5;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getAdTagMap()
+ {
+ return $this->ad_tag_map;
+ }
+
+ /**
+ * Key value pairs for ad tags. Ads parsed from ad tags must be MP4 videos
+ * each with at least one audio track.
+ *
+ * Generated from protobuf field map ad_tag_map = 5;
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setAdTagMap($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Video\Stitcher\V1\AdTag::class);
+ $this->ad_tag_map = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Key value pairs for ad tag macro replacement. If the
+ * specified ad tag URI has macros, this field provides the mapping
+ * to the value that will replace the macro in the ad tag URI.
+ * Macros are designated by square brackets.
+ * For example:
+ * Ad tag URI: "https://doubleclick.google.com/ad/1?geo_id=[geoId]"
+ * Ad tag macros: `{"geoId": "123"}`
+ * Fully qualified ad tag:
+ * `"https://doubleclick.google.com/ad/1?geo_id=123"`
+ *
+ * Generated from protobuf field map ad_tag_macros = 6;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getAdTagMacros()
+ {
+ return $this->ad_tag_macros;
+ }
+
+ /**
+ * Key value pairs for ad tag macro replacement. If the
+ * specified ad tag URI has macros, this field provides the mapping
+ * to the value that will replace the macro in the ad tag URI.
+ * Macros are designated by square brackets.
+ * For example:
+ * Ad tag URI: "https://doubleclick.google.com/ad/1?geo_id=[geoId]"
+ * Ad tag macros: `{"geoId": "123"}`
+ * Fully qualified ad tag:
+ * `"https://doubleclick.google.com/ad/1?geo_id=123"`
+ *
+ * Generated from protobuf field map ad_tag_macros = 6;
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setAdTagMacros($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->ad_tag_macros = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Whether client side ad tracking is enabled. If enabled, the client player
+ * is expected to trigger playback and activity events itself. Otherwise,
+ * server side ad tracking is enabled and the Video Stitcher API will trigger
+ * playback events on behalf of the client player.
+ *
+ * Generated from protobuf field bool client_ad_tracking = 7;
+ * @return bool
+ */
+ public function getClientAdTracking()
+ {
+ return $this->client_ad_tracking;
+ }
+
+ /**
+ * Whether client side ad tracking is enabled. If enabled, the client player
+ * is expected to trigger playback and activity events itself. Otherwise,
+ * server side ad tracking is enabled and the Video Stitcher API will trigger
+ * playback events on behalf of the client player.
+ *
+ * Generated from protobuf field bool client_ad_tracking = 7;
+ * @param bool $var
+ * @return $this
+ */
+ public function setClientAdTracking($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->client_ad_tracking = $var;
+
+ return $this;
+ }
+
+ /**
+ * The default slate to use when no slates are specified in an ad break's
+ * SCTE-35 message. When specified, this value must match the ID for a slate
+ * that has already been created via the
+ * [CreateSlate](projects.locations.slates/create) method.
+ *
+ * Generated from protobuf field string default_slate_id = 8;
+ * @return string
+ */
+ public function getDefaultSlateId()
+ {
+ return $this->default_slate_id;
+ }
+
+ /**
+ * The default slate to use when no slates are specified in an ad break's
+ * SCTE-35 message. When specified, this value must match the ID for a slate
+ * that has already been created via the
+ * [CreateSlate](projects.locations.slates/create) method.
+ *
+ * Generated from protobuf field string default_slate_id = 8;
+ * @param string $var
+ * @return $this
+ */
+ public function setDefaultSlateId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->default_slate_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Defines the stitcher behavior in case an ad does not align exactly with
+ * the ad break boundaries. If not specified, the default is `COMPLETE_AD`.
+ *
+ * Generated from protobuf field .google.cloud.video.stitcher.v1.LiveSession.StitchingPolicy stitching_policy = 9;
+ * @return int
+ */
+ public function getStitchingPolicy()
+ {
+ return $this->stitching_policy;
+ }
+
+ /**
+ * Defines the stitcher behavior in case an ad does not align exactly with
+ * the ad break boundaries. If not specified, the default is `COMPLETE_AD`.
+ *
+ * Generated from protobuf field .google.cloud.video.stitcher.v1.LiveSession.StitchingPolicy stitching_policy = 9;
+ * @param int $var
+ * @return $this
+ */
+ public function setStitchingPolicy($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Video\Stitcher\V1\LiveSession\StitchingPolicy::class);
+ $this->stitching_policy = $var;
+
+ return $this;
+ }
+
+ /**
+ * Additional options that affect the output of the manifest.
+ *
+ * Generated from protobuf field .google.cloud.video.stitcher.v1.ManifestOptions manifest_options = 10;
+ * @return \Google\Cloud\Video\Stitcher\V1\ManifestOptions|null
+ */
+ public function getManifestOptions()
+ {
+ return $this->manifest_options;
+ }
+
+ public function hasManifestOptions()
+ {
+ return isset($this->manifest_options);
+ }
+
+ public function clearManifestOptions()
+ {
+ unset($this->manifest_options);
+ }
+
+ /**
+ * Additional options that affect the output of the manifest.
+ *
+ * Generated from protobuf field .google.cloud.video.stitcher.v1.ManifestOptions manifest_options = 10;
+ * @param \Google\Cloud\Video\Stitcher\V1\ManifestOptions $var
+ * @return $this
+ */
+ public function setManifestOptions($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Video\Stitcher\V1\ManifestOptions::class);
+ $this->manifest_options = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/VideoSticher/src/V1/LiveSession/StitchingPolicy.php b/VideoSticher/src/V1/LiveSession/StitchingPolicy.php
new file mode 100644
index 00000000000..760d1ca1371
--- /dev/null
+++ b/VideoSticher/src/V1/LiveSession/StitchingPolicy.php
@@ -0,0 +1,70 @@
+google.cloud.video.stitcher.v1.LiveSession.StitchingPolicy
+ */
+class StitchingPolicy
+{
+ /**
+ * Stitching policy is not specified.
+ *
+ * Generated from protobuf enum STITCHING_POLICY_UNSPECIFIED = 0;
+ */
+ const STITCHING_POLICY_UNSPECIFIED = 0;
+ /**
+ * Finishes stitching the current ad before returning to content.
+ *
+ * Generated from protobuf enum COMPLETE_AD = 1;
+ */
+ const COMPLETE_AD = 1;
+ /**
+ * Finishes stitching the current pod before returning to content.
+ *
+ * Generated from protobuf enum COMPLETE_POD = 2;
+ */
+ const COMPLETE_POD = 2;
+ /**
+ * Cuts an ad short and returns to content in the middle of the ad.
+ *
+ * Generated from protobuf enum CUT_CURRENT = 3;
+ */
+ const CUT_CURRENT = 3;
+
+ private static $valueToName = [
+ self::STITCHING_POLICY_UNSPECIFIED => 'STITCHING_POLICY_UNSPECIFIED',
+ self::COMPLETE_AD => 'COMPLETE_AD',
+ self::COMPLETE_POD => 'COMPLETE_POD',
+ self::CUT_CURRENT => 'CUT_CURRENT',
+ ];
+
+ 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/VideoSticher/src/V1/ManifestOptions.php b/VideoSticher/src/V1/ManifestOptions.php
new file mode 100644
index 00000000000..3078d741526
--- /dev/null
+++ b/VideoSticher/src/V1/ManifestOptions.php
@@ -0,0 +1,109 @@
+google.cloud.video.stitcher.v1.ManifestOptions
+ */
+class ManifestOptions extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * If specified, the output manifest will only return renditions matching the
+ * specified filters.
+ *
+ * Generated from protobuf field repeated .google.cloud.video.stitcher.v1.RenditionFilter include_renditions = 1;
+ */
+ private $include_renditions;
+ /**
+ * If specified, the output manifest will orders the video and muxed
+ * renditions by bitrate according to the ordering policy.
+ *
+ * Generated from protobuf field .google.cloud.video.stitcher.v1.ManifestOptions.OrderPolicy bitrate_order = 2;
+ */
+ private $bitrate_order = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Video\Stitcher\V1\RenditionFilter[]|\Google\Protobuf\Internal\RepeatedField $include_renditions
+ * If specified, the output manifest will only return renditions matching the
+ * specified filters.
+ * @type int $bitrate_order
+ * If specified, the output manifest will orders the video and muxed
+ * renditions by bitrate according to the ordering policy.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Video\Stitcher\V1\Sessions::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * If specified, the output manifest will only return renditions matching the
+ * specified filters.
+ *
+ * Generated from protobuf field repeated .google.cloud.video.stitcher.v1.RenditionFilter include_renditions = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getIncludeRenditions()
+ {
+ return $this->include_renditions;
+ }
+
+ /**
+ * If specified, the output manifest will only return renditions matching the
+ * specified filters.
+ *
+ * Generated from protobuf field repeated .google.cloud.video.stitcher.v1.RenditionFilter include_renditions = 1;
+ * @param \Google\Cloud\Video\Stitcher\V1\RenditionFilter[]|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setIncludeRenditions($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Video\Stitcher\V1\RenditionFilter::class);
+ $this->include_renditions = $arr;
+
+ return $this;
+ }
+
+ /**
+ * If specified, the output manifest will orders the video and muxed
+ * renditions by bitrate according to the ordering policy.
+ *
+ * Generated from protobuf field .google.cloud.video.stitcher.v1.ManifestOptions.OrderPolicy bitrate_order = 2;
+ * @return int
+ */
+ public function getBitrateOrder()
+ {
+ return $this->bitrate_order;
+ }
+
+ /**
+ * If specified, the output manifest will orders the video and muxed
+ * renditions by bitrate according to the ordering policy.
+ *
+ * Generated from protobuf field .google.cloud.video.stitcher.v1.ManifestOptions.OrderPolicy bitrate_order = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setBitrateOrder($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Video\Stitcher\V1\ManifestOptions\OrderPolicy::class);
+ $this->bitrate_order = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/VideoSticher/src/V1/ManifestOptions/OrderPolicy.php b/VideoSticher/src/V1/ManifestOptions/OrderPolicy.php
new file mode 100644
index 00000000000..7e7479e55fc
--- /dev/null
+++ b/VideoSticher/src/V1/ManifestOptions/OrderPolicy.php
@@ -0,0 +1,62 @@
+google.cloud.video.stitcher.v1.ManifestOptions.OrderPolicy
+ */
+class OrderPolicy
+{
+ /**
+ * Ordering policy is not specified.
+ *
+ * Generated from protobuf enum ORDER_POLICY_UNSPECIFIED = 0;
+ */
+ const ORDER_POLICY_UNSPECIFIED = 0;
+ /**
+ * Order by ascending.
+ *
+ * Generated from protobuf enum ASCENDING = 1;
+ */
+ const ASCENDING = 1;
+ /**
+ * Order by descending.
+ *
+ * Generated from protobuf enum DESCENDING = 2;
+ */
+ const DESCENDING = 2;
+
+ private static $valueToName = [
+ self::ORDER_POLICY_UNSPECIFIED => 'ORDER_POLICY_UNSPECIFIED',
+ self::ASCENDING => 'ASCENDING',
+ self::DESCENDING => 'DESCENDING',
+ ];
+
+ 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/VideoSticher/src/V1/ProgressEvent.php b/VideoSticher/src/V1/ProgressEvent.php
new file mode 100644
index 00000000000..bf7fb1cbfb4
--- /dev/null
+++ b/VideoSticher/src/V1/ProgressEvent.php
@@ -0,0 +1,128 @@
+google.cloud.video.stitcher.v1.ProgressEvent
+ */
+class ProgressEvent extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The time when the following tracking events occurs. The time is in
+ * seconds relative to the start of the VOD asset.
+ *
+ * Generated from protobuf field .google.protobuf.Duration time_offset = 1;
+ */
+ private $time_offset = null;
+ /**
+ * The list of progress tracking events for the ad break. These can be of
+ * the following IAB types: `BREAK_START`, `BREAK_END`, `IMPRESSION`,
+ * `CREATIVE_VIEW`, `START`, `FIRST_QUARTILE`, `MIDPOINT`, `THIRD_QUARTILE`,
+ * `COMPLETE`, `PROGRESS`.
+ *
+ * Generated from protobuf field repeated .google.cloud.video.stitcher.v1.Event events = 2;
+ */
+ private $events;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Protobuf\Duration $time_offset
+ * The time when the following tracking events occurs. The time is in
+ * seconds relative to the start of the VOD asset.
+ * @type \Google\Cloud\Video\Stitcher\V1\Event[]|\Google\Protobuf\Internal\RepeatedField $events
+ * The list of progress tracking events for the ad break. These can be of
+ * the following IAB types: `BREAK_START`, `BREAK_END`, `IMPRESSION`,
+ * `CREATIVE_VIEW`, `START`, `FIRST_QUARTILE`, `MIDPOINT`, `THIRD_QUARTILE`,
+ * `COMPLETE`, `PROGRESS`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Video\Stitcher\V1\Events::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The time when the following tracking events occurs. The time is in
+ * seconds relative to the start of the VOD asset.
+ *
+ * Generated from protobuf field .google.protobuf.Duration time_offset = 1;
+ * @return \Google\Protobuf\Duration|null
+ */
+ public function getTimeOffset()
+ {
+ return $this->time_offset;
+ }
+
+ public function hasTimeOffset()
+ {
+ return isset($this->time_offset);
+ }
+
+ public function clearTimeOffset()
+ {
+ unset($this->time_offset);
+ }
+
+ /**
+ * The time when the following tracking events occurs. The time is in
+ * seconds relative to the start of the VOD asset.
+ *
+ * Generated from protobuf field .google.protobuf.Duration time_offset = 1;
+ * @param \Google\Protobuf\Duration $var
+ * @return $this
+ */
+ public function setTimeOffset($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class);
+ $this->time_offset = $var;
+
+ return $this;
+ }
+
+ /**
+ * The list of progress tracking events for the ad break. These can be of
+ * the following IAB types: `BREAK_START`, `BREAK_END`, `IMPRESSION`,
+ * `CREATIVE_VIEW`, `START`, `FIRST_QUARTILE`, `MIDPOINT`, `THIRD_QUARTILE`,
+ * `COMPLETE`, `PROGRESS`.
+ *
+ * Generated from protobuf field repeated .google.cloud.video.stitcher.v1.Event events = 2;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getEvents()
+ {
+ return $this->events;
+ }
+
+ /**
+ * The list of progress tracking events for the ad break. These can be of
+ * the following IAB types: `BREAK_START`, `BREAK_END`, `IMPRESSION`,
+ * `CREATIVE_VIEW`, `START`, `FIRST_QUARTILE`, `MIDPOINT`, `THIRD_QUARTILE`,
+ * `COMPLETE`, `PROGRESS`.
+ *
+ * Generated from protobuf field repeated .google.cloud.video.stitcher.v1.Event events = 2;
+ * @param \Google\Cloud\Video\Stitcher\V1\Event[]|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setEvents($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Video\Stitcher\V1\Event::class);
+ $this->events = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/VideoSticher/src/V1/RenditionFilter.php b/VideoSticher/src/V1/RenditionFilter.php
new file mode 100644
index 00000000000..ce59834167d
--- /dev/null
+++ b/VideoSticher/src/V1/RenditionFilter.php
@@ -0,0 +1,109 @@
+google.cloud.video.stitcher.v1.RenditionFilter
+ */
+class RenditionFilter extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Bitrate in bits per second for the rendition. If set, only renditions with
+ * the exact bitrate will match.
+ *
+ * Generated from protobuf field int32 bitrate_bps = 1;
+ */
+ private $bitrate_bps = 0;
+ /**
+ * Codecs for the rendition. If set, only renditions with the exact value
+ * will match.
+ *
+ * Generated from protobuf field string codecs = 2;
+ */
+ private $codecs = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $bitrate_bps
+ * Bitrate in bits per second for the rendition. If set, only renditions with
+ * the exact bitrate will match.
+ * @type string $codecs
+ * Codecs for the rendition. If set, only renditions with the exact value
+ * will match.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Video\Stitcher\V1\Sessions::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Bitrate in bits per second for the rendition. If set, only renditions with
+ * the exact bitrate will match.
+ *
+ * Generated from protobuf field int32 bitrate_bps = 1;
+ * @return int
+ */
+ public function getBitrateBps()
+ {
+ return $this->bitrate_bps;
+ }
+
+ /**
+ * Bitrate in bits per second for the rendition. If set, only renditions with
+ * the exact bitrate will match.
+ *
+ * Generated from protobuf field int32 bitrate_bps = 1;
+ * @param int $var
+ * @return $this
+ */
+ public function setBitrateBps($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->bitrate_bps = $var;
+
+ return $this;
+ }
+
+ /**
+ * Codecs for the rendition. If set, only renditions with the exact value
+ * will match.
+ *
+ * Generated from protobuf field string codecs = 2;
+ * @return string
+ */
+ public function getCodecs()
+ {
+ return $this->codecs;
+ }
+
+ /**
+ * Codecs for the rendition. If set, only renditions with the exact value
+ * will match.
+ *
+ * Generated from protobuf field string codecs = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setCodecs($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->codecs = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/VideoSticher/src/V1/RequestMetadata.php b/VideoSticher/src/V1/RequestMetadata.php
new file mode 100644
index 00000000000..59a7b03083b
--- /dev/null
+++ b/VideoSticher/src/V1/RequestMetadata.php
@@ -0,0 +1,77 @@
+google.cloud.video.stitcher.v1.RequestMetadata
+ */
+class RequestMetadata extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The HTTP headers of the ad request.
+ *
+ * Generated from protobuf field .google.protobuf.Struct headers = 1;
+ */
+ private $headers = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Protobuf\Struct $headers
+ * The HTTP headers of the ad request.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Video\Stitcher\V1\AdTagDetails::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The HTTP headers of the ad request.
+ *
+ * Generated from protobuf field .google.protobuf.Struct headers = 1;
+ * @return \Google\Protobuf\Struct|null
+ */
+ public function getHeaders()
+ {
+ return $this->headers;
+ }
+
+ public function hasHeaders()
+ {
+ return isset($this->headers);
+ }
+
+ public function clearHeaders()
+ {
+ unset($this->headers);
+ }
+
+ /**
+ * The HTTP headers of the ad request.
+ *
+ * Generated from protobuf field .google.protobuf.Struct headers = 1;
+ * @param \Google\Protobuf\Struct $var
+ * @return $this
+ */
+ public function setHeaders($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Struct::class);
+ $this->headers = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/VideoSticher/src/V1/ResponseMetadata.php b/VideoSticher/src/V1/ResponseMetadata.php
new file mode 100644
index 00000000000..725f9ba8606
--- /dev/null
+++ b/VideoSticher/src/V1/ResponseMetadata.php
@@ -0,0 +1,257 @@
+google.cloud.video.stitcher.v1.ResponseMetadata
+ */
+class ResponseMetadata extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Error message received when making the ad request.
+ *
+ * Generated from protobuf field string error = 1;
+ */
+ private $error = '';
+ /**
+ * Headers from the response.
+ *
+ * Generated from protobuf field .google.protobuf.Struct headers = 2;
+ */
+ private $headers = null;
+ /**
+ * Status code for the response.
+ *
+ * Generated from protobuf field string status_code = 3;
+ */
+ private $status_code = '';
+ /**
+ * Size in bytes of the response.
+ *
+ * Generated from protobuf field int32 size_bytes = 4;
+ */
+ private $size_bytes = 0;
+ /**
+ * Total time elapsed for the response.
+ *
+ * Generated from protobuf field .google.protobuf.Duration duration = 5;
+ */
+ private $duration = null;
+ /**
+ * The body of the response.
+ *
+ * Generated from protobuf field string body = 6;
+ */
+ private $body = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $error
+ * Error message received when making the ad request.
+ * @type \Google\Protobuf\Struct $headers
+ * Headers from the response.
+ * @type string $status_code
+ * Status code for the response.
+ * @type int $size_bytes
+ * Size in bytes of the response.
+ * @type \Google\Protobuf\Duration $duration
+ * Total time elapsed for the response.
+ * @type string $body
+ * The body of the response.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Video\Stitcher\V1\AdTagDetails::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Error message received when making the ad request.
+ *
+ * Generated from protobuf field string error = 1;
+ * @return string
+ */
+ public function getError()
+ {
+ return $this->error;
+ }
+
+ /**
+ * Error message received when making the ad request.
+ *
+ * Generated from protobuf field string error = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setError($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->error = $var;
+
+ return $this;
+ }
+
+ /**
+ * Headers from the response.
+ *
+ * Generated from protobuf field .google.protobuf.Struct headers = 2;
+ * @return \Google\Protobuf\Struct|null
+ */
+ public function getHeaders()
+ {
+ return $this->headers;
+ }
+
+ public function hasHeaders()
+ {
+ return isset($this->headers);
+ }
+
+ public function clearHeaders()
+ {
+ unset($this->headers);
+ }
+
+ /**
+ * Headers from the response.
+ *
+ * Generated from protobuf field .google.protobuf.Struct headers = 2;
+ * @param \Google\Protobuf\Struct $var
+ * @return $this
+ */
+ public function setHeaders($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Struct::class);
+ $this->headers = $var;
+
+ return $this;
+ }
+
+ /**
+ * Status code for the response.
+ *
+ * Generated from protobuf field string status_code = 3;
+ * @return string
+ */
+ public function getStatusCode()
+ {
+ return $this->status_code;
+ }
+
+ /**
+ * Status code for the response.
+ *
+ * Generated from protobuf field string status_code = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setStatusCode($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->status_code = $var;
+
+ return $this;
+ }
+
+ /**
+ * Size in bytes of the response.
+ *
+ * Generated from protobuf field int32 size_bytes = 4;
+ * @return int
+ */
+ public function getSizeBytes()
+ {
+ return $this->size_bytes;
+ }
+
+ /**
+ * Size in bytes of the response.
+ *
+ * Generated from protobuf field int32 size_bytes = 4;
+ * @param int $var
+ * @return $this
+ */
+ public function setSizeBytes($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->size_bytes = $var;
+
+ return $this;
+ }
+
+ /**
+ * Total time elapsed for the response.
+ *
+ * Generated from protobuf field .google.protobuf.Duration duration = 5;
+ * @return \Google\Protobuf\Duration|null
+ */
+ public function getDuration()
+ {
+ return $this->duration;
+ }
+
+ public function hasDuration()
+ {
+ return isset($this->duration);
+ }
+
+ public function clearDuration()
+ {
+ unset($this->duration);
+ }
+
+ /**
+ * Total time elapsed for the response.
+ *
+ * Generated from protobuf field .google.protobuf.Duration duration = 5;
+ * @param \Google\Protobuf\Duration $var
+ * @return $this
+ */
+ public function setDuration($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class);
+ $this->duration = $var;
+
+ return $this;
+ }
+
+ /**
+ * The body of the response.
+ *
+ * Generated from protobuf field string body = 6;
+ * @return string
+ */
+ public function getBody()
+ {
+ return $this->body;
+ }
+
+ /**
+ * The body of the response.
+ *
+ * Generated from protobuf field string body = 6;
+ * @param string $var
+ * @return $this
+ */
+ public function setBody($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->body = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/VideoSticher/src/V1/Slate.php b/VideoSticher/src/V1/Slate.php
new file mode 100644
index 00000000000..26d132423c3
--- /dev/null
+++ b/VideoSticher/src/V1/Slate.php
@@ -0,0 +1,109 @@
+google.cloud.video.stitcher.v1.Slate
+ */
+class Slate extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The name of the slate, in the form of
+ * `projects/{project_number}/locations/{location}/slates/{id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ private $name = '';
+ /**
+ * The URI to fetch the source content for the slate. This URI must return an
+ * MP4 video with at least one audio track.
+ *
+ * Generated from protobuf field string uri = 2;
+ */
+ private $uri = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Output only. The name of the slate, in the form of
+ * `projects/{project_number}/locations/{location}/slates/{id}`.
+ * @type string $uri
+ * The URI to fetch the source content for the slate. This URI must return an
+ * MP4 video with at least one audio track.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Video\Stitcher\V1\Slates::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The name of the slate, in the form of
+ * `projects/{project_number}/locations/{location}/slates/{id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Output only. The name of the slate, in the form of
+ * `projects/{project_number}/locations/{location}/slates/{id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * The URI to fetch the source content for the slate. This URI must return an
+ * MP4 video with at least one audio track.
+ *
+ * Generated from protobuf field string uri = 2;
+ * @return string
+ */
+ public function getUri()
+ {
+ return $this->uri;
+ }
+
+ /**
+ * The URI to fetch the source content for the slate. This URI must return an
+ * MP4 video with at least one audio track.
+ *
+ * Generated from protobuf field string uri = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setUri($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->uri = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/VideoSticher/src/V1/StaticAdResource.php b/VideoSticher/src/V1/StaticAdResource.php
new file mode 100644
index 00000000000..c2817415618
--- /dev/null
+++ b/VideoSticher/src/V1/StaticAdResource.php
@@ -0,0 +1,101 @@
+google.cloud.video.stitcher.v1.StaticAdResource
+ */
+class StaticAdResource extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * URI to the static file for the ad resource.
+ *
+ * Generated from protobuf field string uri = 1;
+ */
+ private $uri = '';
+ /**
+ * Describes the MIME type of the ad resource.
+ *
+ * Generated from protobuf field string creative_type = 2;
+ */
+ private $creative_type = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $uri
+ * URI to the static file for the ad resource.
+ * @type string $creative_type
+ * Describes the MIME type of the ad resource.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Video\Stitcher\V1\Companions::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * URI to the static file for the ad resource.
+ *
+ * Generated from protobuf field string uri = 1;
+ * @return string
+ */
+ public function getUri()
+ {
+ return $this->uri;
+ }
+
+ /**
+ * URI to the static file for the ad resource.
+ *
+ * Generated from protobuf field string uri = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setUri($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->uri = $var;
+
+ return $this;
+ }
+
+ /**
+ * Describes the MIME type of the ad resource.
+ *
+ * Generated from protobuf field string creative_type = 2;
+ * @return string
+ */
+ public function getCreativeType()
+ {
+ return $this->creative_type;
+ }
+
+ /**
+ * Describes the MIME type of the ad resource.
+ *
+ * Generated from protobuf field string creative_type = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setCreativeType($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->creative_type = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/VideoSticher/src/V1/UpdateCdnKeyRequest.php b/VideoSticher/src/V1/UpdateCdnKeyRequest.php
new file mode 100644
index 00000000000..40d92c6522c
--- /dev/null
+++ b/VideoSticher/src/V1/UpdateCdnKeyRequest.php
@@ -0,0 +1,129 @@
+google.cloud.video.stitcher.v1.UpdateCdnKeyRequest
+ */
+class UpdateCdnKeyRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The CDN key resource which replaces the resource on the server.
+ *
+ * Generated from protobuf field .google.cloud.video.stitcher.v1.CdnKey cdn_key = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ private $cdn_key = null;
+ /**
+ * Required. The update mask applies to the resource.
+ * For the `FieldMask` definition, see
+ * https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ private $update_mask = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Video\Stitcher\V1\CdnKey $cdn_key
+ * Required. The CDN key resource which replaces the resource on the server.
+ * @type \Google\Protobuf\FieldMask $update_mask
+ * Required. The update mask applies to the resource.
+ * For the `FieldMask` definition, see
+ * https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Video\Stitcher\V1\VideoStitcherService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The CDN key resource which replaces the resource on the server.
+ *
+ * Generated from protobuf field .google.cloud.video.stitcher.v1.CdnKey cdn_key = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\Video\Stitcher\V1\CdnKey|null
+ */
+ public function getCdnKey()
+ {
+ return $this->cdn_key;
+ }
+
+ public function hasCdnKey()
+ {
+ return isset($this->cdn_key);
+ }
+
+ public function clearCdnKey()
+ {
+ unset($this->cdn_key);
+ }
+
+ /**
+ * Required. The CDN key resource which replaces the resource on the server.
+ *
+ * Generated from protobuf field .google.cloud.video.stitcher.v1.CdnKey cdn_key = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\Video\Stitcher\V1\CdnKey $var
+ * @return $this
+ */
+ public function setCdnKey($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Video\Stitcher\V1\CdnKey::class);
+ $this->cdn_key = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The update mask applies to the resource.
+ * For the `FieldMask` definition, see
+ * https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @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);
+ }
+
+ /**
+ * Required. The update mask applies to the resource.
+ * For the `FieldMask` definition, see
+ * https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @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/VideoSticher/src/V1/UpdateSlateRequest.php b/VideoSticher/src/V1/UpdateSlateRequest.php
new file mode 100644
index 00000000000..e9f80ac4d09
--- /dev/null
+++ b/VideoSticher/src/V1/UpdateSlateRequest.php
@@ -0,0 +1,121 @@
+google.cloud.video.stitcher.v1.UpdateSlateRequest
+ */
+class UpdateSlateRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The resource with updated fields.
+ *
+ * Generated from protobuf field .google.cloud.video.stitcher.v1.Slate slate = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ private $slate = null;
+ /**
+ * Required. The update mask which specifies fields which should be updated.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ private $update_mask = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Video\Stitcher\V1\Slate $slate
+ * Required. The resource with updated fields.
+ * @type \Google\Protobuf\FieldMask $update_mask
+ * Required. The update mask which specifies fields which should be updated.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Video\Stitcher\V1\VideoStitcherService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The resource with updated fields.
+ *
+ * Generated from protobuf field .google.cloud.video.stitcher.v1.Slate slate = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\Video\Stitcher\V1\Slate|null
+ */
+ public function getSlate()
+ {
+ return $this->slate;
+ }
+
+ public function hasSlate()
+ {
+ return isset($this->slate);
+ }
+
+ public function clearSlate()
+ {
+ unset($this->slate);
+ }
+
+ /**
+ * Required. The resource with updated fields.
+ *
+ * Generated from protobuf field .google.cloud.video.stitcher.v1.Slate slate = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\Video\Stitcher\V1\Slate $var
+ * @return $this
+ */
+ public function setSlate($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Video\Stitcher\V1\Slate::class);
+ $this->slate = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The update mask which specifies fields which should be updated.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @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);
+ }
+
+ /**
+ * Required. The update mask which specifies fields which should be updated.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @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/VideoSticher/src/V1/VideoStitcherServiceClient.php b/VideoSticher/src/V1/VideoStitcherServiceClient.php
new file mode 100644
index 00000000000..a58c39750e5
--- /dev/null
+++ b/VideoSticher/src/V1/VideoStitcherServiceClient.php
@@ -0,0 +1,34 @@
+_simpleRequest('/google.cloud.video.stitcher.v1.VideoStitcherService/CreateCdnKey',
+ $argument,
+ ['\Google\Cloud\Video\Stitcher\V1\CdnKey', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Lists all CDN keys in the specified project and location.
+ * @param \Google\Cloud\Video\Stitcher\V1\ListCdnKeysRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function ListCdnKeys(\Google\Cloud\Video\Stitcher\V1\ListCdnKeysRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.video.stitcher.v1.VideoStitcherService/ListCdnKeys',
+ $argument,
+ ['\Google\Cloud\Video\Stitcher\V1\ListCdnKeysResponse', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Returns the specified CDN key.
+ * @param \Google\Cloud\Video\Stitcher\V1\GetCdnKeyRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function GetCdnKey(\Google\Cloud\Video\Stitcher\V1\GetCdnKeyRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.video.stitcher.v1.VideoStitcherService/GetCdnKey',
+ $argument,
+ ['\Google\Cloud\Video\Stitcher\V1\CdnKey', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Deletes the specified CDN key.
+ * @param \Google\Cloud\Video\Stitcher\V1\DeleteCdnKeyRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function DeleteCdnKey(\Google\Cloud\Video\Stitcher\V1\DeleteCdnKeyRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.video.stitcher.v1.VideoStitcherService/DeleteCdnKey',
+ $argument,
+ ['\Google\Protobuf\GPBEmpty', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Updates the specified CDN key. Only update fields specified
+ * in the call method body.
+ * @param \Google\Cloud\Video\Stitcher\V1\UpdateCdnKeyRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function UpdateCdnKey(\Google\Cloud\Video\Stitcher\V1\UpdateCdnKeyRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.video.stitcher.v1.VideoStitcherService/UpdateCdnKey',
+ $argument,
+ ['\Google\Cloud\Video\Stitcher\V1\CdnKey', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Creates a client side playback VOD session and returns the full
+ * tracking and playback metadata of the session.
+ * @param \Google\Cloud\Video\Stitcher\V1\CreateVodSessionRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function CreateVodSession(\Google\Cloud\Video\Stitcher\V1\CreateVodSessionRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.video.stitcher.v1.VideoStitcherService/CreateVodSession',
+ $argument,
+ ['\Google\Cloud\Video\Stitcher\V1\VodSession', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Returns the full tracking, playback metadata, and relevant ad-ops
+ * logs for the specified VOD session.
+ * @param \Google\Cloud\Video\Stitcher\V1\GetVodSessionRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function GetVodSession(\Google\Cloud\Video\Stitcher\V1\GetVodSessionRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.video.stitcher.v1.VideoStitcherService/GetVodSession',
+ $argument,
+ ['\Google\Cloud\Video\Stitcher\V1\VodSession', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Returns a list of detailed stitching information of the specified VOD
+ * session.
+ * @param \Google\Cloud\Video\Stitcher\V1\ListVodStitchDetailsRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function ListVodStitchDetails(\Google\Cloud\Video\Stitcher\V1\ListVodStitchDetailsRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.video.stitcher.v1.VideoStitcherService/ListVodStitchDetails',
+ $argument,
+ ['\Google\Cloud\Video\Stitcher\V1\ListVodStitchDetailsResponse', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Returns the specified stitching information for the specified VOD session.
+ * @param \Google\Cloud\Video\Stitcher\V1\GetVodStitchDetailRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function GetVodStitchDetail(\Google\Cloud\Video\Stitcher\V1\GetVodStitchDetailRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.video.stitcher.v1.VideoStitcherService/GetVodStitchDetail',
+ $argument,
+ ['\Google\Cloud\Video\Stitcher\V1\VodStitchDetail', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Return the list of ad tag details for the specified VOD session.
+ * @param \Google\Cloud\Video\Stitcher\V1\ListVodAdTagDetailsRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function ListVodAdTagDetails(\Google\Cloud\Video\Stitcher\V1\ListVodAdTagDetailsRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.video.stitcher.v1.VideoStitcherService/ListVodAdTagDetails',
+ $argument,
+ ['\Google\Cloud\Video\Stitcher\V1\ListVodAdTagDetailsResponse', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Returns the specified ad tag detail for the specified VOD session.
+ * @param \Google\Cloud\Video\Stitcher\V1\GetVodAdTagDetailRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function GetVodAdTagDetail(\Google\Cloud\Video\Stitcher\V1\GetVodAdTagDetailRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.video.stitcher.v1.VideoStitcherService/GetVodAdTagDetail',
+ $argument,
+ ['\Google\Cloud\Video\Stitcher\V1\VodAdTagDetail', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Return the list of ad tag details for the specified live session.
+ * @param \Google\Cloud\Video\Stitcher\V1\ListLiveAdTagDetailsRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function ListLiveAdTagDetails(\Google\Cloud\Video\Stitcher\V1\ListLiveAdTagDetailsRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.video.stitcher.v1.VideoStitcherService/ListLiveAdTagDetails',
+ $argument,
+ ['\Google\Cloud\Video\Stitcher\V1\ListLiveAdTagDetailsResponse', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Returns the specified ad tag detail for the specified live session.
+ * @param \Google\Cloud\Video\Stitcher\V1\GetLiveAdTagDetailRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function GetLiveAdTagDetail(\Google\Cloud\Video\Stitcher\V1\GetLiveAdTagDetailRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.video.stitcher.v1.VideoStitcherService/GetLiveAdTagDetail',
+ $argument,
+ ['\Google\Cloud\Video\Stitcher\V1\LiveAdTagDetail', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Creates a slate.
+ * @param \Google\Cloud\Video\Stitcher\V1\CreateSlateRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function CreateSlate(\Google\Cloud\Video\Stitcher\V1\CreateSlateRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.video.stitcher.v1.VideoStitcherService/CreateSlate',
+ $argument,
+ ['\Google\Cloud\Video\Stitcher\V1\Slate', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Lists all slates in the specified project and location.
+ * @param \Google\Cloud\Video\Stitcher\V1\ListSlatesRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function ListSlates(\Google\Cloud\Video\Stitcher\V1\ListSlatesRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.video.stitcher.v1.VideoStitcherService/ListSlates',
+ $argument,
+ ['\Google\Cloud\Video\Stitcher\V1\ListSlatesResponse', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Returns the specified slate.
+ * @param \Google\Cloud\Video\Stitcher\V1\GetSlateRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function GetSlate(\Google\Cloud\Video\Stitcher\V1\GetSlateRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.video.stitcher.v1.VideoStitcherService/GetSlate',
+ $argument,
+ ['\Google\Cloud\Video\Stitcher\V1\Slate', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Updates the specified slate.
+ * @param \Google\Cloud\Video\Stitcher\V1\UpdateSlateRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function UpdateSlate(\Google\Cloud\Video\Stitcher\V1\UpdateSlateRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.video.stitcher.v1.VideoStitcherService/UpdateSlate',
+ $argument,
+ ['\Google\Cloud\Video\Stitcher\V1\Slate', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Deletes the specified slate.
+ * @param \Google\Cloud\Video\Stitcher\V1\DeleteSlateRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function DeleteSlate(\Google\Cloud\Video\Stitcher\V1\DeleteSlateRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.video.stitcher.v1.VideoStitcherService/DeleteSlate',
+ $argument,
+ ['\Google\Protobuf\GPBEmpty', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Creates a new live session.
+ * @param \Google\Cloud\Video\Stitcher\V1\CreateLiveSessionRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function CreateLiveSession(\Google\Cloud\Video\Stitcher\V1\CreateLiveSessionRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.video.stitcher.v1.VideoStitcherService/CreateLiveSession',
+ $argument,
+ ['\Google\Cloud\Video\Stitcher\V1\LiveSession', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Returns the details for the specified live session.
+ * @param \Google\Cloud\Video\Stitcher\V1\GetLiveSessionRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function GetLiveSession(\Google\Cloud\Video\Stitcher\V1\GetLiveSessionRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.video.stitcher.v1.VideoStitcherService/GetLiveSession',
+ $argument,
+ ['\Google\Cloud\Video\Stitcher\V1\LiveSession', 'decode'],
+ $metadata, $options);
+ }
+
+}
diff --git a/VideoSticher/src/V1/VodAdTagDetail.php b/VideoSticher/src/V1/VodAdTagDetail.php
new file mode 100644
index 00000000000..af4d4b21d37
--- /dev/null
+++ b/VideoSticher/src/V1/VodAdTagDetail.php
@@ -0,0 +1,105 @@
+google.cloud.video.stitcher.v1.VodAdTagDetail
+ */
+class VodAdTagDetail extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The name of the ad tag detail for the specified VOD session, in the form of
+ * `projects/{project}/locations/{location}/vodSessions/{vod_session_id}/vodAdTagDetails/{id}`.
+ *
+ * Generated from protobuf field string name = 1;
+ */
+ private $name = '';
+ /**
+ * A list of ad requests for one ad tag.
+ *
+ * Generated from protobuf field repeated .google.cloud.video.stitcher.v1.AdRequest ad_requests = 2;
+ */
+ private $ad_requests;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * The name of the ad tag detail for the specified VOD session, in the form of
+ * `projects/{project}/locations/{location}/vodSessions/{vod_session_id}/vodAdTagDetails/{id}`.
+ * @type \Google\Cloud\Video\Stitcher\V1\AdRequest[]|\Google\Protobuf\Internal\RepeatedField $ad_requests
+ * A list of ad requests for one ad tag.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Video\Stitcher\V1\AdTagDetails::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The name of the ad tag detail for the specified VOD session, in the form of
+ * `projects/{project}/locations/{location}/vodSessions/{vod_session_id}/vodAdTagDetails/{id}`.
+ *
+ * Generated from protobuf field string name = 1;
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * The name of the ad tag detail for the specified VOD session, in the form of
+ * `projects/{project}/locations/{location}/vodSessions/{vod_session_id}/vodAdTagDetails/{id}`.
+ *
+ * Generated from protobuf field string name = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * A list of ad requests for one ad tag.
+ *
+ * Generated from protobuf field repeated .google.cloud.video.stitcher.v1.AdRequest ad_requests = 2;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getAdRequests()
+ {
+ return $this->ad_requests;
+ }
+
+ /**
+ * A list of ad requests for one ad tag.
+ *
+ * Generated from protobuf field repeated .google.cloud.video.stitcher.v1.AdRequest ad_requests = 2;
+ * @param \Google\Cloud\Video\Stitcher\V1\AdRequest[]|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setAdRequests($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Video\Stitcher\V1\AdRequest::class);
+ $this->ad_requests = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/VideoSticher/src/V1/VodSession.php b/VideoSticher/src/V1/VodSession.php
new file mode 100644
index 00000000000..7fe2fa4a1ef
--- /dev/null
+++ b/VideoSticher/src/V1/VodSession.php
@@ -0,0 +1,381 @@
+google.cloud.video.stitcher.v1.VodSession
+ */
+class VodSession extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The name of the VOD session, in the form of
+ * `projects/{project_number}/locations/{location}/vodSessions/{id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ private $name = '';
+ /**
+ * Output only. Metadata of what was stitched into the content.
+ *
+ * Generated from protobuf field .google.cloud.video.stitcher.v1.Interstitials interstitials = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ private $interstitials = null;
+ /**
+ * Output only. The playback URI of the stitched content.
+ *
+ * Generated from protobuf field string play_uri = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ private $play_uri = '';
+ /**
+ * Required. URI of the media to stitch.
+ *
+ * Generated from protobuf field string source_uri = 5 [(.google.api.field_behavior) = REQUIRED];
+ */
+ private $source_uri = '';
+ /**
+ * Required. Ad tag URI.
+ *
+ * Generated from protobuf field string ad_tag_uri = 6 [(.google.api.field_behavior) = REQUIRED];
+ */
+ private $ad_tag_uri = '';
+ /**
+ * Key value pairs for ad tag macro replacement. If the
+ * specified ad tag URI has macros, this field provides the mapping
+ * to the value that will replace the macro in the ad tag URI.
+ * Macros are designated by square brackets.
+ * For example:
+ * Ad tag URI: `"https://doubleclick.google.com/ad/1?geo_id=[geoId]"`
+ * Ad tag macro map: `{"geoId": "123"}`
+ * Fully qualified ad tag:
+ * `"`https://doubleclick.google.com/ad/1?geo_id=123"`
+ *
+ * Generated from protobuf field map ad_tag_macro_map = 7;
+ */
+ private $ad_tag_macro_map;
+ /**
+ * Indicates whether client side ad tracking is enabled. If client
+ * side ad tracking is enabled, then the client player is expected
+ * to trigger playback and activity events itself.
+ * If this is set to false, server side ad tracking is enabled,
+ * causing the Video Stitcher service will trigger playback events
+ * on behalf of the client player.
+ *
+ * Generated from protobuf field bool client_ad_tracking = 8;
+ */
+ private $client_ad_tracking = false;
+ /**
+ * Additional options that affect the output of the manifest.
+ *
+ * Generated from protobuf field .google.cloud.video.stitcher.v1.ManifestOptions manifest_options = 9;
+ */
+ private $manifest_options = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Output only. The name of the VOD session, in the form of
+ * `projects/{project_number}/locations/{location}/vodSessions/{id}`.
+ * @type \Google\Cloud\Video\Stitcher\V1\Interstitials $interstitials
+ * Output only. Metadata of what was stitched into the content.
+ * @type string $play_uri
+ * Output only. The playback URI of the stitched content.
+ * @type string $source_uri
+ * Required. URI of the media to stitch.
+ * @type string $ad_tag_uri
+ * Required. Ad tag URI.
+ * @type array|\Google\Protobuf\Internal\MapField $ad_tag_macro_map
+ * Key value pairs for ad tag macro replacement. If the
+ * specified ad tag URI has macros, this field provides the mapping
+ * to the value that will replace the macro in the ad tag URI.
+ * Macros are designated by square brackets.
+ * For example:
+ * Ad tag URI: `"https://doubleclick.google.com/ad/1?geo_id=[geoId]"`
+ * Ad tag macro map: `{"geoId": "123"}`
+ * Fully qualified ad tag:
+ * `"`https://doubleclick.google.com/ad/1?geo_id=123"`
+ * @type bool $client_ad_tracking
+ * Indicates whether client side ad tracking is enabled. If client
+ * side ad tracking is enabled, then the client player is expected
+ * to trigger playback and activity events itself.
+ * If this is set to false, server side ad tracking is enabled,
+ * causing the Video Stitcher service will trigger playback events
+ * on behalf of the client player.
+ * @type \Google\Cloud\Video\Stitcher\V1\ManifestOptions $manifest_options
+ * Additional options that affect the output of the manifest.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Video\Stitcher\V1\Sessions::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The name of the VOD session, in the form of
+ * `projects/{project_number}/locations/{location}/vodSessions/{id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Output only. The name of the VOD session, in the form of
+ * `projects/{project_number}/locations/{location}/vodSessions/{id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.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. Metadata of what was stitched into the content.
+ *
+ * Generated from protobuf field .google.cloud.video.stitcher.v1.Interstitials interstitials = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Video\Stitcher\V1\Interstitials|null
+ */
+ public function getInterstitials()
+ {
+ return $this->interstitials;
+ }
+
+ public function hasInterstitials()
+ {
+ return isset($this->interstitials);
+ }
+
+ public function clearInterstitials()
+ {
+ unset($this->interstitials);
+ }
+
+ /**
+ * Output only. Metadata of what was stitched into the content.
+ *
+ * Generated from protobuf field .google.cloud.video.stitcher.v1.Interstitials interstitials = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Video\Stitcher\V1\Interstitials $var
+ * @return $this
+ */
+ public function setInterstitials($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Video\Stitcher\V1\Interstitials::class);
+ $this->interstitials = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The playback URI of the stitched content.
+ *
+ * Generated from protobuf field string play_uri = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getPlayUri()
+ {
+ return $this->play_uri;
+ }
+
+ /**
+ * Output only. The playback URI of the stitched content.
+ *
+ * Generated from protobuf field string play_uri = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setPlayUri($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->play_uri = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. URI of the media to stitch.
+ *
+ * Generated from protobuf field string source_uri = 5 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getSourceUri()
+ {
+ return $this->source_uri;
+ }
+
+ /**
+ * Required. URI of the media to stitch.
+ *
+ * Generated from protobuf field string source_uri = 5 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setSourceUri($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->source_uri = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Ad tag URI.
+ *
+ * Generated from protobuf field string ad_tag_uri = 6 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getAdTagUri()
+ {
+ return $this->ad_tag_uri;
+ }
+
+ /**
+ * Required. Ad tag URI.
+ *
+ * Generated from protobuf field string ad_tag_uri = 6 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setAdTagUri($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->ad_tag_uri = $var;
+
+ return $this;
+ }
+
+ /**
+ * Key value pairs for ad tag macro replacement. If the
+ * specified ad tag URI has macros, this field provides the mapping
+ * to the value that will replace the macro in the ad tag URI.
+ * Macros are designated by square brackets.
+ * For example:
+ * Ad tag URI: `"https://doubleclick.google.com/ad/1?geo_id=[geoId]"`
+ * Ad tag macro map: `{"geoId": "123"}`
+ * Fully qualified ad tag:
+ * `"`https://doubleclick.google.com/ad/1?geo_id=123"`
+ *
+ * Generated from protobuf field map ad_tag_macro_map = 7;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getAdTagMacroMap()
+ {
+ return $this->ad_tag_macro_map;
+ }
+
+ /**
+ * Key value pairs for ad tag macro replacement. If the
+ * specified ad tag URI has macros, this field provides the mapping
+ * to the value that will replace the macro in the ad tag URI.
+ * Macros are designated by square brackets.
+ * For example:
+ * Ad tag URI: `"https://doubleclick.google.com/ad/1?geo_id=[geoId]"`
+ * Ad tag macro map: `{"geoId": "123"}`
+ * Fully qualified ad tag:
+ * `"`https://doubleclick.google.com/ad/1?geo_id=123"`
+ *
+ * Generated from protobuf field map ad_tag_macro_map = 7;
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setAdTagMacroMap($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->ad_tag_macro_map = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Indicates whether client side ad tracking is enabled. If client
+ * side ad tracking is enabled, then the client player is expected
+ * to trigger playback and activity events itself.
+ * If this is set to false, server side ad tracking is enabled,
+ * causing the Video Stitcher service will trigger playback events
+ * on behalf of the client player.
+ *
+ * Generated from protobuf field bool client_ad_tracking = 8;
+ * @return bool
+ */
+ public function getClientAdTracking()
+ {
+ return $this->client_ad_tracking;
+ }
+
+ /**
+ * Indicates whether client side ad tracking is enabled. If client
+ * side ad tracking is enabled, then the client player is expected
+ * to trigger playback and activity events itself.
+ * If this is set to false, server side ad tracking is enabled,
+ * causing the Video Stitcher service will trigger playback events
+ * on behalf of the client player.
+ *
+ * Generated from protobuf field bool client_ad_tracking = 8;
+ * @param bool $var
+ * @return $this
+ */
+ public function setClientAdTracking($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->client_ad_tracking = $var;
+
+ return $this;
+ }
+
+ /**
+ * Additional options that affect the output of the manifest.
+ *
+ * Generated from protobuf field .google.cloud.video.stitcher.v1.ManifestOptions manifest_options = 9;
+ * @return \Google\Cloud\Video\Stitcher\V1\ManifestOptions|null
+ */
+ public function getManifestOptions()
+ {
+ return $this->manifest_options;
+ }
+
+ public function hasManifestOptions()
+ {
+ return isset($this->manifest_options);
+ }
+
+ public function clearManifestOptions()
+ {
+ unset($this->manifest_options);
+ }
+
+ /**
+ * Additional options that affect the output of the manifest.
+ *
+ * Generated from protobuf field .google.cloud.video.stitcher.v1.ManifestOptions manifest_options = 9;
+ * @param \Google\Cloud\Video\Stitcher\V1\ManifestOptions $var
+ * @return $this
+ */
+ public function setManifestOptions($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Video\Stitcher\V1\ManifestOptions::class);
+ $this->manifest_options = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/VideoSticher/src/V1/VodSessionAd.php b/VideoSticher/src/V1/VodSessionAd.php
new file mode 100644
index 00000000000..b901f7db2b0
--- /dev/null
+++ b/VideoSticher/src/V1/VodSessionAd.php
@@ -0,0 +1,171 @@
+google.cloud.video.stitcher.v1.VodSessionAd
+ */
+class VodSessionAd extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Duration in seconds of the ad.
+ *
+ * Generated from protobuf field .google.protobuf.Duration duration = 1;
+ */
+ private $duration = null;
+ /**
+ * Metadata of companion ads associated with the ad.
+ *
+ * Generated from protobuf field .google.cloud.video.stitcher.v1.CompanionAds companion_ads = 2;
+ */
+ private $companion_ads = null;
+ /**
+ * The list of progress tracking events for the ad break. These can be of
+ * the following IAB types: `MUTE`, `UNMUTE`, `PAUSE`, `CLICK`,
+ * `CLICK_THROUGH`, `REWIND`, `RESUME`, `ERROR`, `FULLSCREEN`,
+ * `EXIT_FULLSCREEN`, `EXPAND`, `COLLAPSE`, `ACCEPT_INVITATION_LINEAR`,
+ * `CLOSE_LINEAR`, `SKIP`.
+ *
+ * Generated from protobuf field repeated .google.cloud.video.stitcher.v1.Event activity_events = 3;
+ */
+ private $activity_events;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Protobuf\Duration $duration
+ * Duration in seconds of the ad.
+ * @type \Google\Cloud\Video\Stitcher\V1\CompanionAds $companion_ads
+ * Metadata of companion ads associated with the ad.
+ * @type \Google\Cloud\Video\Stitcher\V1\Event[]|\Google\Protobuf\Internal\RepeatedField $activity_events
+ * The list of progress tracking events for the ad break. These can be of
+ * the following IAB types: `MUTE`, `UNMUTE`, `PAUSE`, `CLICK`,
+ * `CLICK_THROUGH`, `REWIND`, `RESUME`, `ERROR`, `FULLSCREEN`,
+ * `EXIT_FULLSCREEN`, `EXPAND`, `COLLAPSE`, `ACCEPT_INVITATION_LINEAR`,
+ * `CLOSE_LINEAR`, `SKIP`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Video\Stitcher\V1\Sessions::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Duration in seconds of the ad.
+ *
+ * Generated from protobuf field .google.protobuf.Duration duration = 1;
+ * @return \Google\Protobuf\Duration|null
+ */
+ public function getDuration()
+ {
+ return $this->duration;
+ }
+
+ public function hasDuration()
+ {
+ return isset($this->duration);
+ }
+
+ public function clearDuration()
+ {
+ unset($this->duration);
+ }
+
+ /**
+ * Duration in seconds of the ad.
+ *
+ * Generated from protobuf field .google.protobuf.Duration duration = 1;
+ * @param \Google\Protobuf\Duration $var
+ * @return $this
+ */
+ public function setDuration($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class);
+ $this->duration = $var;
+
+ return $this;
+ }
+
+ /**
+ * Metadata of companion ads associated with the ad.
+ *
+ * Generated from protobuf field .google.cloud.video.stitcher.v1.CompanionAds companion_ads = 2;
+ * @return \Google\Cloud\Video\Stitcher\V1\CompanionAds|null
+ */
+ public function getCompanionAds()
+ {
+ return $this->companion_ads;
+ }
+
+ public function hasCompanionAds()
+ {
+ return isset($this->companion_ads);
+ }
+
+ public function clearCompanionAds()
+ {
+ unset($this->companion_ads);
+ }
+
+ /**
+ * Metadata of companion ads associated with the ad.
+ *
+ * Generated from protobuf field .google.cloud.video.stitcher.v1.CompanionAds companion_ads = 2;
+ * @param \Google\Cloud\Video\Stitcher\V1\CompanionAds $var
+ * @return $this
+ */
+ public function setCompanionAds($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Video\Stitcher\V1\CompanionAds::class);
+ $this->companion_ads = $var;
+
+ return $this;
+ }
+
+ /**
+ * The list of progress tracking events for the ad break. These can be of
+ * the following IAB types: `MUTE`, `UNMUTE`, `PAUSE`, `CLICK`,
+ * `CLICK_THROUGH`, `REWIND`, `RESUME`, `ERROR`, `FULLSCREEN`,
+ * `EXIT_FULLSCREEN`, `EXPAND`, `COLLAPSE`, `ACCEPT_INVITATION_LINEAR`,
+ * `CLOSE_LINEAR`, `SKIP`.
+ *
+ * Generated from protobuf field repeated .google.cloud.video.stitcher.v1.Event activity_events = 3;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getActivityEvents()
+ {
+ return $this->activity_events;
+ }
+
+ /**
+ * The list of progress tracking events for the ad break. These can be of
+ * the following IAB types: `MUTE`, `UNMUTE`, `PAUSE`, `CLICK`,
+ * `CLICK_THROUGH`, `REWIND`, `RESUME`, `ERROR`, `FULLSCREEN`,
+ * `EXIT_FULLSCREEN`, `EXPAND`, `COLLAPSE`, `ACCEPT_INVITATION_LINEAR`,
+ * `CLOSE_LINEAR`, `SKIP`.
+ *
+ * Generated from protobuf field repeated .google.cloud.video.stitcher.v1.Event activity_events = 3;
+ * @param \Google\Cloud\Video\Stitcher\V1\Event[]|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setActivityEvents($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Video\Stitcher\V1\Event::class);
+ $this->activity_events = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/VideoSticher/src/V1/VodSessionAdBreak.php b/VideoSticher/src/V1/VodSessionAdBreak.php
new file mode 100644
index 00000000000..ec1ea9f0183
--- /dev/null
+++ b/VideoSticher/src/V1/VodSessionAdBreak.php
@@ -0,0 +1,189 @@
+google.cloud.video.stitcher.v1.VodSessionAdBreak
+ */
+class VodSessionAdBreak extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * List of events that are expected to be triggered, ordered by time.
+ *
+ * Generated from protobuf field repeated .google.cloud.video.stitcher.v1.ProgressEvent progress_events = 1;
+ */
+ private $progress_events;
+ /**
+ * Ordered list of ads stitched into the ad break.
+ *
+ * Generated from protobuf field repeated .google.cloud.video.stitcher.v1.VodSessionAd ads = 2;
+ */
+ private $ads;
+ /**
+ * Ad break end time in seconds relative to the start of the VOD asset.
+ *
+ * Generated from protobuf field .google.protobuf.Duration end_time_offset = 3;
+ */
+ private $end_time_offset = null;
+ /**
+ * Ad break start time in seconds relative to the start of the VOD asset.
+ *
+ * Generated from protobuf field .google.protobuf.Duration start_time_offset = 4;
+ */
+ private $start_time_offset = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Video\Stitcher\V1\ProgressEvent[]|\Google\Protobuf\Internal\RepeatedField $progress_events
+ * List of events that are expected to be triggered, ordered by time.
+ * @type \Google\Cloud\Video\Stitcher\V1\VodSessionAd[]|\Google\Protobuf\Internal\RepeatedField $ads
+ * Ordered list of ads stitched into the ad break.
+ * @type \Google\Protobuf\Duration $end_time_offset
+ * Ad break end time in seconds relative to the start of the VOD asset.
+ * @type \Google\Protobuf\Duration $start_time_offset
+ * Ad break start time in seconds relative to the start of the VOD asset.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Video\Stitcher\V1\Sessions::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * List of events that are expected to be triggered, ordered by time.
+ *
+ * Generated from protobuf field repeated .google.cloud.video.stitcher.v1.ProgressEvent progress_events = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getProgressEvents()
+ {
+ return $this->progress_events;
+ }
+
+ /**
+ * List of events that are expected to be triggered, ordered by time.
+ *
+ * Generated from protobuf field repeated .google.cloud.video.stitcher.v1.ProgressEvent progress_events = 1;
+ * @param \Google\Cloud\Video\Stitcher\V1\ProgressEvent[]|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setProgressEvents($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Video\Stitcher\V1\ProgressEvent::class);
+ $this->progress_events = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Ordered list of ads stitched into the ad break.
+ *
+ * Generated from protobuf field repeated .google.cloud.video.stitcher.v1.VodSessionAd ads = 2;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getAds()
+ {
+ return $this->ads;
+ }
+
+ /**
+ * Ordered list of ads stitched into the ad break.
+ *
+ * Generated from protobuf field repeated .google.cloud.video.stitcher.v1.VodSessionAd ads = 2;
+ * @param \Google\Cloud\Video\Stitcher\V1\VodSessionAd[]|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setAds($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Video\Stitcher\V1\VodSessionAd::class);
+ $this->ads = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Ad break end time in seconds relative to the start of the VOD asset.
+ *
+ * Generated from protobuf field .google.protobuf.Duration end_time_offset = 3;
+ * @return \Google\Protobuf\Duration|null
+ */
+ public function getEndTimeOffset()
+ {
+ return $this->end_time_offset;
+ }
+
+ public function hasEndTimeOffset()
+ {
+ return isset($this->end_time_offset);
+ }
+
+ public function clearEndTimeOffset()
+ {
+ unset($this->end_time_offset);
+ }
+
+ /**
+ * Ad break end time in seconds relative to the start of the VOD asset.
+ *
+ * Generated from protobuf field .google.protobuf.Duration end_time_offset = 3;
+ * @param \Google\Protobuf\Duration $var
+ * @return $this
+ */
+ public function setEndTimeOffset($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class);
+ $this->end_time_offset = $var;
+
+ return $this;
+ }
+
+ /**
+ * Ad break start time in seconds relative to the start of the VOD asset.
+ *
+ * Generated from protobuf field .google.protobuf.Duration start_time_offset = 4;
+ * @return \Google\Protobuf\Duration|null
+ */
+ public function getStartTimeOffset()
+ {
+ return $this->start_time_offset;
+ }
+
+ public function hasStartTimeOffset()
+ {
+ return isset($this->start_time_offset);
+ }
+
+ public function clearStartTimeOffset()
+ {
+ unset($this->start_time_offset);
+ }
+
+ /**
+ * Ad break start time in seconds relative to the start of the VOD asset.
+ *
+ * Generated from protobuf field .google.protobuf.Duration start_time_offset = 4;
+ * @param \Google\Protobuf\Duration $var
+ * @return $this
+ */
+ public function setStartTimeOffset($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class);
+ $this->start_time_offset = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/VideoSticher/src/V1/VodSessionContent.php b/VideoSticher/src/V1/VodSessionContent.php
new file mode 100644
index 00000000000..a49745492fa
--- /dev/null
+++ b/VideoSticher/src/V1/VodSessionContent.php
@@ -0,0 +1,81 @@
+google.cloud.video.stitcher.v1.VodSessionContent
+ */
+class VodSessionContent extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The total duration in seconds of the content including the ads stitched
+ * in.
+ *
+ * Generated from protobuf field .google.protobuf.Duration duration = 1;
+ */
+ private $duration = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Protobuf\Duration $duration
+ * The total duration in seconds of the content including the ads stitched
+ * in.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Video\Stitcher\V1\Sessions::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The total duration in seconds of the content including the ads stitched
+ * in.
+ *
+ * Generated from protobuf field .google.protobuf.Duration duration = 1;
+ * @return \Google\Protobuf\Duration|null
+ */
+ public function getDuration()
+ {
+ return $this->duration;
+ }
+
+ public function hasDuration()
+ {
+ return isset($this->duration);
+ }
+
+ public function clearDuration()
+ {
+ unset($this->duration);
+ }
+
+ /**
+ * The total duration in seconds of the content including the ads stitched
+ * in.
+ *
+ * Generated from protobuf field .google.protobuf.Duration duration = 1;
+ * @param \Google\Protobuf\Duration $var
+ * @return $this
+ */
+ public function setDuration($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class);
+ $this->duration = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/VideoSticher/src/V1/VodStitchDetail.php b/VideoSticher/src/V1/VodStitchDetail.php
new file mode 100644
index 00000000000..95fdf2b5487
--- /dev/null
+++ b/VideoSticher/src/V1/VodStitchDetail.php
@@ -0,0 +1,105 @@
+google.cloud.video.stitcher.v1.VodStitchDetail
+ */
+class VodStitchDetail extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The name of the stitch detail in the specified VOD session, in the form of
+ * `projects/{project}/locations/{location}/vodSessions/{vod_session_id}/vodStitchDetails/{id}`.
+ *
+ * Generated from protobuf field string name = 1;
+ */
+ private $name = '';
+ /**
+ * A list of ad processing details for the fetched ad playlist.
+ *
+ * Generated from protobuf field repeated .google.cloud.video.stitcher.v1.AdStitchDetail ad_stitch_details = 3;
+ */
+ private $ad_stitch_details;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * The name of the stitch detail in the specified VOD session, in the form of
+ * `projects/{project}/locations/{location}/vodSessions/{vod_session_id}/vodStitchDetails/{id}`.
+ * @type \Google\Cloud\Video\Stitcher\V1\AdStitchDetail[]|\Google\Protobuf\Internal\RepeatedField $ad_stitch_details
+ * A list of ad processing details for the fetched ad playlist.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Video\Stitcher\V1\StitchDetails::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The name of the stitch detail in the specified VOD session, in the form of
+ * `projects/{project}/locations/{location}/vodSessions/{vod_session_id}/vodStitchDetails/{id}`.
+ *
+ * Generated from protobuf field string name = 1;
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * The name of the stitch detail in the specified VOD session, in the form of
+ * `projects/{project}/locations/{location}/vodSessions/{vod_session_id}/vodStitchDetails/{id}`.
+ *
+ * Generated from protobuf field string name = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * A list of ad processing details for the fetched ad playlist.
+ *
+ * Generated from protobuf field repeated .google.cloud.video.stitcher.v1.AdStitchDetail ad_stitch_details = 3;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getAdStitchDetails()
+ {
+ return $this->ad_stitch_details;
+ }
+
+ /**
+ * A list of ad processing details for the fetched ad playlist.
+ *
+ * Generated from protobuf field repeated .google.cloud.video.stitcher.v1.AdStitchDetail ad_stitch_details = 3;
+ * @param \Google\Cloud\Video\Stitcher\V1\AdStitchDetail[]|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setAdStitchDetails($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Video\Stitcher\V1\AdStitchDetail::class);
+ $this->ad_stitch_details = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/VideoSticher/src/V1/gapic_metadata.json b/VideoSticher/src/V1/gapic_metadata.json
new file mode 100644
index 00000000000..4e4b277777e
--- /dev/null
+++ b/VideoSticher/src/V1/gapic_metadata.json
@@ -0,0 +1,118 @@
+{
+ "schema": "1.0",
+ "comment": "This file maps proto services\/RPCs to the corresponding library clients\/methods",
+ "language": "php",
+ "protoPackage": "google.cloud.video.stitcher.v1",
+ "libraryPackage": "Google\\Cloud\\Video\\Stitcher\\V1",
+ "services": {
+ "VideoStitcherService": {
+ "clients": {
+ "grpc": {
+ "libraryClient": "VideoStitcherServiceGapicClient",
+ "rpcs": {
+ "CreateCdnKey": {
+ "methods": [
+ "createCdnKey"
+ ]
+ },
+ "CreateLiveSession": {
+ "methods": [
+ "createLiveSession"
+ ]
+ },
+ "CreateSlate": {
+ "methods": [
+ "createSlate"
+ ]
+ },
+ "CreateVodSession": {
+ "methods": [
+ "createVodSession"
+ ]
+ },
+ "DeleteCdnKey": {
+ "methods": [
+ "deleteCdnKey"
+ ]
+ },
+ "DeleteSlate": {
+ "methods": [
+ "deleteSlate"
+ ]
+ },
+ "GetCdnKey": {
+ "methods": [
+ "getCdnKey"
+ ]
+ },
+ "GetLiveAdTagDetail": {
+ "methods": [
+ "getLiveAdTagDetail"
+ ]
+ },
+ "GetLiveSession": {
+ "methods": [
+ "getLiveSession"
+ ]
+ },
+ "GetSlate": {
+ "methods": [
+ "getSlate"
+ ]
+ },
+ "GetVodAdTagDetail": {
+ "methods": [
+ "getVodAdTagDetail"
+ ]
+ },
+ "GetVodSession": {
+ "methods": [
+ "getVodSession"
+ ]
+ },
+ "GetVodStitchDetail": {
+ "methods": [
+ "getVodStitchDetail"
+ ]
+ },
+ "ListCdnKeys": {
+ "methods": [
+ "listCdnKeys"
+ ]
+ },
+ "ListLiveAdTagDetails": {
+ "methods": [
+ "listLiveAdTagDetails"
+ ]
+ },
+ "ListSlates": {
+ "methods": [
+ "listSlates"
+ ]
+ },
+ "ListVodAdTagDetails": {
+ "methods": [
+ "listVodAdTagDetails"
+ ]
+ },
+ "ListVodStitchDetails": {
+ "methods": [
+ "listVodStitchDetails"
+ ]
+ },
+ "UpdateCdnKey": {
+ "methods": [
+ "updateCdnKey"
+ ]
+ },
+ "UpdateSlate": {
+ "methods": [
+ "updateSlate"
+ ]
+ }
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/VideoSticher/src/V1/resources/video_stitcher_service_client_config.json b/VideoSticher/src/V1/resources/video_stitcher_service_client_config.json
new file mode 100644
index 00000000000..ed339d7f014
--- /dev/null
+++ b/VideoSticher/src/V1/resources/video_stitcher_service_client_config.json
@@ -0,0 +1,144 @@
+{
+ "interfaces": {
+ "google.cloud.video.stitcher.v1.VideoStitcherService": {
+ "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": {
+ "CreateCdnKey": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "CreateLiveSession": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "CreateSlate": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "CreateVodSession": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "DeleteCdnKey": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "DeleteSlate": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "GetCdnKey": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "GetLiveAdTagDetail": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "GetLiveSession": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "GetSlate": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "GetVodAdTagDetail": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "GetVodSession": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "GetVodStitchDetail": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "ListCdnKeys": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "ListLiveAdTagDetails": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "ListSlates": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "ListVodAdTagDetails": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "ListVodStitchDetails": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "UpdateCdnKey": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "UpdateSlate": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ }
+ }
+ }
+ }
+}
diff --git a/VideoSticher/src/V1/resources/video_stitcher_service_descriptor_config.php b/VideoSticher/src/V1/resources/video_stitcher_service_descriptor_config.php
new file mode 100644
index 00000000000..db022b7df05
--- /dev/null
+++ b/VideoSticher/src/V1/resources/video_stitcher_service_descriptor_config.php
@@ -0,0 +1,58 @@
+ [
+ 'google.cloud.video.stitcher.v1.VideoStitcherService' => [
+ 'ListCdnKeys' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getCdnKeys',
+ ],
+ ],
+ 'ListLiveAdTagDetails' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getLiveAdTagDetails',
+ ],
+ ],
+ 'ListSlates' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getSlates',
+ ],
+ ],
+ 'ListVodAdTagDetails' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getVodAdTagDetails',
+ ],
+ ],
+ 'ListVodStitchDetails' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getVodStitchDetails',
+ ],
+ ],
+ ],
+ ],
+];
diff --git a/VideoSticher/src/V1/resources/video_stitcher_service_rest_client_config.php b/VideoSticher/src/V1/resources/video_stitcher_service_rest_client_config.php
new file mode 100644
index 00000000000..b89b5716f58
--- /dev/null
+++ b/VideoSticher/src/V1/resources/video_stitcher_service_rest_client_config.php
@@ -0,0 +1,248 @@
+ [
+ 'google.cloud.video.stitcher.v1.VideoStitcherService' => [
+ 'CreateCdnKey' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*}/cdnKeys',
+ 'body' => 'cdn_key',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'cdn_key_id',
+ ],
+ ],
+ 'CreateLiveSession' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*}/liveSessions',
+ 'body' => 'live_session',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'CreateSlate' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*}/slates',
+ 'body' => 'slate',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'slate_id',
+ ],
+ ],
+ 'CreateVodSession' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*}/vodSessions',
+ 'body' => 'vod_session',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteCdnKey' => [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/cdnKeys/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteSlate' => [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/slates/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetCdnKey' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/cdnKeys/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetLiveAdTagDetail' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/liveSessions/*/liveAdTagDetails/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetLiveSession' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/liveSessions/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetSlate' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/slates/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetVodAdTagDetail' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/vodSessions/*/vodAdTagDetails/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetVodSession' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/vodSessions/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetVodStitchDetail' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/vodSessions/*/vodStitchDetails/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ListCdnKeys' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*}/cdnKeys',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListLiveAdTagDetails' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*/liveSessions/*}/liveAdTagDetails',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListSlates' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*}/slates',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListVodAdTagDetails' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*/vodSessions/*}/vodAdTagDetails',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListVodStitchDetails' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*/vodSessions/*}/vodStitchDetails',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateCdnKey' => [
+ 'method' => 'patch',
+ 'uriTemplate' => '/v1/{cdn_key.name=projects/*/locations/*/cdnKeys/*}',
+ 'body' => 'cdn_key',
+ 'placeholders' => [
+ 'cdn_key.name' => [
+ 'getters' => [
+ 'getCdnKey',
+ 'getName',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'update_mask',
+ ],
+ ],
+ 'UpdateSlate' => [
+ 'method' => 'patch',
+ 'uriTemplate' => '/v1/{slate.name=projects/*/locations/*/slates/*}',
+ 'body' => 'slate',
+ 'placeholders' => [
+ 'slate.name' => [
+ 'getters' => [
+ 'getSlate',
+ 'getName',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'update_mask',
+ ],
+ ],
+ ],
+ ],
+];
diff --git a/VideoSticher/tests/Unit/V1/VideoStitcherServiceClientTest.php b/VideoSticher/tests/Unit/V1/VideoStitcherServiceClientTest.php
new file mode 100644
index 00000000000..3d614192e27
--- /dev/null
+++ b/VideoSticher/tests/Unit/V1/VideoStitcherServiceClientTest.php
@@ -0,0 +1,1484 @@
+getMockBuilder(CredentialsWrapper::class)->disableOriginalConstructor()->getMock();
+ }
+
+ /**
+ * @return VideoStitcherServiceClient
+ */
+ private function createClient(array $options = [])
+ {
+ $options += [
+ 'credentials' => $this->createCredentials(),
+ ];
+ return new VideoStitcherServiceClient($options);
+ }
+
+ /**
+ * @test
+ */
+ public function createCdnKeyTest()
+ {
+ $transport = $this->createTransport();
+ $client = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $hostname = 'hostname-299803597';
+ $expectedResponse = new CdnKey();
+ $expectedResponse->setName($name);
+ $expectedResponse->setHostname($hostname);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $client->locationName('[PROJECT]', '[LOCATION]');
+ $cdnKey = new CdnKey();
+ $cdnKeyId = 'cdnKeyId1672586061';
+ $response = $client->createCdnKey($formattedParent, $cdnKey, $cdnKeyId);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.video.stitcher.v1.VideoStitcherService/CreateCdnKey', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualRequestObject->getCdnKey();
+ $this->assertProtobufEquals($cdnKey, $actualValue);
+ $actualValue = $actualRequestObject->getCdnKeyId();
+ $this->assertProtobufEquals($cdnKeyId, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /**
+ * @test
+ */
+ public function createCdnKeyExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $client = $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 = $client->locationName('[PROJECT]', '[LOCATION]');
+ $cdnKey = new CdnKey();
+ $cdnKeyId = 'cdnKeyId1672586061';
+ try {
+ $client->createCdnKey($formattedParent, $cdnKey, $cdnKeyId);
+ // If the $client 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 createLiveSessionTest()
+ {
+ $transport = $this->createTransport();
+ $client = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $playUri = 'playUri1879098849';
+ $sourceUri = 'sourceUri-1111107768';
+ $defaultAdTagId = 'defaultAdTagId1910479614';
+ $clientAdTracking = false;
+ $defaultSlateId = 'defaultSlateId-1589112385';
+ $expectedResponse = new LiveSession();
+ $expectedResponse->setName($name);
+ $expectedResponse->setPlayUri($playUri);
+ $expectedResponse->setSourceUri($sourceUri);
+ $expectedResponse->setDefaultAdTagId($defaultAdTagId);
+ $expectedResponse->setClientAdTracking($clientAdTracking);
+ $expectedResponse->setDefaultSlateId($defaultSlateId);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $client->liveSessionName('[PROJECT]', '[LOCATION]', '[LIVE_SESSION]');
+ $liveSession = new LiveSession();
+ $response = $client->createLiveSession($formattedParent, $liveSession);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.video.stitcher.v1.VideoStitcherService/CreateLiveSession', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualRequestObject->getLiveSession();
+ $this->assertProtobufEquals($liveSession, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /**
+ * @test
+ */
+ public function createLiveSessionExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $client = $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 = $client->liveSessionName('[PROJECT]', '[LOCATION]', '[LIVE_SESSION]');
+ $liveSession = new LiveSession();
+ try {
+ $client->createLiveSession($formattedParent, $liveSession);
+ // If the $client 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 createSlateTest()
+ {
+ $transport = $this->createTransport();
+ $client = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $uri = 'uri116076';
+ $expectedResponse = new Slate();
+ $expectedResponse->setName($name);
+ $expectedResponse->setUri($uri);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $client->locationName('[PROJECT]', '[LOCATION]');
+ $slateId = 'slateId-1486865023';
+ $slate = new Slate();
+ $response = $client->createSlate($formattedParent, $slateId, $slate);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.video.stitcher.v1.VideoStitcherService/CreateSlate', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualRequestObject->getSlateId();
+ $this->assertProtobufEquals($slateId, $actualValue);
+ $actualValue = $actualRequestObject->getSlate();
+ $this->assertProtobufEquals($slate, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /**
+ * @test
+ */
+ public function createSlateExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $client = $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 = $client->locationName('[PROJECT]', '[LOCATION]');
+ $slateId = 'slateId-1486865023';
+ $slate = new Slate();
+ try {
+ $client->createSlate($formattedParent, $slateId, $slate);
+ // If the $client 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 createVodSessionTest()
+ {
+ $transport = $this->createTransport();
+ $client = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $playUri = 'playUri1879098849';
+ $sourceUri = 'sourceUri-1111107768';
+ $adTagUri = 'adTagUri-1429194965';
+ $clientAdTracking = false;
+ $expectedResponse = new VodSession();
+ $expectedResponse->setName($name);
+ $expectedResponse->setPlayUri($playUri);
+ $expectedResponse->setSourceUri($sourceUri);
+ $expectedResponse->setAdTagUri($adTagUri);
+ $expectedResponse->setClientAdTracking($clientAdTracking);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $client->locationName('[PROJECT]', '[LOCATION]');
+ $vodSession = new VodSession();
+ $vodSessionSourceUri = 'vodSessionSourceUri2085185606';
+ $vodSession->setSourceUri($vodSessionSourceUri);
+ $vodSessionAdTagUri = 'vodSessionAdTagUri-600567328';
+ $vodSession->setAdTagUri($vodSessionAdTagUri);
+ $response = $client->createVodSession($formattedParent, $vodSession);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.video.stitcher.v1.VideoStitcherService/CreateVodSession', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualRequestObject->getVodSession();
+ $this->assertProtobufEquals($vodSession, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /**
+ * @test
+ */
+ public function createVodSessionExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $client = $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 = $client->locationName('[PROJECT]', '[LOCATION]');
+ $vodSession = new VodSession();
+ $vodSessionSourceUri = 'vodSessionSourceUri2085185606';
+ $vodSession->setSourceUri($vodSessionSourceUri);
+ $vodSessionAdTagUri = 'vodSessionAdTagUri-600567328';
+ $vodSession->setAdTagUri($vodSessionAdTagUri);
+ try {
+ $client->createVodSession($formattedParent, $vodSession);
+ // If the $client 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 deleteCdnKeyTest()
+ {
+ $transport = $this->createTransport();
+ $client = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new GPBEmpty();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $client->cdnKeyName('[PROJECT]', '[LOCATION]', '[CDN_KEY]');
+ $client->deleteCdnKey($formattedName);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.video.stitcher.v1.VideoStitcherService/DeleteCdnKey', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /**
+ * @test
+ */
+ public function deleteCdnKeyExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $client = $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 = $client->cdnKeyName('[PROJECT]', '[LOCATION]', '[CDN_KEY]');
+ try {
+ $client->deleteCdnKey($formattedName);
+ // If the $client 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 deleteSlateTest()
+ {
+ $transport = $this->createTransport();
+ $client = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new GPBEmpty();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $client->slateName('[PROJECT]', '[LOCATION]', '[SLATE]');
+ $client->deleteSlate($formattedName);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.video.stitcher.v1.VideoStitcherService/DeleteSlate', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /**
+ * @test
+ */
+ public function deleteSlateExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $client = $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 = $client->slateName('[PROJECT]', '[LOCATION]', '[SLATE]');
+ try {
+ $client->deleteSlate($formattedName);
+ // If the $client 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 getCdnKeyTest()
+ {
+ $transport = $this->createTransport();
+ $client = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $hostname = 'hostname-299803597';
+ $expectedResponse = new CdnKey();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setHostname($hostname);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $client->cdnKeyName('[PROJECT]', '[LOCATION]', '[CDN_KEY]');
+ $response = $client->getCdnKey($formattedName);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.video.stitcher.v1.VideoStitcherService/GetCdnKey', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /**
+ * @test
+ */
+ public function getCdnKeyExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $client = $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 = $client->cdnKeyName('[PROJECT]', '[LOCATION]', '[CDN_KEY]');
+ try {
+ $client->getCdnKey($formattedName);
+ // If the $client 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 getLiveAdTagDetailTest()
+ {
+ $transport = $this->createTransport();
+ $client = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $expectedResponse = new LiveAdTagDetail();
+ $expectedResponse->setName($name2);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $client->liveAdTagDetailName('[PROJECT]', '[LOCATION]', '[LIVE_SESSION]', '[LIVE_AD_TAG_DETAIL]');
+ $response = $client->getLiveAdTagDetail($formattedName);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.video.stitcher.v1.VideoStitcherService/GetLiveAdTagDetail', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /**
+ * @test
+ */
+ public function getLiveAdTagDetailExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $client = $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 = $client->liveAdTagDetailName('[PROJECT]', '[LOCATION]', '[LIVE_SESSION]', '[LIVE_AD_TAG_DETAIL]');
+ try {
+ $client->getLiveAdTagDetail($formattedName);
+ // If the $client 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 getLiveSessionTest()
+ {
+ $transport = $this->createTransport();
+ $client = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $playUri = 'playUri1879098849';
+ $sourceUri = 'sourceUri-1111107768';
+ $defaultAdTagId = 'defaultAdTagId1910479614';
+ $clientAdTracking = false;
+ $defaultSlateId = 'defaultSlateId-1589112385';
+ $expectedResponse = new LiveSession();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setPlayUri($playUri);
+ $expectedResponse->setSourceUri($sourceUri);
+ $expectedResponse->setDefaultAdTagId($defaultAdTagId);
+ $expectedResponse->setClientAdTracking($clientAdTracking);
+ $expectedResponse->setDefaultSlateId($defaultSlateId);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $client->liveSessionName('[PROJECT]', '[LOCATION]', '[LIVE_SESSION]');
+ $response = $client->getLiveSession($formattedName);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.video.stitcher.v1.VideoStitcherService/GetLiveSession', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /**
+ * @test
+ */
+ public function getLiveSessionExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $client = $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 = $client->liveSessionName('[PROJECT]', '[LOCATION]', '[LIVE_SESSION]');
+ try {
+ $client->getLiveSession($formattedName);
+ // If the $client 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 getSlateTest()
+ {
+ $transport = $this->createTransport();
+ $client = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $uri = 'uri116076';
+ $expectedResponse = new Slate();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setUri($uri);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $client->slateName('[PROJECT]', '[LOCATION]', '[SLATE]');
+ $response = $client->getSlate($formattedName);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.video.stitcher.v1.VideoStitcherService/GetSlate', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /**
+ * @test
+ */
+ public function getSlateExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $client = $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 = $client->slateName('[PROJECT]', '[LOCATION]', '[SLATE]');
+ try {
+ $client->getSlate($formattedName);
+ // If the $client 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 getVodAdTagDetailTest()
+ {
+ $transport = $this->createTransport();
+ $client = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $expectedResponse = new VodAdTagDetail();
+ $expectedResponse->setName($name2);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $client->vodAdTagDetailName('[PROJECT]', '[LOCATION]', '[VOD_SESSION]', '[VOD_AD_TAG_DETAIL]');
+ $response = $client->getVodAdTagDetail($formattedName);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.video.stitcher.v1.VideoStitcherService/GetVodAdTagDetail', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /**
+ * @test
+ */
+ public function getVodAdTagDetailExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $client = $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 = $client->vodAdTagDetailName('[PROJECT]', '[LOCATION]', '[VOD_SESSION]', '[VOD_AD_TAG_DETAIL]');
+ try {
+ $client->getVodAdTagDetail($formattedName);
+ // If the $client 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 getVodSessionTest()
+ {
+ $transport = $this->createTransport();
+ $client = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $playUri = 'playUri1879098849';
+ $sourceUri = 'sourceUri-1111107768';
+ $adTagUri = 'adTagUri-1429194965';
+ $clientAdTracking = false;
+ $expectedResponse = new VodSession();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setPlayUri($playUri);
+ $expectedResponse->setSourceUri($sourceUri);
+ $expectedResponse->setAdTagUri($adTagUri);
+ $expectedResponse->setClientAdTracking($clientAdTracking);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $client->vodSessionName('[PROJECT]', '[LOCATION]', '[VOD_SESSION]');
+ $response = $client->getVodSession($formattedName);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.video.stitcher.v1.VideoStitcherService/GetVodSession', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /**
+ * @test
+ */
+ public function getVodSessionExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $client = $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 = $client->vodSessionName('[PROJECT]', '[LOCATION]', '[VOD_SESSION]');
+ try {
+ $client->getVodSession($formattedName);
+ // If the $client 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 getVodStitchDetailTest()
+ {
+ $transport = $this->createTransport();
+ $client = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $expectedResponse = new VodStitchDetail();
+ $expectedResponse->setName($name2);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $client->vodStitchDetailName('[PROJECT]', '[LOCATION]', '[VOD_SESSION]', '[VOD_STITCH_DETAIL]');
+ $response = $client->getVodStitchDetail($formattedName);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.video.stitcher.v1.VideoStitcherService/GetVodStitchDetail', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /**
+ * @test
+ */
+ public function getVodStitchDetailExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $client = $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 = $client->vodStitchDetailName('[PROJECT]', '[LOCATION]', '[VOD_SESSION]', '[VOD_STITCH_DETAIL]');
+ try {
+ $client->getVodStitchDetail($formattedName);
+ // If the $client 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 listCdnKeysTest()
+ {
+ $transport = $this->createTransport();
+ $client = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $cdnKeysElement = new CdnKey();
+ $cdnKeys = [
+ $cdnKeysElement,
+ ];
+ $expectedResponse = new ListCdnKeysResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setCdnKeys($cdnKeys);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $client->locationName('[PROJECT]', '[LOCATION]');
+ $response = $client->listCdnKeys($formattedParent);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getCdnKeys()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.video.stitcher.v1.VideoStitcherService/ListCdnKeys', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /**
+ * @test
+ */
+ public function listCdnKeysExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $client = $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 = $client->locationName('[PROJECT]', '[LOCATION]');
+ try {
+ $client->listCdnKeys($formattedParent);
+ // If the $client 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 listLiveAdTagDetailsTest()
+ {
+ $transport = $this->createTransport();
+ $client = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $liveAdTagDetailsElement = new LiveAdTagDetail();
+ $liveAdTagDetails = [
+ $liveAdTagDetailsElement,
+ ];
+ $expectedResponse = new ListLiveAdTagDetailsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setLiveAdTagDetails($liveAdTagDetails);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $client->liveSessionName('[PROJECT]', '[LOCATION]', '[LIVE_SESSION]');
+ $response = $client->listLiveAdTagDetails($formattedParent);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getLiveAdTagDetails()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.video.stitcher.v1.VideoStitcherService/ListLiveAdTagDetails', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /**
+ * @test
+ */
+ public function listLiveAdTagDetailsExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $client = $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 = $client->liveSessionName('[PROJECT]', '[LOCATION]', '[LIVE_SESSION]');
+ try {
+ $client->listLiveAdTagDetails($formattedParent);
+ // If the $client 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 listSlatesTest()
+ {
+ $transport = $this->createTransport();
+ $client = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $slatesElement = new Slate();
+ $slates = [
+ $slatesElement,
+ ];
+ $expectedResponse = new ListSlatesResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setSlates($slates);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $client->locationName('[PROJECT]', '[LOCATION]');
+ $response = $client->listSlates($formattedParent);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getSlates()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.video.stitcher.v1.VideoStitcherService/ListSlates', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /**
+ * @test
+ */
+ public function listSlatesExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $client = $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 = $client->locationName('[PROJECT]', '[LOCATION]');
+ try {
+ $client->listSlates($formattedParent);
+ // If the $client 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 listVodAdTagDetailsTest()
+ {
+ $transport = $this->createTransport();
+ $client = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $vodAdTagDetailsElement = new VodAdTagDetail();
+ $vodAdTagDetails = [
+ $vodAdTagDetailsElement,
+ ];
+ $expectedResponse = new ListVodAdTagDetailsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setVodAdTagDetails($vodAdTagDetails);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $client->vodSessionName('[PROJECT]', '[LOCATION]', '[VOD_SESSION]');
+ $response = $client->listVodAdTagDetails($formattedParent);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getVodAdTagDetails()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.video.stitcher.v1.VideoStitcherService/ListVodAdTagDetails', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /**
+ * @test
+ */
+ public function listVodAdTagDetailsExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $client = $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 = $client->vodSessionName('[PROJECT]', '[LOCATION]', '[VOD_SESSION]');
+ try {
+ $client->listVodAdTagDetails($formattedParent);
+ // If the $client 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 listVodStitchDetailsTest()
+ {
+ $transport = $this->createTransport();
+ $client = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $vodStitchDetailsElement = new VodStitchDetail();
+ $vodStitchDetails = [
+ $vodStitchDetailsElement,
+ ];
+ $expectedResponse = new ListVodStitchDetailsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setVodStitchDetails($vodStitchDetails);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $client->vodSessionName('[PROJECT]', '[LOCATION]', '[VOD_SESSION]');
+ $response = $client->listVodStitchDetails($formattedParent);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getVodStitchDetails()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.video.stitcher.v1.VideoStitcherService/ListVodStitchDetails', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /**
+ * @test
+ */
+ public function listVodStitchDetailsExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $client = $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 = $client->vodSessionName('[PROJECT]', '[LOCATION]', '[VOD_SESSION]');
+ try {
+ $client->listVodStitchDetails($formattedParent);
+ // If the $client 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 updateCdnKeyTest()
+ {
+ $transport = $this->createTransport();
+ $client = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $hostname = 'hostname-299803597';
+ $expectedResponse = new CdnKey();
+ $expectedResponse->setName($name);
+ $expectedResponse->setHostname($hostname);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $cdnKey = new CdnKey();
+ $updateMask = new FieldMask();
+ $response = $client->updateCdnKey($cdnKey, $updateMask);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.video.stitcher.v1.VideoStitcherService/UpdateCdnKey', $actualFuncCall);
+ $actualValue = $actualRequestObject->getCdnKey();
+ $this->assertProtobufEquals($cdnKey, $actualValue);
+ $actualValue = $actualRequestObject->getUpdateMask();
+ $this->assertProtobufEquals($updateMask, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /**
+ * @test
+ */
+ public function updateCdnKeyExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $client = $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
+ $cdnKey = new CdnKey();
+ $updateMask = new FieldMask();
+ try {
+ $client->updateCdnKey($cdnKey, $updateMask);
+ // If the $client 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 updateSlateTest()
+ {
+ $transport = $this->createTransport();
+ $client = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $uri = 'uri116076';
+ $expectedResponse = new Slate();
+ $expectedResponse->setName($name);
+ $expectedResponse->setUri($uri);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $slate = new Slate();
+ $updateMask = new FieldMask();
+ $response = $client->updateSlate($slate, $updateMask);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.video.stitcher.v1.VideoStitcherService/UpdateSlate', $actualFuncCall);
+ $actualValue = $actualRequestObject->getSlate();
+ $this->assertProtobufEquals($slate, $actualValue);
+ $actualValue = $actualRequestObject->getUpdateMask();
+ $this->assertProtobufEquals($updateMask, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /**
+ * @test
+ */
+ public function updateSlateExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $client = $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
+ $slate = new Slate();
+ $updateMask = new FieldMask();
+ try {
+ $client->updateSlate($slate, $updateMask);
+ // If the $client 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());
+ }
+}
diff --git a/docs/contents/cloud-video-stitcher.json b/docs/contents/cloud-video-stitcher.json
new file mode 100644
index 00000000000..e7717f9dcf6
--- /dev/null
+++ b/docs/contents/cloud-video-stitcher.json
@@ -0,0 +1,15 @@
+{
+ "title": "videostitcher",
+ "defaultService": "videostitcher\/readme",
+ "services": [
+ {
+ "title": "Overview",
+ "type": "videostitcher\/readme"
+ },
+ {
+ "title": "VideoStitcherServiceClient (v1)",
+ "type": "videostitcher\/v1\/videostitcherserviceclient"
+ }
+ ],
+ "pattern": "videostitcher\/\\w{1,}"
+}