.gitignore000064400000000240151742740600006536 0ustar00.DS_Store phpunit.xml composer.phar composer.lock composer-test.lock vendor/ build/artifacts/ artifacts/ .idea .metadata coverage.xml src/Jison/Parser.js *.iml .travis.yml000064400000001204151742740600006660 0ustar00language: php php: - '5.5.38' - '5.6.25' - '7.0' - '7.1' - '7.2' env: - PROTOBUF_C_EXT=true - PROTOBUF_C_EXT=false matrix: exclude: - php: '5.5.38' env: PROTOBUF_C_EXT=true - php: '7.0' env: PROTOBUF_C_EXT=true - php: '7.1' env: PROTOBUF_C_EXT=true sudo: required dist: trusty install: - travis_retry pecl install grpc - if [[ $PROTOBUF_C_EXT =~ ^true ]]; then travis_retry pecl install protobuf-3.4.0; fi - composer install script: - vendor/bin/phpunit --coverage-clover=coverage.xml - vendor/bin/phpcs --standard=./ruleset.xml after_success: - bash <(curl -s https://codecov.io/bash) CONTRIBUTING.md000064400000002654151742740600007012 0ustar00Want to contribute? Great! First, read this page (including the small print at the end). ### Before you contribute Before we can use your code, you must sign the [Google Individual Contributor License Agreement] (https://cla.developers.google.com/about/google-individual) (CLA), which you can do online. The CLA is necessary mainly because you own the copyright to your changes, even after your contribution becomes part of our codebase, so we need your permission to use and distribute your code. We also need to be sure of various other things—for instance that you'll tell us if you know that your code infringes on other people's patents. You don't have to sign the CLA until after you've submitted your code for review and a member has approved it, but you must do it before we can put your code into our codebase. Before you start working on a larger contribution, you should get in touch with us first through the issue tracker with your idea so that we can help out and possibly guide you. Coordinating up front makes it much easier to avoid frustration later on. ### Code reviews All submissions, including submissions by project members, require review. We use Github pull requests for this purpose. ### The small print Contributions made by corporations are covered by a different agreement than the one above, the [Software Grant and Corporate Contributor License Agreement] (https://cla.developers.google.com/about/google-corporate). LICENSE000064400000002700151742740600005556 0ustar00Copyright 2016, Google Inc. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. README.md000064400000004017151742740600006033 0ustar00Google API Core for PHP ================================= [![Build Status](https://img.shields.io/travis/googleapis/gax-php.svg)](https://travis-ci.org/googleapis/gax-php) [![Code Coverage](https://img.shields.io/codecov/c/github/googleapis/gax-php.svg)](https://codecov.io/github/googleapis/gax-php) - [Documentation](http://googleapis.github.io/gax-php) Google API Core for PHP (gax-php) is a set of modules which aids the development of APIs for clients based on [gRPC][] and Google API conventions. Application code will rarely need to use most of the classes within this library directly, but code generated automatically from the API definition files in [Google APIs][] can use services such as page streaming and retry to provide a more convenient and idiomatic API surface to callers. [gRPC]: http://grpc.io [Google APIs]: https://github.com/googleapis/googleapis/ PHP Versions ---------------- gax-php currently requires PHP 5.5 or higher. Contributing ------------ Contributions to this library are always welcome and highly encouraged. See the [CONTRIBUTING][] documentation for more information on how to get started. [CONTRIBUTING]: https://github.com/googleapis/gax-php/blob/master/CONTRIBUTING.md Versioning ---------- This library follows [Semantic Versioning][]. It is currently in major version zero (``0.y.z``), which means that anything may change at any time and the public API should not be considered stable. [Semantic Versioning]: http://semver.org/ Repository Structure ------- All code lives under the src/ directory. Handwritten code lives in the src/ApiCore directory and is contained in the `Google\ApiCore` namespace. Generated classes for protobuf common types and LongRunning client live under the src/ directory, in the appropriate directory and namespace. Code in the metadata/ directory is provided to support generated protobuf classes, and should not be used directly. License ------- BSD - See [LICENSE][] for more information. [LICENSE]: https://github.com/googleapis/gax-php/blob/master/LICENSE composer.json000064400000001266151742740600007301 0ustar00{ "name": "google/gax", "type": "library", "description": "Google API Core for PHP", "keywords": ["google"], "homepage": "https://github.com/googleapis/gax-php", "license": "BSD-3-Clause", "require": { "php": ">=5.5", "google/auth": "~0.9|^1.0", "grpc/grpc": "^1.4", "google/protobuf": "3.4.*" }, "require-dev": { "phpunit/phpunit": "^4.8.36", "squizlabs/php_codesniffer": "2.*" }, "autoload": { "psr-4": { "Google\\": "src", "GPBMetadata\\Google\\": "metadata" } }, "autoload-dev": { "psr-4": { "Google\\": "tests" } } } metadata/Api/Annotations.php000064400000002062151742740600012051 0ustar00internalAddGeneratedFile(hex2bin( "0ac4010a1c676f6f676c652f6170692f616e6e6f746174696f6e732e7072" . "6f746f120a676f6f676c652e6170691a20676f6f676c652f70726f746f62" . "75662f64657363726970746f722e70726f746f426e0a0e636f6d2e676f6f" . "676c652e6170694210416e6e6f746174696f6e7350726f746f50015a4167" . "6f6f676c652e676f6c616e672e6f72672f67656e70726f746f2f676f6f67" . "6c65617069732f6170692f616e6e6f746174696f6e733b616e6e6f746174" . "696f6e73a2020447415049620670726f746f33" )); static::$is_initialized = true; } } metadata/Api/Auth.php000064400000004262151742740600010461 0ustar00internalAddGeneratedFile(hex2bin( "0a88050a15676f6f676c652f6170692f617574682e70726f746f120a676f" . "6f676c652e617069226c0a0e41757468656e7469636174696f6e122d0a05" . "72756c657318032003280b321e2e676f6f676c652e6170692e4175746865" . "6e7469636174696f6e52756c65122b0a0970726f76696465727318042003" . "280b32182e676f6f676c652e6170692e4175746850726f766964657222a9" . "010a1241757468656e7469636174696f6e52756c6512100a0873656c6563" . "746f72180120012809122c0a056f6175746818022001280b321d2e676f6f" . "676c652e6170692e4f41757468526571756972656d656e747312200a1861" . "6c6c6f775f776974686f75745f63726564656e7469616c18052001280812" . "310a0c726571756972656d656e747318072003280b321b2e676f6f676c65" . "2e6170692e41757468526571756972656d656e74226a0a0c417574685072" . "6f7669646572120a0a026964180120012809120e0a066973737565721802" . "2001280912100a086a776b735f75726918032001280912110a0961756469" . "656e63657318042001280912190a11617574686f72697a6174696f6e5f75" . "726c180520012809222d0a114f41757468526571756972656d656e747312" . "180a1063616e6f6e6963616c5f73636f70657318012001280922390a0f41" . "757468526571756972656d656e7412130a0b70726f76696465725f696418" . "012001280912110a0961756469656e636573180220012809426b0a0e636f" . "6d2e676f6f676c652e61706942094175746850726f746f50015a45676f6f" . "676c652e676f6c616e672e6f72672f67656e70726f746f2f676f6f676c65" . "617069732f6170692f73657276696365636f6e6669673b73657276696365" . "636f6e666967a2020447415049620670726f746f33" )); static::$is_initialized = true; } } metadata/Api/Backend.php000064400000002315151742740600011104 0ustar00internalAddGeneratedFile(hex2bin( "0a95020a18676f6f676c652f6170692f6261636b656e642e70726f746f12" . "0a676f6f676c652e61706922310a074261636b656e6412260a0572756c65" . "7318012003280b32172e676f6f676c652e6170692e4261636b656e645275" . "6c6522420a0b4261636b656e6452756c6512100a0873656c6563746f7218" . "0120012809120f0a076164647265737318022001280912100a0864656164" . "6c696e65180320012801426e0a0e636f6d2e676f6f676c652e617069420c" . "4261636b656e6450726f746f50015a45676f6f676c652e676f6c616e672e" . "6f72672f67656e70726f746f2f676f6f676c65617069732f6170692f7365" . "7276696365636f6e6669673b73657276696365636f6e666967a202044741" . "5049620670726f746f33" )); static::$is_initialized = true; } } metadata/Api/Billing.php000064400000002714151742740600011140 0ustar00internalAddGeneratedFile(hex2bin( "0acd020a18676f6f676c652f6170692f62696c6c696e672e70726f746f12" . "0a676f6f676c652e6170691a17676f6f676c652f6170692f6d6574726963" . "2e70726f746f2293010a0742696c6c696e6712450a15636f6e73756d6572" . "5f64657374696e6174696f6e7318082003280b32262e676f6f676c652e61" . "70692e42696c6c696e672e42696c6c696e6744657374696e6174696f6e1a" . "410a1242696c6c696e6744657374696e6174696f6e121a0a126d6f6e6974" . "6f7265645f7265736f75726365180120012809120f0a076d657472696373" . "180220032809426e0a0e636f6d2e676f6f676c652e617069420c42696c6c" . "696e6750726f746f50015a45676f6f676c652e676f6c616e672e6f72672f" . "67656e70726f746f2f676f6f676c65617069732f6170692f736572766963" . "65636f6e6669673b73657276696365636f6e666967a20204474150496206" . "70726f746f33" )); static::$is_initialized = true; } } metadata/Api/ConfigChange.php000064400000003145151742740600012072 0ustar00internalAddGeneratedFile(hex2bin( "0ab1030a1e676f6f676c652f6170692f636f6e6669675f6368616e67652e" . "70726f746f120a676f6f676c652e6170692297010a0c436f6e6669674368" . "616e6765120f0a07656c656d656e7418012001280912110a096f6c645f76" . "616c756518022001280912110a096e65775f76616c756518032001280912" . "2b0a0b6368616e67655f7479706518042001280e32162e676f6f676c652e" . "6170692e4368616e67655479706512230a07616476696365731805200328" . "0b32122e676f6f676c652e6170692e416476696365221d0a064164766963" . "6512130a0b6465736372697074696f6e1802200128092a4f0a0a4368616e" . "676554797065121b0a174348414e47455f545950455f554e535045434946" . "494544100012090a0541444445441001120b0a0752454d4f564544100212" . "0c0a084d4f444946494544100342710a0e636f6d2e676f6f676c652e6170" . "694211436f6e6669674368616e676550726f746f50015a43676f6f676c65" . "2e676f6c616e672e6f72672f67656e70726f746f2f676f6f676c65617069" . "732f6170692f636f6e6669676368616e67653b636f6e6669676368616e67" . "65a2020447415049620670726f746f33" )); static::$is_initialized = true; } } metadata/Api/Consumer.php000064400000002767151742740600011363 0ustar00internalAddGeneratedFile(hex2bin( "0a87030a19676f6f676c652f6170692f636f6e73756d65722e70726f746f" . "120a676f6f676c652e617069223d0a1150726f6a65637450726f70657274" . "69657312280a0a70726f7065727469657318012003280b32142e676f6f67" . "6c652e6170692e50726f706572747922ac010a0850726f7065727479120c" . "0a046e616d65180120012809122f0a047479706518022001280e32212e67" . "6f6f676c652e6170692e50726f70657274792e50726f7065727479547970" . "6512130a0b6465736372697074696f6e180320012809224c0a0c50726f70" . "6572747954797065120f0a0b554e535045434946494544100012090a0549" . "4e543634100112080a04424f4f4c1002120a0a06535452494e471003120a" . "0a06444f55424c45100442680a0e636f6d2e676f6f676c652e617069420d" . "436f6e73756d657250726f746f50015a45676f6f676c652e676f6c616e67" . "2e6f72672f67656e70726f746f2f676f6f676c65617069732f6170692f73" . "657276696365636f6e6669673b73657276696365636f6e66696762067072" . "6f746f33" )); static::$is_initialized = true; } } metadata/Api/Context.php000064400000002321151742740600011176 0ustar00internalAddGeneratedFile(hex2bin( "0a97020a18676f6f676c652f6170692f636f6e746578742e70726f746f12" . "0a676f6f676c652e61706922310a07436f6e7465787412260a0572756c65" . "7318012003280b32172e676f6f676c652e6170692e436f6e746578745275" . "6c6522440a0b436f6e7465787452756c6512100a0873656c6563746f7218" . "012001280912110a0972657175657374656418022003280912100a087072" . "6f7669646564180320032809426e0a0e636f6d2e676f6f676c652e617069" . "420c436f6e7465787450726f746f50015a45676f6f676c652e676f6c616e" . "672e6f72672f67656e70726f746f2f676f6f676c65617069732f6170692f" . "73657276696365636f6e6669673b73657276696365636f6e666967a20204" . "47415049620670726f746f33" )); static::$is_initialized = true; } } metadata/Api/Control.php000064400000001754151742740600011203 0ustar00internalAddGeneratedFile(hex2bin( "0abe010a18676f6f676c652f6170692f636f6e74726f6c2e70726f746f12" . "0a676f6f676c652e617069221e0a07436f6e74726f6c12130a0b656e7669" . "726f6e6d656e74180120012809426e0a0e636f6d2e676f6f676c652e6170" . "69420c436f6e74726f6c50726f746f50015a45676f6f676c652e676f6c61" . "6e672e6f72672f67656e70726f746f2f676f6f676c65617069732f617069" . "2f73657276696365636f6e6669673b73657276696365636f6e666967a202" . "0447415049620670726f746f33" )); static::$is_initialized = true; } } metadata/Api/Distribution.php000064400000005725151742740600012244 0ustar00internalAddGeneratedFile(hex2bin( "0a8c070a1d676f6f676c652f6170692f646973747269627574696f6e2e70" . "726f746f120a676f6f676c652e6170691a19676f6f676c652f70726f746f" . "6275662f616e792e70726f746f1a1f676f6f676c652f70726f746f627566" . "2f74696d657374616d702e70726f746f22ae050a0c446973747269627574" . "696f6e120d0a05636f756e74180120012803120c0a046d65616e18022001" . "280112200a1873756d5f6f665f737175617265645f646576696174696f6e" . "180320012801122d0a0572616e676518042001280b321e2e676f6f676c65" . "2e6170692e446973747269627574696f6e2e52616e6765123e0a0e627563" . "6b65745f6f7074696f6e7318062001280b32262e676f6f676c652e617069" . "2e446973747269627574696f6e2e4275636b65744f7074696f6e7312150a" . "0d6275636b65745f636f756e74731807200328031a210a0552616e676512" . "0b0a036d696e180120012801120b0a036d61781802200128011ab5030a0d" . "4275636b65744f7074696f6e7312470a0e6c696e6561725f6275636b6574" . "7318012001280b322d2e676f6f676c652e6170692e446973747269627574" . "696f6e2e4275636b65744f7074696f6e732e4c696e656172480012510a13" . "6578706f6e656e7469616c5f6275636b65747318022001280b32322e676f" . "6f676c652e6170692e446973747269627574696f6e2e4275636b65744f70" . "74696f6e732e4578706f6e656e7469616c4800124b0a106578706c696369" . "745f6275636b65747318032001280b322f2e676f6f676c652e6170692e44" . "6973747269627574696f6e2e4275636b65744f7074696f6e732e4578706c" . "6963697448001a430a064c696e656172121a0a126e756d5f66696e697465" . "5f6275636b657473180120012805120d0a05776964746818022001280112" . "0e0a066f66667365741803200128011a4f0a0b4578706f6e656e7469616c" . "121a0a126e756d5f66696e6974655f6275636b6574731801200128051215" . "0a0d67726f7774685f666163746f72180220012801120d0a057363616c65" . "1803200128011a1a0a084578706c69636974120e0a06626f756e64731801" . "2003280142090a076f7074696f6e73426a0a0e636f6d2e676f6f676c652e" . "6170694211446973747269627574696f6e50726f746f50015a43676f6f67" . "6c652e676f6c616e672e6f72672f67656e70726f746f2f676f6f676c6561" . "7069732f6170692f646973747269627574696f6e3b646973747269627574" . "696f6e620670726f746f33" )); static::$is_initialized = true; } } metadata/Api/Documentation.php000064400000003422151742740600012366 0ustar00internalAddGeneratedFile(hex2bin( "0af6030a1e676f6f676c652f6170692f646f63756d656e746174696f6e2e" . "70726f746f120a676f6f676c652e61706922a1010a0d446f63756d656e74" . "6174696f6e120f0a0773756d6d617279180120012809121f0a0570616765" . "7318052003280b32102e676f6f676c652e6170692e50616765122c0a0572" . "756c657318032003280b321d2e676f6f676c652e6170692e446f63756d65" . "6e746174696f6e52756c65121e0a16646f63756d656e746174696f6e5f72" . "6f6f745f75726c18042001280912100a086f766572766965771802200128" . "09225b0a11446f63756d656e746174696f6e52756c6512100a0873656c65" . "63746f7218012001280912130a0b6465736372697074696f6e1802200128" . "09121f0a176465707265636174696f6e5f6465736372697074696f6e1803" . "2001280922490a0450616765120c0a046e616d65180120012809120f0a07" . "636f6e74656e7418022001280912220a0873756270616765731803200328" . "0b32102e676f6f676c652e6170692e5061676542740a0e636f6d2e676f6f" . "676c652e6170694212446f63756d656e746174696f6e50726f746f50015a" . "45676f6f676c652e676f6c616e672e6f72672f67656e70726f746f2f676f" . "6f676c65617069732f6170692f73657276696365636f6e6669673b736572" . "76696365636f6e666967a2020447415049620670726f746f33" )); static::$is_initialized = true; } } metadata/Api/Endpoint.php000064400000002374151742740600011342 0ustar00internalAddGeneratedFile(hex2bin( "0a8f020a19676f6f676c652f6170692f656e64706f696e742e70726f746f" . "120a676f6f676c652e617069226d0a08456e64706f696e74120c0a046e61" . "6d65180120012809120f0a07616c6961736573180220032809120c0a0461" . "70697318032003280912100a086665617475726573180420032809120e0a" . "0674617267657418652001280912120a0a616c6c6f775f636f7273180520" . "012808426f0a0e636f6d2e676f6f676c652e617069420d456e64706f696e" . "7450726f746f50015a45676f6f676c652e676f6c616e672e6f72672f6765" . "6e70726f746f2f676f6f676c65617069732f6170692f7365727669636563" . "6f6e6669673b73657276696365636f6e666967a202044741504962067072" . "6f746f33" )); static::$is_initialized = true; } } metadata/Api/Experimental/AuthorizationConfig.php000064400000002136151742740600016201 0ustar00internalAddGeneratedFile(hex2bin( "0ad5010a32676f6f676c652f6170692f6578706572696d656e74616c2f61" . "7574686f72697a6174696f6e5f636f6e6669672e70726f746f120a676f6f" . "676c652e61706922270a13417574686f72697a6174696f6e436f6e666967" . "12100a0870726f766964657218012001280942620a0e636f6d2e676f6f67" . "6c652e6170694218417574686f72697a6174696f6e436f6e66696750726f" . "746f50015a2d676f6f676c652e676f6c616e672e6f72672f67656e70726f" . "746f2f676f6f676c65617069732f6170693b617069a20204474150496206" . "70726f746f33" )); static::$is_initialized = true; } } metadata/Api/Experimental/Experimental.php000064400000002600151742740600014644 0ustar00internalAddGeneratedFile(hex2bin( "0a99020a2a676f6f676c652f6170692f6578706572696d656e74616c2f65" . "78706572696d656e74616c2e70726f746f120a676f6f676c652e6170691a" . "32676f6f676c652f6170692f6578706572696d656e74616c2f617574686f" . "72697a6174696f6e5f636f6e6669672e70726f746f22460a0c4578706572" . "696d656e74616c12360a0d617574686f72697a6174696f6e18082001280b" . "321f2e676f6f676c652e6170692e417574686f72697a6174696f6e436f6e" . "666967425b0a0e636f6d2e676f6f676c652e61706942114578706572696d" . "656e74616c50726f746f50015a2d676f6f676c652e676f6c616e672e6f72" . "672f67656e70726f746f2f676f6f676c65617069732f6170693b617069a2" . "020447415049620670726f746f33" )); static::$is_initialized = true; } } metadata/Api/Http.php000064400000003330151742740600010472 0ustar00internalAddGeneratedFile(hex2bin( "0ae2030a15676f6f676c652f6170692f687474702e70726f746f120a676f" . "6f676c652e617069222b0a044874747012230a0572756c65731801200328" . "0b32142e676f6f676c652e6170692e4874747052756c6522ea010a084874" . "747052756c6512100a0873656c6563746f72180120012809120d0a036765" . "741802200128094800120d0a037075741803200128094800120e0a04706f" . "7374180420012809480012100a0664656c6574651805200128094800120f" . "0a0570617463681806200128094800122f0a06637573746f6d1808200128" . "0b321d2e676f6f676c652e6170692e437573746f6d487474705061747465" . "726e4800120c0a04626f647918072001280912310a136164646974696f6e" . "616c5f62696e64696e6773180b2003280b32142e676f6f676c652e617069" . "2e4874747052756c6542090a077061747465726e222f0a11437573746f6d" . "487474705061747465726e120c0a046b696e64180120012809120c0a0470" . "617468180220012809426a0a0e636f6d2e676f6f676c652e617069420948" . "74747050726f746f50015a41676f6f676c652e676f6c616e672e6f72672f" . "67656e70726f746f2f676f6f676c65617069732f6170692f616e6e6f7461" . "74696f6e733b616e6e6f746174696f6e73f80101a2020447415049620670" . "726f746f33" )); static::$is_initialized = true; } } metadata/Api/Httpbody.php000064400000001776151742740600011364 0ustar00internalAddGeneratedFile(hex2bin( "0ac6010a19676f6f676c652f6170692f68747470626f64792e70726f746f" . "120a676f6f676c652e617069222e0a0848747470426f647912140a0c636f" . "6e74656e745f74797065180120012809120c0a046461746118022001280c" . "42650a0e636f6d2e676f6f676c652e617069420d48747470426f64795072" . "6f746f50015a3b676f6f676c652e676f6c616e672e6f72672f67656e7072" . "6f746f2f676f6f676c65617069732f6170692f68747470626f64793b6874" . "7470626f6479a2020447415049620670726f746f33" )); static::$is_initialized = true; } } metadata/Api/Label.php000064400000002410151742740600010570 0ustar00internalAddGeneratedFile(hex2bin( "0aac020a16676f6f676c652f6170692f6c6162656c2e70726f746f120a67" . "6f6f676c652e617069229c010a0f4c6162656c44657363726970746f7212" . "0b0a036b657918012001280912390a0a76616c75655f7479706518022001" . "280e32252e676f6f676c652e6170692e4c6162656c44657363726970746f" . "722e56616c75655479706512130a0b6465736372697074696f6e18032001" . "2809222c0a0956616c756554797065120a0a06535452494e47100012080a" . "04424f4f4c100112090a05494e5436341002425f0a0e636f6d2e676f6f67" . "6c652e617069420a4c6162656c50726f746f50015a35676f6f676c652e67" . "6f6c616e672e6f72672f67656e70726f746f2f676f6f676c65617069732f" . "6170692f6c6162656c3b6c6162656cf80101a2020447415049620670726f" . "746f33" )); static::$is_initialized = true; } } metadata/Api/Log.php000064400000002350151742740600010275 0ustar00internalAddGeneratedFile(hex2bin( "0a8d020a14676f6f676c652f6170692f6c6f672e70726f746f120a676f6f" . "676c652e61706922750a0d4c6f6744657363726970746f72120c0a046e61" . "6d65180120012809122b0a066c6162656c7318022003280b321b2e676f6f" . "676c652e6170692e4c6162656c44657363726970746f7212130a0b646573" . "6372697074696f6e18032001280912140a0c646973706c61795f6e616d65" . "180420012809426a0a0e636f6d2e676f6f676c652e61706942084c6f6750" . "726f746f50015a45676f6f676c652e676f6c616e672e6f72672f67656e70" . "726f746f2f676f6f676c65617069732f6170692f73657276696365636f6e" . "6669673b73657276696365636f6e666967a2020447415049620670726f74" . "6f33" )); static::$is_initialized = true; } } metadata/Api/Logging.php000064400000002777151742740600011157 0ustar00internalAddGeneratedFile(hex2bin( "0af8020a18676f6f676c652f6170692f6c6f6767696e672e70726f746f12" . "0a676f6f676c652e61706922d7010a074c6f6767696e6712450a1570726f" . "64756365725f64657374696e6174696f6e7318012003280b32262e676f6f" . "676c652e6170692e4c6f6767696e672e4c6f6767696e6744657374696e61" . "74696f6e12450a15636f6e73756d65725f64657374696e6174696f6e7318" . "022003280b32262e676f6f676c652e6170692e4c6f6767696e672e4c6f67" . "67696e6744657374696e6174696f6e1a3e0a124c6f6767696e6744657374" . "696e6174696f6e121a0a126d6f6e69746f7265645f7265736f7572636518" . "0320012809120c0a046c6f6773180120032809426e0a0e636f6d2e676f6f" . "676c652e617069420c4c6f6767696e6750726f746f50015a45676f6f676c" . "652e676f6c616e672e6f72672f67656e70726f746f2f676f6f676c656170" . "69732f6170692f73657276696365636f6e6669673b73657276696365636f" . "6e666967a2020447415049620670726f746f33" )); static::$is_initialized = true; } } metadata/Api/Metric.php000064400000004607151742740600011006 0ustar00internalAddGeneratedFile(hex2bin( "0ada050a17676f6f676c652f6170692f6d65747269632e70726f746f120a" . "676f6f676c652e61706922d2030a104d657472696344657363726970746f" . "72120c0a046e616d65180120012809120c0a047479706518082001280912" . "2b0a066c6162656c7318022003280b321b2e676f6f676c652e6170692e4c" . "6162656c44657363726970746f72123c0a0b6d65747269635f6b696e6418" . "032001280e32272e676f6f676c652e6170692e4d65747269634465736372" . "6970746f722e4d65747269634b696e64123a0a0a76616c75655f74797065" . "18042001280e32262e676f6f676c652e6170692e4d657472696344657363" . "726970746f722e56616c756554797065120c0a04756e6974180520012809" . "12130a0b6465736372697074696f6e18062001280912140a0c646973706c" . "61795f6e616d65180720012809224f0a0a4d65747269634b696e64121b0a" . "174d45545249435f4b494e445f554e535045434946494544100012090a05" . "4741554745100112090a0544454c54411002120e0a0a43554d554c415449" . "5645100322710a0956616c756554797065121a0a1656414c55455f545950" . "455f554e535045434946494544100012080a04424f4f4c100112090a0549" . "4e5436341002120a0a06444f55424c451003120a0a06535452494e471004" . "12100a0c444953545249425554494f4e100512090a054d4f4e4559100622" . "750a064d6574726963120c0a0474797065180320012809122e0a066c6162" . "656c7318022003280b321e2e676f6f676c652e6170692e4d65747269632e" . "4c6162656c73456e7472791a2d0a0b4c6162656c73456e747279120b0a03" . "6b6579180120012809120d0a0576616c75651802200128093a023801425f" . "0a0e636f6d2e676f6f676c652e617069420b4d657472696350726f746f50" . "015a37676f6f676c652e676f6c616e672e6f72672f67656e70726f746f2f" . "676f6f676c65617069732f6170692f6d65747269633b6d6574726963a202" . "0447415049620670726f746f33" )); static::$is_initialized = true; } } metadata/Api/MonitoredResource.php000064400000003375151742740600013234 0ustar00internalAddGeneratedFile(hex2bin( "0ad6030a23676f6f676c652f6170692f6d6f6e69746f7265645f7265736f" . "757263652e70726f746f120a676f6f676c652e6170692291010a1b4d6f6e" . "69746f7265645265736f7572636544657363726970746f72120c0a046e61" . "6d65180520012809120c0a047479706518012001280912140a0c64697370" . "6c61795f6e616d6518022001280912130a0b6465736372697074696f6e18" . "0320012809122b0a066c6162656c7318042003280b321b2e676f6f676c65" . "2e6170692e4c6162656c44657363726970746f72228b010a114d6f6e6974" . "6f7265645265736f75726365120c0a047479706518012001280912390a06" . "6c6162656c7318022003280b32292e676f6f676c652e6170692e4d6f6e69" . "746f7265645265736f757263652e4c6162656c73456e7472791a2d0a0b4c" . "6162656c73456e747279120b0a036b6579180120012809120d0a0576616c" . "75651802200128093a02380142790a0e636f6d2e676f6f676c652e617069" . "42164d6f6e69746f7265645265736f7572636550726f746f50015a43676f" . "6f676c652e676f6c616e672e6f72672f67656e70726f746f2f676f6f676c" . "65617069732f6170692f6d6f6e69746f7265647265733b6d6f6e69746f72" . "6564726573f80101a2020447415049620670726f746f33" )); static::$is_initialized = true; } } metadata/Api/Monitoring.php000064400000003114151742740600011700 0ustar00internalAddGeneratedFile(hex2bin( "0a93030a1b676f6f676c652f6170692f6d6f6e69746f72696e672e70726f" . "746f120a676f6f676c652e61706922ec010a0a4d6f6e69746f72696e6712" . "4b0a1570726f64756365725f64657374696e6174696f6e7318012003280b" . "322c2e676f6f676c652e6170692e4d6f6e69746f72696e672e4d6f6e6974" . "6f72696e6744657374696e6174696f6e124b0a15636f6e73756d65725f64" . "657374696e6174696f6e7318022003280b322c2e676f6f676c652e617069" . "2e4d6f6e69746f72696e672e4d6f6e69746f72696e6744657374696e6174" . "696f6e1a440a154d6f6e69746f72696e6744657374696e6174696f6e121a" . "0a126d6f6e69746f7265645f7265736f75726365180120012809120f0a07" . "6d65747269637318022003280942710a0e636f6d2e676f6f676c652e6170" . "69420f4d6f6e69746f72696e6750726f746f50015a45676f6f676c652e67" . "6f6c616e672e6f72672f67656e70726f746f2f676f6f676c65617069732f" . "6170692f73657276696365636f6e6669673b73657276696365636f6e6669" . "67a2020447415049620670726f746f33" )); static::$is_initialized = true; } } metadata/Api/Quota.php000064400000004377151742740600010660 0ustar00internalAddGeneratedFile(hex2bin( "0aa5050a16676f6f676c652f6170692f71756f74612e70726f746f120a67" . "6f6f676c652e617069225d0a0551756f746112260a066c696d6974731803" . "2003280b32162e676f6f676c652e6170692e51756f74614c696d6974122c" . "0a0c6d65747269635f72756c657318042003280b32162e676f6f676c652e" . "6170692e4d657472696352756c652291010a0a4d657472696352756c6512" . "100a0873656c6563746f72180120012809123d0a0c6d65747269635f636f" . "73747318022003280b32272e676f6f676c652e6170692e4d657472696352" . "756c652e4d6574726963436f737473456e7472791a320a104d6574726963" . "436f737473456e747279120b0a036b6579180120012809120d0a0576616c" . "75651802200128033a0238012295020a0a51756f74614c696d6974120c0a" . "046e616d6518062001280912130a0b6465736372697074696f6e18022001" . "280912150a0d64656661756c745f6c696d697418032001280312110a096d" . "61785f6c696d697418042001280312110a09667265655f74696572180720" . "01280312100a086475726174696f6e180520012809120e0a066d65747269" . "63180820012809120c0a04756e697418092001280912320a0676616c7565" . "73180a2003280b32222e676f6f676c652e6170692e51756f74614c696d69" . "742e56616c756573456e74727912140a0c646973706c61795f6e616d6518" . "0c200128091a2d0a0b56616c756573456e747279120b0a036b6579180120" . "012809120d0a0576616c75651802200128033a023801426c0a0e636f6d2e" . "676f6f676c652e617069420a51756f746150726f746f50015a45676f6f67" . "6c652e676f6c616e672e6f72672f67656e70726f746f2f676f6f676c6561" . "7069732f6170692f73657276696365636f6e6669673b7365727669636563" . "6f6e666967a2020447415049620670726f746f33" )); static::$is_initialized = true; } } metadata/Api/Service.php000064400000014621151742740600011160 0ustar00internalAddGeneratedFile(hex2bin( "0aaa0e0a18676f6f676c652f6170692f736572766963652e70726f746f12" . "0a676f6f676c652e6170691a15676f6f676c652f6170692f617574682e70" . "726f746f1a18676f6f676c652f6170692f6261636b656e642e70726f746f" . "1a18676f6f676c652f6170692f62696c6c696e672e70726f746f1a18676f" . "6f676c652f6170692f636f6e746578742e70726f746f1a18676f6f676c65" . "2f6170692f636f6e74726f6c2e70726f746f1a1e676f6f676c652f617069" . "2f646f63756d656e746174696f6e2e70726f746f1a19676f6f676c652f61" . "70692f656e64706f696e742e70726f746f1a2a676f6f676c652f6170692f" . "6578706572696d656e74616c2f6578706572696d656e74616c2e70726f74" . "6f1a15676f6f676c652f6170692f687474702e70726f746f1a16676f6f67" . "6c652f6170692f6c6162656c2e70726f746f1a14676f6f676c652f617069" . "2f6c6f672e70726f746f1a18676f6f676c652f6170692f6c6f6767696e67" . "2e70726f746f1a17676f6f676c652f6170692f6d65747269632e70726f74" . "6f1a23676f6f676c652f6170692f6d6f6e69746f7265645f7265736f7572" . "63652e70726f746f1a1b676f6f676c652f6170692f6d6f6e69746f72696e" . "672e70726f746f1a16676f6f676c652f6170692f71756f74612e70726f74" . "6f1a1c676f6f676c652f6170692f736f757263655f696e666f2e70726f74" . "6f1a21676f6f676c652f6170692f73797374656d5f706172616d65746572" . "2e70726f746f1a16676f6f676c652f6170692f75736167652e70726f746f" . "1a19676f6f676c652f70726f746f6275662f616e792e70726f746f1a1967" . "6f6f676c652f70726f746f6275662f6170692e70726f746f1a1a676f6f67" . "6c652f70726f746f6275662f747970652e70726f746f1a1e676f6f676c65" . "2f70726f746f6275662f77726170706572732e70726f746f2286080a0753" . "65727669636512340a0e636f6e6669675f76657273696f6e18142001280b" . "321c2e676f6f676c652e70726f746f6275662e55496e74333256616c7565" . "120c0a046e616d65180120012809120a0a026964182120012809120d0a05" . "7469746c65180220012809121b0a1370726f64756365725f70726f6a6563" . "745f696418162001280912220a046170697318032003280b32142e676f6f" . "676c652e70726f746f6275662e41706912240a0574797065731804200328" . "0b32152e676f6f676c652e70726f746f6275662e5479706512240a05656e" . "756d7318052003280b32152e676f6f676c652e70726f746f6275662e456e" . "756d12300a0d646f63756d656e746174696f6e18062001280b32192e676f" . "6f676c652e6170692e446f63756d656e746174696f6e12240a076261636b" . "656e6418082001280b32132e676f6f676c652e6170692e4261636b656e64" . "121e0a046874747018092001280b32102e676f6f676c652e6170692e4874" . "747012200a0571756f7461180a2001280b32112e676f6f676c652e617069" . "2e51756f746112320a0e61757468656e7469636174696f6e180b2001280b" . "321a2e676f6f676c652e6170692e41757468656e7469636174696f6e1224" . "0a07636f6e74657874180c2001280b32132e676f6f676c652e6170692e43" . "6f6e7465787412200a057573616765180f2001280b32112e676f6f676c65" . "2e6170692e557361676512270a09656e64706f696e747318122003280b32" . "142e676f6f676c652e6170692e456e64706f696e7412240a07636f6e7472" . "6f6c18152001280b32132e676f6f676c652e6170692e436f6e74726f6c12" . "270a046c6f677318172003280b32192e676f6f676c652e6170692e4c6f67" . "44657363726970746f72122d0a076d65747269637318182003280b321c2e" . "676f6f676c652e6170692e4d657472696344657363726970746f7212440a" . "136d6f6e69746f7265645f7265736f757263657318192003280b32272e67" . "6f6f676c652e6170692e4d6f6e69746f7265645265736f75726365446573" . "63726970746f7212240a0762696c6c696e67181a2001280b32132e676f6f" . "676c652e6170692e42696c6c696e6712240a076c6f6767696e67181b2001" . "280b32132e676f6f676c652e6170692e4c6f6767696e67122a0a0a6d6f6e" . "69746f72696e67181c2001280b32162e676f6f676c652e6170692e4d6f6e" . "69746f72696e6712370a1173797374656d5f706172616d6574657273181d" . "2001280b321c2e676f6f676c652e6170692e53797374656d506172616d65" . "74657273122b0a0b736f757263655f696e666f18252001280b32162e676f" . "6f676c652e6170692e536f75726365496e666f122e0a0c6578706572696d" . "656e74616c18652001280b32182e676f6f676c652e6170692e4578706572" . "696d656e74616c426e0a0e636f6d2e676f6f676c652e617069420c536572" . "7669636550726f746f50015a45676f6f676c652e676f6c616e672e6f7267" . "2f67656e70726f746f2f676f6f676c65617069732f6170692f7365727669" . "6365636f6e6669673b73657276696365636f6e666967a202044741504962" . "0670726f746f33" )); static::$is_initialized = true; } } metadata/Api/SourceInfo.php000064400000002174151742740600011634 0ustar00internalAddGeneratedFile(hex2bin( "0adf010a1c676f6f676c652f6170692f736f757263655f696e666f2e7072" . "6f746f120a676f6f676c652e61706922380a0a536f75726365496e666f12" . "2a0a0c736f757263655f66696c657318012003280b32142e676f6f676c65" . "2e70726f746f6275662e416e7942710a0e636f6d2e676f6f676c652e6170" . "69420f536f75726365496e666f50726f746f50015a45676f6f676c652e67" . "6f6c616e672e6f72672f67656e70726f746f2f676f6f676c65617069732f" . "6170692f73657276696365636f6e6669673b73657276696365636f6e6669" . "67a2020447415049620670726f746f33" )); static::$is_initialized = true; } } metadata/Api/SystemParameter.php000064400000003070151742740600012701 0ustar00internalAddGeneratedFile(hex2bin( "0aa0030a21676f6f676c652f6170692f73797374656d5f706172616d6574" . "65722e70726f746f120a676f6f676c652e61706922420a1053797374656d" . "506172616d6574657273122e0a0572756c657318012003280b321f2e676f" . "6f676c652e6170692e53797374656d506172616d6574657252756c652258" . "0a1353797374656d506172616d6574657252756c6512100a0873656c6563" . "746f72180120012809122f0a0a706172616d657465727318022003280b32" . "1b2e676f6f676c652e6170692e53797374656d506172616d657465722251" . "0a0f53797374656d506172616d65746572120c0a046e616d651801200128" . "0912130a0b687474705f686561646572180220012809121b0a1375726c5f" . "71756572795f706172616d6574657218032001280942760a0e636f6d2e67" . "6f6f676c652e617069421453797374656d506172616d6574657250726f74" . "6f50015a45676f6f676c652e676f6c616e672e6f72672f67656e70726f74" . "6f2f676f6f676c65617069732f6170692f73657276696365636f6e666967" . "3b73657276696365636f6e666967a2020447415049620670726f746f33" )); static::$is_initialized = true; } } metadata/Api/Usage.php000064400000002704151742740600010623 0ustar00internalAddGeneratedFile(hex2bin( "0ae5020a16676f6f676c652f6170692f75736167652e70726f746f120a67" . "6f6f676c652e617069226a0a05557361676512140a0c726571756972656d" . "656e747318012003280912240a0572756c657318062003280b32152e676f" . "6f676c652e6170692e557361676552756c6512250a1d70726f6475636572" . "5f6e6f74696669636174696f6e5f6368616e6e656c180720012809225d0a" . "09557361676552756c6512100a0873656c6563746f721801200128091220" . "0a18616c6c6f775f756e726567697374657265645f63616c6c7318022001" . "2808121c0a14736b69705f736572766963655f636f6e74726f6c18032001" . "2808426c0a0e636f6d2e676f6f676c652e617069420a557361676550726f" . "746f50015a45676f6f676c652e676f6c616e672e6f72672f67656e70726f" . "746f2f676f6f676c65617069732f6170692f73657276696365636f6e6669" . "673b73657276696365636f6e666967a2020447415049620670726f746f33" )); static::$is_initialized = true; } } metadata/Cloud/Audit/AuditLog.php000064400000006033151742740600012671 0ustar00internalAddGeneratedFile(hex2bin( "0a92070a22676f6f676c652f636c6f75642f61756469742f61756469745f" . "6c6f672e70726f746f1212676f6f676c652e636c6f75642e61756469741a" . "19676f6f676c652f70726f746f6275662f616e792e70726f746f1a1c676f" . "6f676c652f70726f746f6275662f7374727563742e70726f746f1a17676f" . "6f676c652f7270632f7374617475732e70726f746f22d4030a0841756469" . "744c6f6712140a0c736572766963655f6e616d6518072001280912130a0b" . "6d6574686f645f6e616d6518082001280912150a0d7265736f757263655f" . "6e616d65180b20012809121a0a126e756d5f726573706f6e73655f697465" . "6d73180c2001280312220a0673746174757318022001280b32122e676f6f" . "676c652e7270632e53746174757312430a1361757468656e746963617469" . "6f6e5f696e666f18032001280b32262e676f6f676c652e636c6f75642e61" . "756469742e41757468656e7469636174696f6e496e666f12410a12617574" . "686f72697a6174696f6e5f696e666f18092003280b32252e676f6f676c65" . "2e636c6f75642e61756469742e417574686f72697a6174696f6e496e666f" . "123d0a10726571756573745f6d6574616461746118042001280b32232e67" . "6f6f676c652e636c6f75642e61756469742e526571756573744d65746164" . "61746112280a077265717565737418102001280b32172e676f6f676c652e" . "70726f746f6275662e53747275637412290a08726573706f6e7365181120" . "01280b32172e676f6f676c652e70726f746f6275662e537472756374122a" . "0a0c736572766963655f64617461180f2001280b32142e676f6f676c652e" . "70726f746f6275662e416e79222d0a1241757468656e7469636174696f6e" . "496e666f12170a0f7072696e636970616c5f656d61696c18012001280922" . "4a0a11417574686f72697a6174696f6e496e666f12100a087265736f7572" . "636518012001280912120a0a7065726d697373696f6e180220012809120f" . "0a076772616e74656418032001280822480a0f526571756573744d657461" . "6461746112110a0963616c6c65725f697018012001280912220a1a63616c" . "6c65725f737570706c6965645f757365725f6167656e7418022001280942" . "620a16636f6d2e676f6f676c652e636c6f75642e6175646974420d417564" . "69744c6f6750726f746f50015a37676f6f676c652e676f6c616e672e6f72" . "672f67656e70726f746f2f676f6f676c65617069732f636c6f75642f6175" . "6469743b6175646974620670726f746f33" )); static::$is_initialized = true; } } metadata/Iam/V1/IamPolicy.php000064400000005447151742740600011737 0ustar00internalAddGeneratedFile(hex2bin( "0ae3060a1e676f6f676c652f69616d2f76312f69616d5f706f6c6963792e" . "70726f746f120d676f6f676c652e69616d2e76311a1a676f6f676c652f69" . "616d2f76312f706f6c6963792e70726f746f224e0a1353657449616d506f" . "6c6963795265717565737412100a087265736f7572636518012001280912" . "250a06706f6c69637918022001280b32152e676f6f676c652e69616d2e76" . "312e506f6c69637922270a1347657449616d506f6c696379526571756573" . "7412100a087265736f7572636518012001280922420a195465737449616d" . "5065726d697373696f6e735265717565737412100a087265736f75726365" . "18012001280912130a0b7065726d697373696f6e7318022003280922310a" . "1a5465737449616d5065726d697373696f6e73526573706f6e736512130a" . "0b7065726d697373696f6e731801200328093294030a0949414d506f6c69" . "637912740a0c53657449616d506f6c69637912222e676f6f676c652e6961" . "6d2e76312e53657449616d506f6c696379526571756573741a152e676f6f" . "676c652e69616d2e76312e506f6c696379222982d3e4930223221e2f7631" . "2f7b7265736f757263653d2a2a7d3a73657449616d506f6c6963793a012a" . "12740a0c47657449616d506f6c69637912222e676f6f676c652e69616d2e" . "76312e47657449616d506f6c696379526571756573741a152e676f6f676c" . "652e69616d2e76312e506f6c696379222982d3e4930223221e2f76312f7b" . "7265736f757263653d2a2a7d3a67657449616d506f6c6963793a012a129a" . "010a125465737449616d5065726d697373696f6e7312282e676f6f676c65" . "2e69616d2e76312e5465737449616d5065726d697373696f6e7352657175" . "6573741a292e676f6f676c652e69616d2e76312e5465737449616d506572" . "6d697373696f6e73526573706f6e7365222f82d3e493022922242f76312f" . "7b7265736f757263653d2a2a7d3a7465737449616d5065726d697373696f" . "6e733a012a4286010a11636f6d2e676f6f676c652e69616d2e7631420e49" . "616d506f6c69637950726f746f50015a30676f6f676c652e676f6c616e67" . "2e6f72672f67656e70726f746f2f676f6f676c65617069732f69616d2f76" . "313b69616df80101aa0213476f6f676c652e436c6f75642e49616d2e5631" . "ca0213476f6f676c655c436c6f75645c49616d5c5631620670726f746f33" )); static::$is_initialized = true; } } metadata/Iam/V1/Logging/AuditData.php000064400000002633151742740600013271 0ustar00internalAddGeneratedFile(hex2bin( "0aae020a26676f6f676c652f69616d2f76312f6c6f6767696e672f617564" . "69745f646174612e70726f746f1215676f6f676c652e69616d2e76312e6c" . "6f6767696e671a1a676f6f676c652f69616d2f76312f706f6c6963792e70" . "726f746f223d0a0941756469744461746112300a0c706f6c6963795f6465" . "6c746118022001280b321a2e676f6f676c652e69616d2e76312e506f6c69" . "637944656c74614289010a19636f6d2e676f6f676c652e69616d2e76312e" . "6c6f6767696e67420e41756469744461746150726f746f50015a3c676f6f" . "676c652e676f6c616e672e6f72672f67656e70726f746f2f676f6f676c65" . "617069732f69616d2f76312f6c6f6767696e673b6c6f6767696e67aa021b" . "476f6f676c652e436c6f75642e49616d2e56312e4c6f6767696e67620670" . "726f746f33" )); static::$is_initialized = true; } } metadata/Iam/V1/Policy.php000064400000003620151742740600011277 0ustar00internalAddGeneratedFile(hex2bin( "0a94040a1a676f6f676c652f69616d2f76312f706f6c6963792e70726f74" . "6f120d676f6f676c652e69616d2e763122510a06506f6c696379120f0a07" . "76657273696f6e18012001280512280a0862696e64696e67731804200328" . "0b32162e676f6f676c652e69616d2e76312e42696e64696e67120c0a0465" . "74616718032001280c22280a0742696e64696e67120c0a04726f6c651801" . "20012809120f0a076d656d6265727318022003280922420a0b506f6c6963" . "7944656c746112330a0e62696e64696e675f64656c74617318012003280b" . "321b2e676f6f676c652e69616d2e76312e42696e64696e6744656c746122" . "97010a0c42696e64696e6744656c746112320a06616374696f6e18012001" . "280e32222e676f6f676c652e69616d2e76312e42696e64696e6744656c74" . "612e416374696f6e120c0a04726f6c65180220012809120e0a066d656d62" . "657218032001280922350a06416374696f6e12160a12414354494f4e5f55" . "4e535045434946494544100012070a034144441001120a0a0652454d4f56" . "4510024283010a11636f6d2e676f6f676c652e69616d2e7631420b506f6c" . "69637950726f746f50015a30676f6f676c652e676f6c616e672e6f72672f" . "67656e70726f746f2f676f6f676c65617069732f69616d2f76313b69616d" . "f80101aa0213476f6f676c652e436c6f75642e49616d2e5631ca0213476f" . "6f676c655c436c6f75645c49616d5c5631620670726f746f33" )); static::$is_initialized = true; } } metadata/Logging/Type/HttpRequest.php000064400000004360151742740600013645 0ustar00internalAddGeneratedFile(hex2bin( "0af9040a26676f6f676c652f6c6f6767696e672f747970652f687474705f" . "726571756573742e70726f746f1213676f6f676c652e6c6f6767696e672e" . "747970651a1e676f6f676c652f70726f746f6275662f6475726174696f6e" . "2e70726f746f22ef020a0b487474705265717565737412160a0e72657175" . "6573745f6d6574686f6418012001280912130a0b726571756573745f7572" . "6c18022001280912140a0c726571756573745f73697a6518032001280312" . "0e0a0673746174757318042001280512150a0d726573706f6e73655f7369" . "7a6518052001280312120a0a757365725f6167656e741806200128091211" . "0a0972656d6f74655f697018072001280912110a097365727665725f6970" . "180d20012809120f0a0772656665726572180820012809122a0a076c6174" . "656e6379180e2001280b32192e676f6f676c652e70726f746f6275662e44" . "75726174696f6e12140a0c63616368655f6c6f6f6b7570180b2001280812" . "110a0963616368655f686974180920012808122a0a2263616368655f7661" . "6c6964617465645f776974685f6f726967696e5f736572766572180a2001" . "280812180a1063616368655f66696c6c5f6279746573180c200128031210" . "0a0870726f746f636f6c180f20012809429f010a17636f6d2e676f6f676c" . "652e6c6f6767696e672e747970654210487474705265717565737450726f" . "746f50015a38676f6f676c652e676f6c616e672e6f72672f67656e70726f" . "746f2f676f6f676c65617069732f6c6f6767696e672f747970653b6c7479" . "7065aa0219476f6f676c652e436c6f75642e4c6f6767696e672e54797065" . "ca0219476f6f676c655c436c6f75645c4c6f6767696e675c547970656206" . "70726f746f33" )); static::$is_initialized = true; } } metadata/Logging/Type/LogSeverity.php000064400000003002151742740600013621 0ustar00internalAddGeneratedFile(hex2bin( "0aec020a26676f6f676c652f6c6f6767696e672f747970652f6c6f675f73" . "657665726974792e70726f746f1213676f6f676c652e6c6f6767696e672e" . "747970652a82010a0b4c6f675365766572697479120b0a0744454641554c" . "54100012090a054445425547106412090a04494e464f10c801120b0a064e" . "4f5449434510ac02120c0a075741524e494e47109003120a0a054552524f" . "5210f403120d0a08435249544943414c10d804120a0a05414c45525410bc" . "05120e0a09454d455247454e435910a006429f010a17636f6d2e676f6f67" . "6c652e6c6f6767696e672e7479706542104c6f6753657665726974795072" . "6f746f50015a38676f6f676c652e676f6c616e672e6f72672f67656e7072" . "6f746f2f676f6f676c65617069732f6c6f6767696e672f747970653b6c74" . "797065aa0219476f6f676c652e436c6f75642e4c6f6767696e672e547970" . "65ca0219476f6f676c655c436c6f75645c4c6f6767696e675c5479706562" . "0670726f746f33" )); static::$is_initialized = true; } } metadata/Longrunning/Operations.php000064400000010021151742740600013460 0ustar00internalAddGeneratedFile(hex2bin( "0a9c0a0a23676f6f676c652f6c6f6e6772756e6e696e672f6f7065726174" . "696f6e732e70726f746f1212676f6f676c652e6c6f6e6772756e6e696e67" . "1a19676f6f676c652f70726f746f6275662f616e792e70726f746f1a1b67" . "6f6f676c652f70726f746f6275662f656d7074792e70726f746f1a17676f" . "6f676c652f7270632f7374617475732e70726f746f22a8010a094f706572" . "6174696f6e120c0a046e616d6518012001280912260a086d657461646174" . "6118022001280b32142e676f6f676c652e70726f746f6275662e416e7912" . "0c0a04646f6e6518032001280812230a056572726f7218042001280b3212" . "2e676f6f676c652e7270632e537461747573480012280a08726573706f6e" . "736518052001280b32142e676f6f676c652e70726f746f6275662e416e79" . "480042080a06726573756c7422230a134765744f7065726174696f6e5265" . "7175657374120c0a046e616d65180120012809225c0a154c6973744f7065" . "726174696f6e7352657175657374120c0a046e616d65180420012809120e" . "0a0666696c74657218012001280912110a09706167655f73697a65180220" . "01280512120a0a706167655f746f6b656e18032001280922640a164c6973" . "744f7065726174696f6e73526573706f6e736512310a0a6f706572617469" . "6f6e7318012003280b321d2e676f6f676c652e6c6f6e6772756e6e696e67" . "2e4f7065726174696f6e12170a0f6e6578745f706167655f746f6b656e18" . "022001280922260a1643616e63656c4f7065726174696f6e526571756573" . "74120c0a046e616d6518012001280922260a1644656c6574654f70657261" . "74696f6e52657175657374120c0a046e616d65180120012809328c040a0a" . "4f7065726174696f6e731286010a0e4c6973744f7065726174696f6e7312" . "292e676f6f676c652e6c6f6e6772756e6e696e672e4c6973744f70657261" . "74696f6e73526571756573741a2a2e676f6f676c652e6c6f6e6772756e6e" . "696e672e4c6973744f7065726174696f6e73526573706f6e7365221d82d3" . "e493021712152f76312f7b6e616d653d6f7065726174696f6e737d12780a" . "0c4765744f7065726174696f6e12272e676f6f676c652e6c6f6e6772756e" . "6e696e672e4765744f7065726174696f6e526571756573741a1d2e676f6f" . "676c652e6c6f6e6772756e6e696e672e4f7065726174696f6e222082d3e4" . "93021a12182f76312f7b6e616d653d6f7065726174696f6e732f2a2a7d12" . "770a0f44656c6574654f7065726174696f6e122a2e676f6f676c652e6c6f" . "6e6772756e6e696e672e44656c6574654f7065726174696f6e5265717565" . "73741a162e676f6f676c652e70726f746f6275662e456d707479222082d3" . "e493021a2a182f76312f7b6e616d653d6f7065726174696f6e732f2a2a7d" . "1281010a0f43616e63656c4f7065726174696f6e122a2e676f6f676c652e" . "6c6f6e6772756e6e696e672e43616e63656c4f7065726174696f6e526571" . "756573741a162e676f6f676c652e70726f746f6275662e456d707479222a" . "82d3e4930224221f2f76312f7b6e616d653d6f7065726174696f6e732f2a" . "2a7d3a63616e63656c3a012a4294010a16636f6d2e676f6f676c652e6c6f" . "6e6772756e6e696e67420f4f7065726174696f6e7350726f746f50015a3d" . "676f6f676c652e676f6c616e672e6f72672f67656e70726f746f2f676f6f" . "676c65617069732f6c6f6e6772756e6e696e673b6c6f6e6772756e6e696e" . "67aa0212476f6f676c652e4c6f6e6752756e6e696e67ca0212476f6f676c" . "655c4c6f6e6752756e6e696e67620670726f746f33" )); static::$is_initialized = true; } } metadata/Protobuf/Any.php000064400000002014151742740600011367 0ustar00internalAddGeneratedFile(hex2bin( "0acd010a19676f6f676c652f70726f746f6275662f616e792e70726f746f" . "120f676f6f676c652e70726f746f62756622260a03416e7912100a087479" . "70655f75726c180120012809120d0a0576616c756518022001280c426f0a" . "13636f6d2e676f6f676c652e70726f746f6275664208416e7950726f746f" . "50015a256769746875622e636f6d2f676f6c616e672f70726f746f627566" . "2f7074797065732f616e79a20203475042aa021e476f6f676c652e50726f" . "746f6275662e57656c6c4b6e6f776e5479706573620670726f746f33" )); static::$is_initialized = true; } } metadata/Protobuf/Api.php000064400000004632151742740600011361 0ustar00internalAddGeneratedFile(hex2bin( "0ac8050a19676f6f676c652f70726f746f6275662f6170692e70726f746f" . "120f676f6f676c652e70726f746f6275661a1a676f6f676c652f70726f74" . "6f6275662f747970652e70726f746f2281020a03417069120c0a046e616d" . "6518012001280912280a076d6574686f647318022003280b32172e676f6f" . "676c652e70726f746f6275662e4d6574686f6412280a076f7074696f6e73" . "18032003280b32172e676f6f676c652e70726f746f6275662e4f7074696f" . "6e120f0a0776657273696f6e18042001280912360a0e736f757263655f63" . "6f6e7465787418052001280b321e2e676f6f676c652e70726f746f627566" . "2e536f75726365436f6e7465787412260a066d6978696e7318062003280b" . "32162e676f6f676c652e70726f746f6275662e4d6978696e12270a067379" . "6e74617818072001280e32172e676f6f676c652e70726f746f6275662e53" . "796e74617822d5010a064d6574686f64120c0a046e616d65180120012809" . "12180a10726571756573745f747970655f75726c18022001280912190a11" . "726571756573745f73747265616d696e6718032001280812190a11726573" . "706f6e73655f747970655f75726c180420012809121a0a12726573706f6e" . "73655f73747265616d696e6718052001280812280a076f7074696f6e7318" . "062003280b32172e676f6f676c652e70726f746f6275662e4f7074696f6e" . "12270a0673796e74617818072001280e32172e676f6f676c652e70726f74" . "6f6275662e53796e74617822230a054d6978696e120c0a046e616d651801" . "20012809120c0a04726f6f7418022001280942750a13636f6d2e676f6f67" . "6c652e70726f746f627566420841706950726f746f50015a2b676f6f676c" . "652e676f6c616e672e6f72672f67656e70726f746f2f70726f746f627566" . "2f6170693b617069a20203475042aa021e476f6f676c652e50726f746f62" . "75662e57656c6c4b6e6f776e5479706573620670726f746f33" )); static::$is_initialized = true; } } metadata/Protobuf/Duration.php000064400000002123151742740600012426 0ustar00internalAddGeneratedFile(hex2bin( "0ae3010a1e676f6f676c652f70726f746f6275662f6475726174696f6e2e" . "70726f746f120f676f6f676c652e70726f746f627566222a0a0844757261" . "74696f6e120f0a077365636f6e6473180120012803120d0a056e616e6f73" . "180220012805427c0a13636f6d2e676f6f676c652e70726f746f62756642" . "0d4475726174696f6e50726f746f50015a2a6769746875622e636f6d2f67" . "6f6c616e672f70726f746f6275662f7074797065732f6475726174696f6e" . "f80101a20203475042aa021e476f6f676c652e50726f746f6275662e5765" . "6c6c4b6e6f776e5479706573620670726f746f33" )); static::$is_initialized = true; } } metadata/Protobuf/FieldMask.php000064400000002126151742740600012503 0ustar00internalAddGeneratedFile(hex2bin( "0ae3010a20676f6f676c652f70726f746f6275662f6669656c645f6d6173" . "6b2e70726f746f120f676f6f676c652e70726f746f627566221a0a094669" . "656c644d61736b120d0a0570617468731801200328094289010a13636f6d" . "2e676f6f676c652e70726f746f627566420e4669656c644d61736b50726f" . "746f50015a39676f6f676c652e676f6c616e672e6f72672f67656e70726f" . "746f2f70726f746f6275662f6669656c645f6d61736b3b6669656c645f6d" . "61736ba20203475042aa021e476f6f676c652e50726f746f6275662e5765" . "6c6c4b6e6f776e5479706573620670726f746f33" )); static::$is_initialized = true; } } metadata/Protobuf/GPBEmpty.php000064400000001747151742740600012303 0ustar00internalAddGeneratedFile(hex2bin( "0ab7010a1b676f6f676c652f70726f746f6275662f656d7074792e70726f" . "746f120f676f6f676c652e70726f746f62756622070a05456d7074794276" . "0a13636f6d2e676f6f676c652e70726f746f627566420a456d7074795072" . "6f746f50015a276769746875622e636f6d2f676f6c616e672f70726f746f" . "6275662f7074797065732f656d707479f80101a20203475042aa021e476f" . "6f676c652e50726f746f6275662e57656c6c4b6e6f776e54797065736206" . "70726f746f33" )); static::$is_initialized = true; } } metadata/Protobuf/SourceContext.php000064400000002237151742740600013454 0ustar00internalAddGeneratedFile(hex2bin( "0afb010a24676f6f676c652f70726f746f6275662f736f757263655f636f" . "6e746578742e70726f746f120f676f6f676c652e70726f746f6275662222" . "0a0d536f75726365436f6e7465787412110a0966696c655f6e616d651801" . "200128094295010a13636f6d2e676f6f676c652e70726f746f6275664212" . "536f75726365436f6e7465787450726f746f50015a41676f6f676c652e67" . "6f6c616e672e6f72672f67656e70726f746f2f70726f746f6275662f736f" . "757263655f636f6e746578743b736f757263655f636f6e74657874a20203" . "475042aa021e476f6f676c652e50726f746f6275662e57656c6c4b6e6f77" . "6e5479706573620670726f746f33" )); static::$is_initialized = true; } } metadata/Protobuf/Struct.php000064400000004171151742740600012132 0ustar00internalAddGeneratedFile(hex2bin( "0a81050a1c676f6f676c652f70726f746f6275662f7374727563742e7072" . "6f746f120f676f6f676c652e70726f746f6275662284010a065374727563" . "7412330a066669656c647318012003280b32232e676f6f676c652e70726f" . "746f6275662e5374727563742e4669656c6473456e7472791a450a0b4669" . "656c6473456e747279120b0a036b657918012001280912250a0576616c75" . "6518022001280b32162e676f6f676c652e70726f746f6275662e56616c75" . "653a02380122ea010a0556616c756512300a0a6e756c6c5f76616c756518" . "012001280e321a2e676f6f676c652e70726f746f6275662e4e756c6c5661" . "6c7565480012160a0c6e756d6265725f76616c7565180220012801480012" . "160a0c737472696e675f76616c7565180320012809480012140a0a626f6f" . "6c5f76616c75651804200128084800122f0a0c7374727563745f76616c75" . "6518052001280b32172e676f6f676c652e70726f746f6275662e53747275" . "6374480012300a0a6c6973745f76616c756518062001280b321a2e676f6f" . "676c652e70726f746f6275662e4c69737456616c7565480042060a046b69" . "6e6422330a094c69737456616c756512260a0676616c7565731801200328" . "0b32162e676f6f676c652e70726f746f6275662e56616c75652a1b0a094e" . "756c6c56616c7565120e0a0a4e554c4c5f56414c554510004281010a1363" . "6f6d2e676f6f676c652e70726f746f627566420b53747275637450726f74" . "6f50015a316769746875622e636f6d2f676f6c616e672f70726f746f6275" . "662f7074797065732f7374727563743b7374727563747062f80101a20203" . "475042aa021e476f6f676c652e50726f746f6275662e57656c6c4b6e6f77" . "6e5479706573620670726f746f33" )); static::$is_initialized = true; } } metadata/Protobuf/Timestamp.php000064400000002135151742740600012607 0ustar00internalAddGeneratedFile(hex2bin( "0ae7010a1f676f6f676c652f70726f746f6275662f74696d657374616d70" . "2e70726f746f120f676f6f676c652e70726f746f627566222b0a0954696d" . "657374616d70120f0a077365636f6e6473180120012803120d0a056e616e" . "6f73180220012805427e0a13636f6d2e676f6f676c652e70726f746f6275" . "66420e54696d657374616d7050726f746f50015a2b6769746875622e636f" . "6d2f676f6c616e672f70726f746f6275662f7074797065732f74696d6573" . "74616d70f80101a20203475042aa021e476f6f676c652e50726f746f6275" . "662e57656c6c4b6e6f776e5479706573620670726f746f33" )); static::$is_initialized = true; } } metadata/Protobuf/Type.php000064400000011066151742740600011570 0ustar00internalAddGeneratedFile(hex2bin( "0a9f0c0a1a676f6f676c652f70726f746f6275662f747970652e70726f74" . "6f120f676f6f676c652e70726f746f6275661a24676f6f676c652f70726f" . "746f6275662f736f757263655f636f6e746578742e70726f746f22d7010a" . "0454797065120c0a046e616d6518012001280912260a066669656c647318" . "022003280b32162e676f6f676c652e70726f746f6275662e4669656c6412" . "0e0a066f6e656f667318032003280912280a076f7074696f6e7318042003" . "280b32172e676f6f676c652e70726f746f6275662e4f7074696f6e12360a" . "0e736f757263655f636f6e7465787418052001280b321e2e676f6f676c65" . "2e70726f746f6275662e536f75726365436f6e7465787412270a0673796e" . "74617818062001280e32172e676f6f676c652e70726f746f6275662e5379" . "6e74617822d5050a054669656c6412290a046b696e6418012001280e321b" . "2e676f6f676c652e70726f746f6275662e4669656c642e4b696e6412370a" . "0b63617264696e616c69747918022001280e32222e676f6f676c652e7072" . "6f746f6275662e4669656c642e43617264696e616c697479120e0a066e75" . "6d626572180320012805120c0a046e616d6518042001280912100a087479" . "70655f75726c18062001280912130a0b6f6e656f665f696e646578180720" . "012805120e0a067061636b656418082001280812280a076f7074696f6e73" . "18092003280b32172e676f6f676c652e70726f746f6275662e4f7074696f" . "6e12110a096a736f6e5f6e616d65180a2001280912150a0d64656661756c" . "745f76616c7565180b2001280922c8020a044b696e6412100a0c54595045" . "5f554e4b4e4f574e1000120f0a0b545950455f444f55424c451001120e0a" . "0a545950455f464c4f41541002120e0a0a545950455f494e543634100312" . "0f0a0b545950455f55494e5436341004120e0a0a545950455f494e543332" . "100512100a0c545950455f46495845443634100612100a0c545950455f46" . "4958454433321007120d0a09545950455f424f4f4c1008120f0a0b545950" . "455f535452494e471009120e0a0a545950455f47524f5550100a12100a0c" . "545950455f4d455353414745100b120e0a0a545950455f4259544553100c" . "120f0a0b545950455f55494e543332100d120d0a09545950455f454e554d" . "100e12110a0d545950455f5346495845443332100f12110a0d545950455f" . "53464958454436341010120f0a0b545950455f53494e5433321011120f0a" . "0b545950455f53494e543634101222740a0b43617264696e616c69747912" . "170a1343415244494e414c4954595f554e4b4e4f574e100012180a144341" . "5244494e414c4954595f4f5054494f4e414c100112180a1443415244494e" . "414c4954595f5245515549524544100212180a1443415244494e414c4954" . "595f5245504541544544100322ce010a04456e756d120c0a046e616d6518" . "0120012809122d0a09656e756d76616c756518022003280b321a2e676f6f" . "676c652e70726f746f6275662e456e756d56616c756512280a076f707469" . "6f6e7318032003280b32172e676f6f676c652e70726f746f6275662e4f70" . "74696f6e12360a0e736f757263655f636f6e7465787418042001280b321e" . "2e676f6f676c652e70726f746f6275662e536f75726365436f6e74657874" . "12270a0673796e74617818052001280e32172e676f6f676c652e70726f74" . "6f6275662e53796e74617822530a09456e756d56616c7565120c0a046e61" . "6d65180120012809120e0a066e756d62657218022001280512280a076f70" . "74696f6e7318032003280b32172e676f6f676c652e70726f746f6275662e" . "4f7074696f6e223b0a064f7074696f6e120c0a046e616d65180120012809" . "12230a0576616c756518022001280b32142e676f6f676c652e70726f746f" . "6275662e416e792a2e0a0653796e74617812110a0d53594e5441585f5052" . "4f544f32100012110a0d53594e5441585f50524f544f331001427d0a1363" . "6f6d2e676f6f676c652e70726f746f62756642095479706550726f746f50" . "015a2f676f6f676c652e676f6c616e672e6f72672f67656e70726f746f2f" . "70726f746f6275662f70747970653b7074797065f80101a20203475042aa" . "021e476f6f676c652e50726f746f6275662e57656c6c4b6e6f776e547970" . "6573620670726f746f33" )); static::$is_initialized = true; } } metadata/Protobuf/Wrappers.php000064400000003202151742740600012443 0ustar00internalAddGeneratedFile(hex2bin( "0abf030a1e676f6f676c652f70726f746f6275662f77726170706572732e" . "70726f746f120f676f6f676c652e70726f746f627566221c0a0b446f7562" . "6c6556616c7565120d0a0576616c7565180120012801221b0a0a466c6f61" . "7456616c7565120d0a0576616c7565180120012802221b0a0a496e743634" . "56616c7565120d0a0576616c7565180120012803221c0a0b55496e743634" . "56616c7565120d0a0576616c7565180120012804221b0a0a496e74333256" . "616c7565120d0a0576616c7565180120012805221c0a0b55496e74333256" . "616c7565120d0a0576616c756518012001280d221a0a09426f6f6c56616c" . "7565120d0a0576616c7565180120012808221c0a0b537472696e6756616c" . "7565120d0a0576616c7565180120012809221b0a0a427974657356616c75" . "65120d0a0576616c756518012001280c427c0a13636f6d2e676f6f676c65" . "2e70726f746f627566420d577261707065727350726f746f50015a2a6769" . "746875622e636f6d2f676f6c616e672f70726f746f6275662f7074797065" . "732f7772617070657273f80101a20203475042aa021e476f6f676c652e50" . "726f746f6275662e57656c6c4b6e6f776e5479706573620670726f746f33" )); static::$is_initialized = true; } } metadata/README.md000064400000000243151742740600007610 0ustar00# Google Protobuf Metadata Classes ## WARNING! These classes are not intended for direct use - they exist only to support the generated protobuf classes in src/ metadata/Rpc/Code.php000064400000003160151742740600010441 0ustar00internalAddGeneratedFile(hex2bin( "0abf030a15676f6f676c652f7270632f636f64652e70726f746f120a676f" . "6f676c652e7270632ab7020a04436f646512060a024f4b1000120d0a0943" . "414e43454c4c45441001120b0a07554e4b4e4f574e100212140a10494e56" . "414c49445f415247554d454e54100312150a11444541444c494e455f4558" . "4345454445441004120d0a094e4f545f464f554e44100512120a0e414c52" . "454144595f455849535453100612150a115045524d495353494f4e5f4445" . "4e494544100712130a0f554e41555448454e54494341544544101012160a" . "125245534f555243455f455848415553544544100812170a134641494c45" . "445f505245434f4e444954494f4e1009120b0a0741424f52544544100a12" . "100a0c4f55545f4f465f52414e4745100b12110a0d554e494d504c454d45" . "4e544544100c120c0a08494e5445524e414c100d120f0a0b554e41564149" . "4c41424c45100e120d0a09444154415f4c4f5353100f42580a0e636f6d2e" . "676f6f676c652e7270634209436f646550726f746f50015a33676f6f676c" . "652e676f6c616e672e6f72672f67656e70726f746f2f676f6f676c656170" . "69732f7270632f636f64653b636f6465a20203525043620670726f746f33" )); static::$is_initialized = true; } } metadata/Rpc/ErrorDetails.php000064400000006030151742740600012165 0ustar00internalAddGeneratedFile(hex2bin( "0ad4070a1e676f6f676c652f7270632f6572726f725f64657461696c732e" . "70726f746f120a676f6f676c652e727063223b0a095265747279496e666f" . "122e0a0b72657472795f64656c617918012001280b32192e676f6f676c65" . "2e70726f746f6275662e4475726174696f6e22320a094465627567496e66" . "6f12150a0d737461636b5f656e7472696573180120032809120e0a066465" . "7461696c18022001280922790a0c51756f74614661696c75726512360a0a" . "76696f6c6174696f6e7318012003280b32222e676f6f676c652e7270632e" . "51756f74614661696c7572652e56696f6c6174696f6e1a310a0956696f6c" . "6174696f6e120f0a077375626a65637418012001280912130a0b64657363" . "72697074696f6e1802200128092295010a13507265636f6e646974696f6e" . "4661696c757265123d0a0a76696f6c6174696f6e7318012003280b32292e" . "676f6f676c652e7270632e507265636f6e646974696f6e4661696c757265" . "2e56696f6c6174696f6e1a3f0a0956696f6c6174696f6e120c0a04747970" . "65180120012809120f0a077375626a65637418022001280912130a0b6465" . "736372697074696f6e1803200128092283010a0a42616452657175657374" . "123f0a106669656c645f76696f6c6174696f6e7318012003280b32252e67" . "6f6f676c652e7270632e426164526571756573742e4669656c6456696f6c" . "6174696f6e1a340a0e4669656c6456696f6c6174696f6e120d0a05666965" . "6c6418012001280912130a0b6465736372697074696f6e18022001280922" . "370a0b52657175657374496e666f12120a0a726571756573745f69641801" . "2001280912140a0c73657276696e675f6461746118022001280922600a0c" . "5265736f75726365496e666f12150a0d7265736f757263655f7479706518" . "012001280912150a0d7265736f757263655f6e616d65180220012809120d" . "0a056f776e657218032001280912130a0b6465736372697074696f6e1804" . "2001280922560a0448656c7012240a056c696e6b7318012003280b32152e" . "676f6f676c652e7270632e48656c702e4c696e6b1a280a044c696e6b1213" . "0a0b6465736372697074696f6e180120012809120b0a0375726c18022001" . "280922330a104c6f63616c697a65644d657373616765120e0a066c6f6361" . "6c65180120012809120f0a076d657373616765180220012809426c0a0e63" . "6f6d2e676f6f676c652e72706342114572726f7244657461696c7350726f" . "746f50015a3f676f6f676c652e676f6c616e672e6f72672f67656e70726f" . "746f2f676f6f676c65617069732f7270632f65727264657461696c733b65" . "727264657461696c73a20203525043620670726f746f33" )); static::$is_initialized = true; } } metadata/Rpc/Status.php000064400000002157151742740600011057 0ustar00internalAddGeneratedFile(hex2bin( "0add010a17676f6f676c652f7270632f7374617475732e70726f746f120a" . "676f6f676c652e727063224e0a06537461747573120c0a04636f64651801" . "20012805120f0a076d65737361676518022001280912250a076465746169" . "6c7318032003280b32142e676f6f676c652e70726f746f6275662e416e79" . "425e0a0e636f6d2e676f6f676c652e727063420b53746174757350726f74" . "6f50015a37676f6f676c652e676f6c616e672e6f72672f67656e70726f74" . "6f2f676f6f676c65617069732f7270632f7374617475733b737461747573" . "a20203525043620670726f746f33" )); static::$is_initialized = true; } } metadata/Type/Color.php000064400000002222151742740600011040 0ustar00internalAddGeneratedFile(hex2bin( "0aec010a17676f6f676c652f747970652f636f6c6f722e70726f746f120b" . "676f6f676c652e74797065225d0a05436f6c6f72120b0a03726564180120" . "012802120d0a05677265656e180220012802120c0a04626c756518032001" . "2802122a0a05616c70686118042001280b321b2e676f6f676c652e70726f" . "746f6275662e466c6f617456616c7565425d0a0f636f6d2e676f6f676c65" . "2e74797065420a436f6c6f7250726f746f50015a36676f6f676c652e676f" . "6c616e672e6f72672f67656e70726f746f2f676f6f676c65617069732f74" . "7970652f636f6c6f723b636f6c6f72a20203475450620670726f746f33" )); static::$is_initialized = true; } } metadata/Type/Date.php000064400000001750151742740600010644 0ustar00internalAddGeneratedFile(hex2bin( "0abe010a16676f6f676c652f747970652f646174652e70726f746f120b67" . "6f6f676c652e7479706522300a0444617465120c0a047965617218012001" . "2805120d0a056d6f6e7468180220012805120b0a03646179180320012805" . "425d0a0f636f6d2e676f6f676c652e7479706542094461746550726f746f" . "50015a34676f6f676c652e676f6c616e672e6f72672f67656e70726f746f" . "2f676f6f676c65617069732f747970652f646174653b64617465f80101a2" . "0203475450620670726f746f33" )); static::$is_initialized = true; } } metadata/Type/Dayofweek.php000064400000002361151742740600011704 0ustar00internalAddGeneratedFile(hex2bin( "0aa4020a1b676f6f676c652f747970652f6461796f667765656b2e70726f" . "746f120b676f6f676c652e747970652a84010a094461794f665765656b12" . "1b0a174441595f4f465f5745454b5f554e5350454349464945441000120a" . "0a064d4f4e4441591001120b0a07545545534441591002120d0a09574544" . "4e45534441591003120c0a0854485552534441591004120a0a0646524944" . "41591005120c0a0853415455524441591006120a0a0653554e4441591007" . "42690a0f636f6d2e676f6f676c652e74797065420e4461794f665765656b" . "50726f746f50015a3e676f6f676c652e676f6c616e672e6f72672f67656e" . "70726f746f2f676f6f676c65617069732f747970652f6461796f66776565" . "6b3b6461796f667765656ba20203475450620670726f746f33" )); static::$is_initialized = true; } } metadata/Type/Latlng.php000064400000001760151742740600011211 0ustar00internalAddGeneratedFile(hex2bin( "0ac0010a18676f6f676c652f747970652f6c61746c6e672e70726f746f12" . "0b676f6f676c652e74797065222d0a064c61744c6e6712100a086c617469" . "7475646518012001280112110a096c6f6e67697475646518022001280142" . "600a0f636f6d2e676f6f676c652e74797065420b4c61744c6e6750726f74" . "6f50015a38676f6f676c652e676f6c616e672e6f72672f67656e70726f74" . "6f2f676f6f676c65617069732f747970652f6c61746c6e673b6c61746c6e" . "67a20203475450620670726f746f33" )); static::$is_initialized = true; } } metadata/Type/Money.php000064400000002004151742740600011047 0ustar00internalAddGeneratedFile(hex2bin( "0acb010a17676f6f676c652f747970652f6d6f6e65792e70726f746f120b" . "676f6f676c652e74797065223c0a054d6f6e657912150a0d63757272656e" . "63795f636f6465180120012809120d0a05756e697473180220012803120d" . "0a056e616e6f73180320012805425d0a0f636f6d2e676f6f676c652e7479" . "7065420a4d6f6e657950726f746f50015a36676f6f676c652e676f6c616e" . "672e6f72672f67656e70726f746f2f676f6f676c65617069732f74797065" . "2f6d6f6e65793b6d6f6e6579a20203475450620670726f746f33" )); static::$is_initialized = true; } } metadata/Type/PostalAddress.php000064400000003143151742740600012535 0ustar00internalAddGeneratedFile(hex2bin( "0aae030a20676f6f676c652f747970652f706f7374616c5f616464726573" . "732e70726f746f120b676f6f676c652e7479706522fd010a0d506f737461" . "6c4164647265737312100a087265766973696f6e18012001280512130a0b" . "726567696f6e5f636f646518022001280912150a0d6c616e67756167655f" . "636f646518032001280912130a0b706f7374616c5f636f64651804200128" . "0912140a0c736f7274696e675f636f6465180520012809121b0a1361646d" . "696e6973747261746976655f6172656118062001280912100a086c6f6361" . "6c69747918072001280912130a0b7375626c6f63616c6974791808200128" . "0912150a0d616464726573735f6c696e657318092003280912120a0a7265" . "63697069656e7473180a2003280912140a0c6f7267616e697a6174696f6e" . "180b2001280942750a0f636f6d2e676f6f676c652e747970654212506f73" . "74616c4164647265737350726f746f50015a46676f6f676c652e676f6c61" . "6e672e6f72672f67656e70726f746f2f676f6f676c65617069732f747970" . "652f706f7374616c616464726573733b706f7374616c61646472657373a2" . "0203475450620670726f746f33" )); static::$is_initialized = true; } } metadata/Type/Timeofday.php000064400000002133151742740600011704 0ustar00internalAddGeneratedFile(hex2bin( "0aea010a1b676f6f676c652f747970652f74696d656f666461792e70726f" . "746f120b676f6f676c652e74797065224b0a0954696d654f66446179120d" . "0a05686f757273180120012805120f0a076d696e75746573180220012805" . "120f0a077365636f6e6473180320012805120d0a056e616e6f7318042001" . "280542690a0f636f6d2e676f6f676c652e74797065420e54696d654f6644" . "617950726f746f50015a3e676f6f676c652e676f6c616e672e6f72672f67" . "656e70726f746f2f676f6f676c65617069732f747970652f74696d656f66" . "6461793b74696d656f66646179a20203475450620670726f746f33" )); static::$is_initialized = true; } } phpunit.xml.dist000064400000000622151742740600007725 0ustar00 tests/ApiCore/Tests/Unit tests/LongRunning/Tests/Unit src/ApiCore ruleset.xml000064400000000355151742740600006762 0ustar00 src/ApiCore/Jison src/ApiCore/LongRunning src/ApiCore src/Api/Advice.php000064400000003205151742740600007756 0ustar00google.api.Advice */ class Advice extends \Google\Protobuf\Internal\Message { /** * Useful description for why this advice was applied and what actions should * be taken to mitigate any implied risks. * * Generated from protobuf field string description = 2; */ private $description = ''; public function __construct() { \GPBMetadata\Google\Api\ConfigChange::initOnce(); parent::__construct(); } /** * Useful description for why this advice was applied and what actions should * be taken to mitigate any implied risks. * * Generated from protobuf field string description = 2; * @return string */ public function getDescription() { return $this->description; } /** * Useful description for why this advice was applied and what actions should * be taken to mitigate any implied risks. * * Generated from protobuf field string description = 2; * @param string $var * @return $this */ public function setDescription($var) { GPBUtil::checkString($var, True); $this->description = $var; return $this; } } src/Api/AuthProvider.php000064400000022201151742740600011174 0ustar00google.api.AuthProvider */ class AuthProvider extends \Google\Protobuf\Internal\Message { /** * The unique identifier of the auth provider. It will be referred to by * `AuthRequirement.provider_id`. * Example: "bookstore_auth". * * Generated from protobuf field string id = 1; */ private $id = ''; /** * Identifies the principal that issued the JWT. See * https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.1 * Usually a URL or an email address. * Example: https://securetoken.google.com * Example: 1234567-compute@developer.gserviceaccount.com * * Generated from protobuf field string issuer = 2; */ private $issuer = ''; /** * URL of the provider's public key set to validate signature of the JWT. See * [OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata). * Optional if the key set document: * - can be retrieved from * [OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html * of the issuer. * - can be inferred from the email domain of the issuer (e.g. a Google service account). * Example: https://www.googleapis.com/oauth2/v1/certs * * Generated from protobuf field string jwks_uri = 3; */ private $jwks_uri = ''; /** * The list of JWT * [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3). * that are allowed to access. A JWT containing any of these audiences will * be accepted. When this setting is absent, only JWTs with audience * "https://[Service_name][google.api.Service.name]/[API_name][google.protobuf.Api.name]" * will be accepted. For example, if no audiences are in the setting, * LibraryService API will only accept JWTs with the following audience * "https://library-example.googleapis.com/google.example.library.v1.LibraryService". * Example: * audiences: bookstore_android.apps.googleusercontent.com, * bookstore_web.apps.googleusercontent.com * * Generated from protobuf field string audiences = 4; */ private $audiences = ''; /** * Redirect URL if JWT token is required but no present or is expired. * Implement authorizationUrl of securityDefinitions in OpenAPI spec. * * Generated from protobuf field string authorization_url = 5; */ private $authorization_url = ''; public function __construct() { \GPBMetadata\Google\Api\Auth::initOnce(); parent::__construct(); } /** * The unique identifier of the auth provider. It will be referred to by * `AuthRequirement.provider_id`. * Example: "bookstore_auth". * * Generated from protobuf field string id = 1; * @return string */ public function getId() { return $this->id; } /** * The unique identifier of the auth provider. It will be referred to by * `AuthRequirement.provider_id`. * Example: "bookstore_auth". * * Generated from protobuf field string id = 1; * @param string $var * @return $this */ public function setId($var) { GPBUtil::checkString($var, True); $this->id = $var; return $this; } /** * Identifies the principal that issued the JWT. See * https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.1 * Usually a URL or an email address. * Example: https://securetoken.google.com * Example: 1234567-compute@developer.gserviceaccount.com * * Generated from protobuf field string issuer = 2; * @return string */ public function getIssuer() { return $this->issuer; } /** * Identifies the principal that issued the JWT. See * https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.1 * Usually a URL or an email address. * Example: https://securetoken.google.com * Example: 1234567-compute@developer.gserviceaccount.com * * Generated from protobuf field string issuer = 2; * @param string $var * @return $this */ public function setIssuer($var) { GPBUtil::checkString($var, True); $this->issuer = $var; return $this; } /** * URL of the provider's public key set to validate signature of the JWT. See * [OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata). * Optional if the key set document: * - can be retrieved from * [OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html * of the issuer. * - can be inferred from the email domain of the issuer (e.g. a Google service account). * Example: https://www.googleapis.com/oauth2/v1/certs * * Generated from protobuf field string jwks_uri = 3; * @return string */ public function getJwksUri() { return $this->jwks_uri; } /** * URL of the provider's public key set to validate signature of the JWT. See * [OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata). * Optional if the key set document: * - can be retrieved from * [OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html * of the issuer. * - can be inferred from the email domain of the issuer (e.g. a Google service account). * Example: https://www.googleapis.com/oauth2/v1/certs * * Generated from protobuf field string jwks_uri = 3; * @param string $var * @return $this */ public function setJwksUri($var) { GPBUtil::checkString($var, True); $this->jwks_uri = $var; return $this; } /** * The list of JWT * [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3). * that are allowed to access. A JWT containing any of these audiences will * be accepted. When this setting is absent, only JWTs with audience * "https://[Service_name][google.api.Service.name]/[API_name][google.protobuf.Api.name]" * will be accepted. For example, if no audiences are in the setting, * LibraryService API will only accept JWTs with the following audience * "https://library-example.googleapis.com/google.example.library.v1.LibraryService". * Example: * audiences: bookstore_android.apps.googleusercontent.com, * bookstore_web.apps.googleusercontent.com * * Generated from protobuf field string audiences = 4; * @return string */ public function getAudiences() { return $this->audiences; } /** * The list of JWT * [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3). * that are allowed to access. A JWT containing any of these audiences will * be accepted. When this setting is absent, only JWTs with audience * "https://[Service_name][google.api.Service.name]/[API_name][google.protobuf.Api.name]" * will be accepted. For example, if no audiences are in the setting, * LibraryService API will only accept JWTs with the following audience * "https://library-example.googleapis.com/google.example.library.v1.LibraryService". * Example: * audiences: bookstore_android.apps.googleusercontent.com, * bookstore_web.apps.googleusercontent.com * * Generated from protobuf field string audiences = 4; * @param string $var * @return $this */ public function setAudiences($var) { GPBUtil::checkString($var, True); $this->audiences = $var; return $this; } /** * Redirect URL if JWT token is required but no present or is expired. * Implement authorizationUrl of securityDefinitions in OpenAPI spec. * * Generated from protobuf field string authorization_url = 5; * @return string */ public function getAuthorizationUrl() { return $this->authorization_url; } /** * Redirect URL if JWT token is required but no present or is expired. * Implement authorizationUrl of securityDefinitions in OpenAPI spec. * * Generated from protobuf field string authorization_url = 5; * @param string $var * @return $this */ public function setAuthorizationUrl($var) { GPBUtil::checkString($var, True); $this->authorization_url = $var; return $this; } } src/Api/AuthRequirement.php000064400000011555151742740600011714 0ustar00google.api.AuthRequirement */ class AuthRequirement extends \Google\Protobuf\Internal\Message { /** * [id][google.api.AuthProvider.id] from authentication provider. * Example: * provider_id: bookstore_auth * * Generated from protobuf field string provider_id = 1; */ private $provider_id = ''; /** * NOTE: This will be deprecated soon, once AuthProvider.audiences is * implemented and accepted in all the runtime components. * The list of JWT * [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3). * that are allowed to access. A JWT containing any of these audiences will * be accepted. When this setting is absent, only JWTs with audience * "https://[Service_name][google.api.Service.name]/[API_name][google.protobuf.Api.name]" * will be accepted. For example, if no audiences are in the setting, * LibraryService API will only accept JWTs with the following audience * "https://library-example.googleapis.com/google.example.library.v1.LibraryService". * Example: * audiences: bookstore_android.apps.googleusercontent.com, * bookstore_web.apps.googleusercontent.com * * Generated from protobuf field string audiences = 2; */ private $audiences = ''; public function __construct() { \GPBMetadata\Google\Api\Auth::initOnce(); parent::__construct(); } /** * [id][google.api.AuthProvider.id] from authentication provider. * Example: * provider_id: bookstore_auth * * Generated from protobuf field string provider_id = 1; * @return string */ public function getProviderId() { return $this->provider_id; } /** * [id][google.api.AuthProvider.id] from authentication provider. * Example: * provider_id: bookstore_auth * * Generated from protobuf field string provider_id = 1; * @param string $var * @return $this */ public function setProviderId($var) { GPBUtil::checkString($var, True); $this->provider_id = $var; return $this; } /** * NOTE: This will be deprecated soon, once AuthProvider.audiences is * implemented and accepted in all the runtime components. * The list of JWT * [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3). * that are allowed to access. A JWT containing any of these audiences will * be accepted. When this setting is absent, only JWTs with audience * "https://[Service_name][google.api.Service.name]/[API_name][google.protobuf.Api.name]" * will be accepted. For example, if no audiences are in the setting, * LibraryService API will only accept JWTs with the following audience * "https://library-example.googleapis.com/google.example.library.v1.LibraryService". * Example: * audiences: bookstore_android.apps.googleusercontent.com, * bookstore_web.apps.googleusercontent.com * * Generated from protobuf field string audiences = 2; * @return string */ public function getAudiences() { return $this->audiences; } /** * NOTE: This will be deprecated soon, once AuthProvider.audiences is * implemented and accepted in all the runtime components. * The list of JWT * [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3). * that are allowed to access. A JWT containing any of these audiences will * be accepted. When this setting is absent, only JWTs with audience * "https://[Service_name][google.api.Service.name]/[API_name][google.protobuf.Api.name]" * will be accepted. For example, if no audiences are in the setting, * LibraryService API will only accept JWTs with the following audience * "https://library-example.googleapis.com/google.example.library.v1.LibraryService". * Example: * audiences: bookstore_android.apps.googleusercontent.com, * bookstore_web.apps.googleusercontent.com * * Generated from protobuf field string audiences = 2; * @param string $var * @return $this */ public function setAudiences($var) { GPBUtil::checkString($var, True); $this->audiences = $var; return $this; } } src/Api/Authentication.php000064400000006516151742740600011552 0ustar00google.api.Authentication */ class Authentication extends \Google\Protobuf\Internal\Message { /** * A list of authentication rules that apply to individual API methods. * **NOTE:** All service configuration rules follow "last one wins" order. * * Generated from protobuf field repeated .google.api.AuthenticationRule rules = 3; */ private $rules; /** * Defines a set of authentication providers that a service supports. * * Generated from protobuf field repeated .google.api.AuthProvider providers = 4; */ private $providers; public function __construct() { \GPBMetadata\Google\Api\Auth::initOnce(); parent::__construct(); } /** * A list of authentication rules that apply to individual API methods. * **NOTE:** All service configuration rules follow "last one wins" order. * * Generated from protobuf field repeated .google.api.AuthenticationRule rules = 3; * @return \Google\Protobuf\Internal\RepeatedField */ public function getRules() { return $this->rules; } /** * A list of authentication rules that apply to individual API methods. * **NOTE:** All service configuration rules follow "last one wins" order. * * Generated from protobuf field repeated .google.api.AuthenticationRule rules = 3; * @param \Google\Api\AuthenticationRule[]|\Google\Protobuf\Internal\RepeatedField $var * @return $this */ public function setRules($var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\AuthenticationRule::class); $this->rules = $arr; return $this; } /** * Defines a set of authentication providers that a service supports. * * Generated from protobuf field repeated .google.api.AuthProvider providers = 4; * @return \Google\Protobuf\Internal\RepeatedField */ public function getProviders() { return $this->providers; } /** * Defines a set of authentication providers that a service supports. * * Generated from protobuf field repeated .google.api.AuthProvider providers = 4; * @param \Google\Api\AuthProvider[]|\Google\Protobuf\Internal\RepeatedField $var * @return $this */ public function setProviders($var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\AuthProvider::class); $this->providers = $arr; return $this; } } src/Api/AuthenticationRule.php000064400000013274151742740600012401 0ustar00google.api.AuthenticationRule */ class AuthenticationRule extends \Google\Protobuf\Internal\Message { /** * Selects the methods to which this rule applies. * Refer to [selector][google.api.DocumentationRule.selector] for syntax details. * * Generated from protobuf field string selector = 1; */ private $selector = ''; /** * The requirements for OAuth credentials. * * Generated from protobuf field .google.api.OAuthRequirements oauth = 2; */ private $oauth = null; /** * Whether to allow requests without a credential. The credential can be * an OAuth token, Google cookies (first-party auth) or EndUserCreds. * For requests without credentials, if the service control environment is * specified, each incoming request **must** be associated with a service * consumer. This can be done by passing an API key that belongs to a consumer * project. * * Generated from protobuf field bool allow_without_credential = 5; */ private $allow_without_credential = false; /** * Requirements for additional authentication providers. * * Generated from protobuf field repeated .google.api.AuthRequirement requirements = 7; */ private $requirements; public function __construct() { \GPBMetadata\Google\Api\Auth::initOnce(); parent::__construct(); } /** * Selects the methods to which this rule applies. * Refer to [selector][google.api.DocumentationRule.selector] for syntax details. * * Generated from protobuf field string selector = 1; * @return string */ public function getSelector() { return $this->selector; } /** * Selects the methods to which this rule applies. * Refer to [selector][google.api.DocumentationRule.selector] for syntax details. * * Generated from protobuf field string selector = 1; * @param string $var * @return $this */ public function setSelector($var) { GPBUtil::checkString($var, True); $this->selector = $var; return $this; } /** * The requirements for OAuth credentials. * * Generated from protobuf field .google.api.OAuthRequirements oauth = 2; * @return \Google\Api\OAuthRequirements */ public function getOauth() { return $this->oauth; } /** * The requirements for OAuth credentials. * * Generated from protobuf field .google.api.OAuthRequirements oauth = 2; * @param \Google\Api\OAuthRequirements $var * @return $this */ public function setOauth($var) { GPBUtil::checkMessage($var, \Google\Api\OAuthRequirements::class); $this->oauth = $var; return $this; } /** * Whether to allow requests without a credential. The credential can be * an OAuth token, Google cookies (first-party auth) or EndUserCreds. * For requests without credentials, if the service control environment is * specified, each incoming request **must** be associated with a service * consumer. This can be done by passing an API key that belongs to a consumer * project. * * Generated from protobuf field bool allow_without_credential = 5; * @return bool */ public function getAllowWithoutCredential() { return $this->allow_without_credential; } /** * Whether to allow requests without a credential. The credential can be * an OAuth token, Google cookies (first-party auth) or EndUserCreds. * For requests without credentials, if the service control environment is * specified, each incoming request **must** be associated with a service * consumer. This can be done by passing an API key that belongs to a consumer * project. * * Generated from protobuf field bool allow_without_credential = 5; * @param bool $var * @return $this */ public function setAllowWithoutCredential($var) { GPBUtil::checkBool($var); $this->allow_without_credential = $var; return $this; } /** * Requirements for additional authentication providers. * * Generated from protobuf field repeated .google.api.AuthRequirement requirements = 7; * @return \Google\Protobuf\Internal\RepeatedField */ public function getRequirements() { return $this->requirements; } /** * Requirements for additional authentication providers. * * Generated from protobuf field repeated .google.api.AuthRequirement requirements = 7; * @param \Google\Api\AuthRequirement[]|\Google\Protobuf\Internal\RepeatedField $var * @return $this */ public function setRequirements($var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\AuthRequirement::class); $this->requirements = $arr; return $this; } } src/Api/AuthorizationConfig.php000064400000003277151742740600012562 0ustar00google.api.AuthorizationConfig */ class AuthorizationConfig extends \Google\Protobuf\Internal\Message { /** * The name of the authorization provider, such as * firebaserules.googleapis.com. * * Generated from protobuf field string provider = 1; */ private $provider = ''; public function __construct() { \GPBMetadata\Google\Api\Experimental\AuthorizationConfig::initOnce(); parent::__construct(); } /** * The name of the authorization provider, such as * firebaserules.googleapis.com. * * Generated from protobuf field string provider = 1; * @return string */ public function getProvider() { return $this->provider; } /** * The name of the authorization provider, such as * firebaserules.googleapis.com. * * Generated from protobuf field string provider = 1; * @param string $var * @return $this */ public function setProvider($var) { GPBUtil::checkString($var, True); $this->provider = $var; return $this; } } src/Api/Backend.php000064400000003505151742740600010115 0ustar00google.api.Backend */ class Backend extends \Google\Protobuf\Internal\Message { /** * A list of API backend rules that apply to individual API methods. * **NOTE:** All service configuration rules follow "last one wins" order. * * Generated from protobuf field repeated .google.api.BackendRule rules = 1; */ private $rules; public function __construct() { \GPBMetadata\Google\Api\Backend::initOnce(); parent::__construct(); } /** * A list of API backend rules that apply to individual API methods. * **NOTE:** All service configuration rules follow "last one wins" order. * * Generated from protobuf field repeated .google.api.BackendRule rules = 1; * @return \Google\Protobuf\Internal\RepeatedField */ public function getRules() { return $this->rules; } /** * A list of API backend rules that apply to individual API methods. * **NOTE:** All service configuration rules follow "last one wins" order. * * Generated from protobuf field repeated .google.api.BackendRule rules = 1; * @param \Google\Api\BackendRule[]|\Google\Protobuf\Internal\RepeatedField $var * @return $this */ public function setRules($var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\BackendRule::class); $this->rules = $arr; return $this; } } src/Api/BackendRule.php000064400000006350151742740600010746 0ustar00google.api.BackendRule */ class BackendRule extends \Google\Protobuf\Internal\Message { /** * Selects the methods to which this rule applies. * Refer to [selector][google.api.DocumentationRule.selector] for syntax details. * * Generated from protobuf field string selector = 1; */ private $selector = ''; /** * The address of the API backend. * * Generated from protobuf field string address = 2; */ private $address = ''; /** * The number of seconds to wait for a response from a request. The * default depends on the deployment context. * * Generated from protobuf field double deadline = 3; */ private $deadline = 0.0; public function __construct() { \GPBMetadata\Google\Api\Backend::initOnce(); parent::__construct(); } /** * Selects the methods to which this rule applies. * Refer to [selector][google.api.DocumentationRule.selector] for syntax details. * * Generated from protobuf field string selector = 1; * @return string */ public function getSelector() { return $this->selector; } /** * Selects the methods to which this rule applies. * Refer to [selector][google.api.DocumentationRule.selector] for syntax details. * * Generated from protobuf field string selector = 1; * @param string $var * @return $this */ public function setSelector($var) { GPBUtil::checkString($var, True); $this->selector = $var; return $this; } /** * The address of the API backend. * * Generated from protobuf field string address = 2; * @return string */ public function getAddress() { return $this->address; } /** * The address of the API backend. * * Generated from protobuf field string address = 2; * @param string $var * @return $this */ public function setAddress($var) { GPBUtil::checkString($var, True); $this->address = $var; return $this; } /** * The number of seconds to wait for a response from a request. The * default depends on the deployment context. * * Generated from protobuf field double deadline = 3; * @return float */ public function getDeadline() { return $this->deadline; } /** * The number of seconds to wait for a response from a request. The * default depends on the deployment context. * * Generated from protobuf field double deadline = 3; * @param float $var * @return $this */ public function setDeadline($var) { GPBUtil::checkDouble($var); $this->deadline = $var; return $this; } } src/Api/Billing.php000064400000005763151742740600010156 0ustar00google.api.Billing */ class Billing extends \Google\Protobuf\Internal\Message { /** * Billing configurations for sending metrics to the consumer project. * There can be multiple consumer destinations per service, each one must have * a different monitored resource type. A metric can be used in at most * one consumer destination. * * Generated from protobuf field repeated .google.api.Billing.BillingDestination consumer_destinations = 8; */ private $consumer_destinations; public function __construct() { \GPBMetadata\Google\Api\Billing::initOnce(); parent::__construct(); } /** * Billing configurations for sending metrics to the consumer project. * There can be multiple consumer destinations per service, each one must have * a different monitored resource type. A metric can be used in at most * one consumer destination. * * Generated from protobuf field repeated .google.api.Billing.BillingDestination consumer_destinations = 8; * @return \Google\Protobuf\Internal\RepeatedField */ public function getConsumerDestinations() { return $this->consumer_destinations; } /** * Billing configurations for sending metrics to the consumer project. * There can be multiple consumer destinations per service, each one must have * a different monitored resource type. A metric can be used in at most * one consumer destination. * * Generated from protobuf field repeated .google.api.Billing.BillingDestination consumer_destinations = 8; * @param \Google\Api\Billing_BillingDestination[]|\Google\Protobuf\Internal\RepeatedField $var * @return $this */ public function setConsumerDestinations($var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\Billing_BillingDestination::class); $this->consumer_destinations = $arr; return $this; } } src/Api/Billing_BillingDestination.php000064400000005706151742740600014015 0ustar00google.api.Billing.BillingDestination */ class Billing_BillingDestination extends \Google\Protobuf\Internal\Message { /** * The monitored resource type. The type must be defined in * [Service.monitored_resources][google.api.Service.monitored_resources] section. * * Generated from protobuf field string monitored_resource = 1; */ private $monitored_resource = ''; /** * Names of the metrics to report to this billing destination. * Each name must be defined in [Service.metrics][google.api.Service.metrics] section. * * Generated from protobuf field repeated string metrics = 2; */ private $metrics; public function __construct() { \GPBMetadata\Google\Api\Billing::initOnce(); parent::__construct(); } /** * The monitored resource type. The type must be defined in * [Service.monitored_resources][google.api.Service.monitored_resources] section. * * Generated from protobuf field string monitored_resource = 1; * @return string */ public function getMonitoredResource() { return $this->monitored_resource; } /** * The monitored resource type. The type must be defined in * [Service.monitored_resources][google.api.Service.monitored_resources] section. * * Generated from protobuf field string monitored_resource = 1; * @param string $var * @return $this */ public function setMonitoredResource($var) { GPBUtil::checkString($var, True); $this->monitored_resource = $var; return $this; } /** * Names of the metrics to report to this billing destination. * Each name must be defined in [Service.metrics][google.api.Service.metrics] section. * * Generated from protobuf field repeated string metrics = 2; * @return \Google\Protobuf\Internal\RepeatedField */ public function getMetrics() { return $this->metrics; } /** * Names of the metrics to report to this billing destination. * Each name must be defined in [Service.metrics][google.api.Service.metrics] section. * * Generated from protobuf field repeated string metrics = 2; * @param string[]|\Google\Protobuf\Internal\RepeatedField $var * @return $this */ public function setMetrics($var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); $this->metrics = $arr; return $this; } } src/Api/ChangeType.php000064400000002161151742740600010612 0ustar00Google\Api\ChangeType */ class ChangeType { /** * No value was provided. * * Generated from protobuf enum CHANGE_TYPE_UNSPECIFIED = 0; */ const CHANGE_TYPE_UNSPECIFIED = 0; /** * The changed object exists in the 'new' service configuration, but not * in the 'old' service configuration. * * Generated from protobuf enum ADDED = 1; */ const ADDED = 1; /** * The changed object exists in the 'old' service configuration, but not * in the 'new' service configuration. * * Generated from protobuf enum REMOVED = 2; */ const REMOVED = 2; /** * The changed object exists in both service configurations, but its value * is different. * * Generated from protobuf enum MODIFIED = 3; */ const MODIFIED = 3; } src/Api/ConfigChange.php000064400000016132151742740600011101 0ustar00google.api.ConfigChange */ class ConfigChange extends \Google\Protobuf\Internal\Message { /** * Object hierarchy path to the change, with levels separated by a '.' * character. For repeated fields, an applicable unique identifier field is * used for the index (usually selector, name, or id). For maps, the term * 'key' is used. If the field has no unique identifier, the numeric index * is used. * Examples: * - visibility.rules[selector=="google.LibraryService.CreateBook"].restriction * - quota.metric_rules[selector=="google"].metric_costs[key=="reads"].value * - logging.producer_destinations[0] * * Generated from protobuf field string element = 1; */ private $element = ''; /** * Value of the changed object in the old Service configuration, * in JSON format. This field will not be populated if ChangeType == ADDED. * * Generated from protobuf field string old_value = 2; */ private $old_value = ''; /** * Value of the changed object in the new Service configuration, * in JSON format. This field will not be populated if ChangeType == REMOVED. * * Generated from protobuf field string new_value = 3; */ private $new_value = ''; /** * The type for this change, either ADDED, REMOVED, or MODIFIED. * * Generated from protobuf field .google.api.ChangeType change_type = 4; */ private $change_type = 0; /** * Collection of advice provided for this change, useful for determining the * possible impact of this change. * * Generated from protobuf field repeated .google.api.Advice advices = 5; */ private $advices; public function __construct() { \GPBMetadata\Google\Api\ConfigChange::initOnce(); parent::__construct(); } /** * Object hierarchy path to the change, with levels separated by a '.' * character. For repeated fields, an applicable unique identifier field is * used for the index (usually selector, name, or id). For maps, the term * 'key' is used. If the field has no unique identifier, the numeric index * is used. * Examples: * - visibility.rules[selector=="google.LibraryService.CreateBook"].restriction * - quota.metric_rules[selector=="google"].metric_costs[key=="reads"].value * - logging.producer_destinations[0] * * Generated from protobuf field string element = 1; * @return string */ public function getElement() { return $this->element; } /** * Object hierarchy path to the change, with levels separated by a '.' * character. For repeated fields, an applicable unique identifier field is * used for the index (usually selector, name, or id). For maps, the term * 'key' is used. If the field has no unique identifier, the numeric index * is used. * Examples: * - visibility.rules[selector=="google.LibraryService.CreateBook"].restriction * - quota.metric_rules[selector=="google"].metric_costs[key=="reads"].value * - logging.producer_destinations[0] * * Generated from protobuf field string element = 1; * @param string $var * @return $this */ public function setElement($var) { GPBUtil::checkString($var, True); $this->element = $var; return $this; } /** * Value of the changed object in the old Service configuration, * in JSON format. This field will not be populated if ChangeType == ADDED. * * Generated from protobuf field string old_value = 2; * @return string */ public function getOldValue() { return $this->old_value; } /** * Value of the changed object in the old Service configuration, * in JSON format. This field will not be populated if ChangeType == ADDED. * * Generated from protobuf field string old_value = 2; * @param string $var * @return $this */ public function setOldValue($var) { GPBUtil::checkString($var, True); $this->old_value = $var; return $this; } /** * Value of the changed object in the new Service configuration, * in JSON format. This field will not be populated if ChangeType == REMOVED. * * Generated from protobuf field string new_value = 3; * @return string */ public function getNewValue() { return $this->new_value; } /** * Value of the changed object in the new Service configuration, * in JSON format. This field will not be populated if ChangeType == REMOVED. * * Generated from protobuf field string new_value = 3; * @param string $var * @return $this */ public function setNewValue($var) { GPBUtil::checkString($var, True); $this->new_value = $var; return $this; } /** * The type for this change, either ADDED, REMOVED, or MODIFIED. * * Generated from protobuf field .google.api.ChangeType change_type = 4; * @return int */ public function getChangeType() { return $this->change_type; } /** * The type for this change, either ADDED, REMOVED, or MODIFIED. * * Generated from protobuf field .google.api.ChangeType change_type = 4; * @param int $var * @return $this */ public function setChangeType($var) { GPBUtil::checkEnum($var, \Google\Api\ChangeType::class); $this->change_type = $var; return $this; } /** * Collection of advice provided for this change, useful for determining the * possible impact of this change. * * Generated from protobuf field repeated .google.api.Advice advices = 5; * @return \Google\Protobuf\Internal\RepeatedField */ public function getAdvices() { return $this->advices; } /** * Collection of advice provided for this change, useful for determining the * possible impact of this change. * * Generated from protobuf field repeated .google.api.Advice advices = 5; * @param \Google\Api\Advice[]|\Google\Protobuf\Internal\RepeatedField $var * @return $this */ public function setAdvices($var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\Advice::class); $this->advices = $arr; return $this; } } src/Api/Context.php000064400000004314151742740600010211 0ustar00google.api.Context */ class Context extends \Google\Protobuf\Internal\Message { /** * A list of RPC context rules that apply to individual API methods. * **NOTE:** All service configuration rules follow "last one wins" order. * * Generated from protobuf field repeated .google.api.ContextRule rules = 1; */ private $rules; public function __construct() { \GPBMetadata\Google\Api\Context::initOnce(); parent::__construct(); } /** * A list of RPC context rules that apply to individual API methods. * **NOTE:** All service configuration rules follow "last one wins" order. * * Generated from protobuf field repeated .google.api.ContextRule rules = 1; * @return \Google\Protobuf\Internal\RepeatedField */ public function getRules() { return $this->rules; } /** * A list of RPC context rules that apply to individual API methods. * **NOTE:** All service configuration rules follow "last one wins" order. * * Generated from protobuf field repeated .google.api.ContextRule rules = 1; * @param \Google\Api\ContextRule[]|\Google\Protobuf\Internal\RepeatedField $var * @return $this */ public function setRules($var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\ContextRule::class); $this->rules = $arr; return $this; } } src/Api/ContextRule.php000064400000006641151742740600011046 0ustar00google.api.ContextRule */ class ContextRule extends \Google\Protobuf\Internal\Message { /** * Selects the methods to which this rule applies. * Refer to [selector][google.api.DocumentationRule.selector] for syntax details. * * Generated from protobuf field string selector = 1; */ private $selector = ''; /** * A list of full type names of requested contexts. * * Generated from protobuf field repeated string requested = 2; */ private $requested; /** * A list of full type names of provided contexts. * * Generated from protobuf field repeated string provided = 3; */ private $provided; public function __construct() { \GPBMetadata\Google\Api\Context::initOnce(); parent::__construct(); } /** * Selects the methods to which this rule applies. * Refer to [selector][google.api.DocumentationRule.selector] for syntax details. * * Generated from protobuf field string selector = 1; * @return string */ public function getSelector() { return $this->selector; } /** * Selects the methods to which this rule applies. * Refer to [selector][google.api.DocumentationRule.selector] for syntax details. * * Generated from protobuf field string selector = 1; * @param string $var * @return $this */ public function setSelector($var) { GPBUtil::checkString($var, True); $this->selector = $var; return $this; } /** * A list of full type names of requested contexts. * * Generated from protobuf field repeated string requested = 2; * @return \Google\Protobuf\Internal\RepeatedField */ public function getRequested() { return $this->requested; } /** * A list of full type names of requested contexts. * * Generated from protobuf field repeated string requested = 2; * @param string[]|\Google\Protobuf\Internal\RepeatedField $var * @return $this */ public function setRequested($var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); $this->requested = $arr; return $this; } /** * A list of full type names of provided contexts. * * Generated from protobuf field repeated string provided = 3; * @return \Google\Protobuf\Internal\RepeatedField */ public function getProvided() { return $this->provided; } /** * A list of full type names of provided contexts. * * Generated from protobuf field repeated string provided = 3; * @param string[]|\Google\Protobuf\Internal\RepeatedField $var * @return $this */ public function setProvided($var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); $this->provided = $arr; return $this; } } src/Api/Control.php000064400000003252151742740600010205 0ustar00google.api.Control */ class Control extends \Google\Protobuf\Internal\Message { /** * The service control environment to use. If empty, no control plane * feature (like quota and billing) will be enabled. * * Generated from protobuf field string environment = 1; */ private $environment = ''; public function __construct() { \GPBMetadata\Google\Api\Control::initOnce(); parent::__construct(); } /** * The service control environment to use. If empty, no control plane * feature (like quota and billing) will be enabled. * * Generated from protobuf field string environment = 1; * @return string */ public function getEnvironment() { return $this->environment; } /** * The service control environment to use. If empty, no control plane * feature (like quota and billing) will be enabled. * * Generated from protobuf field string environment = 1; * @param string $var * @return $this */ public function setEnvironment($var) { GPBUtil::checkString($var, True); $this->environment = $var; return $this; } } src/Api/CustomHttpPattern.php000064400000003712151742740600012236 0ustar00google.api.CustomHttpPattern */ class CustomHttpPattern extends \Google\Protobuf\Internal\Message { /** * The name of this custom HTTP verb. * * Generated from protobuf field string kind = 1; */ private $kind = ''; /** * The path matched by this custom verb. * * Generated from protobuf field string path = 2; */ private $path = ''; public function __construct() { \GPBMetadata\Google\Api\Http::initOnce(); parent::__construct(); } /** * The name of this custom HTTP verb. * * Generated from protobuf field string kind = 1; * @return string */ public function getKind() { return $this->kind; } /** * The name of this custom HTTP verb. * * Generated from protobuf field string kind = 1; * @param string $var * @return $this */ public function setKind($var) { GPBUtil::checkString($var, True); $this->kind = $var; return $this; } /** * The path matched by this custom verb. * * Generated from protobuf field string path = 2; * @return string */ public function getPath() { return $this->path; } /** * The path matched by this custom verb. * * Generated from protobuf field string path = 2; * @param string $var * @return $this */ public function setPath($var) { GPBUtil::checkString($var, True); $this->path = $var; return $this; } } src/Api/Distribution.php000064400000022662151742740600011252 0ustar00google.api.Distribution */ class Distribution extends \Google\Protobuf\Internal\Message { /** * The number of values in the population. Must be non-negative. * * Generated from protobuf field int64 count = 1; */ private $count = 0; /** * The arithmetic mean of the values in the population. If `count` is zero * then this field must be zero. * * Generated from protobuf field double mean = 2; */ private $mean = 0.0; /** * The sum of squared deviations from the mean of the values in the * population. For values x_i this is: * Sum[i=1..n]((x_i - mean)^2) * Knuth, "The Art of Computer Programming", Vol. 2, page 323, 3rd edition * describes Welford's method for accumulating this sum in one pass. * If `count` is zero then this field must be zero. * * Generated from protobuf field double sum_of_squared_deviation = 3; */ private $sum_of_squared_deviation = 0.0; /** * If specified, contains the range of the population values. The field * must not be present if the `count` is zero. * * Generated from protobuf field .google.api.Distribution.Range range = 4; */ private $range = null; /** * Defines the histogram bucket boundaries. * * Generated from protobuf field .google.api.Distribution.BucketOptions bucket_options = 6; */ private $bucket_options = null; /** * If `bucket_options` is given, then the sum of the values in `bucket_counts` * must equal the value in `count`. If `bucket_options` is not given, no * `bucket_counts` fields may be given. * Bucket counts are given in order under the numbering scheme described * above (the underflow bucket has number 0; the finite buckets, if any, * have numbers 1 through N-2; the overflow bucket has number N-1). * The size of `bucket_counts` must be no greater than N as defined in * `bucket_options`. * Any suffix of trailing zero bucket_count fields may be omitted. * * Generated from protobuf field repeated int64 bucket_counts = 7; */ private $bucket_counts; public function __construct() { \GPBMetadata\Google\Api\Distribution::initOnce(); parent::__construct(); } /** * The number of values in the population. Must be non-negative. * * Generated from protobuf field int64 count = 1; * @return int|string */ public function getCount() { return $this->count; } /** * The number of values in the population. Must be non-negative. * * Generated from protobuf field int64 count = 1; * @param int|string $var * @return $this */ public function setCount($var) { GPBUtil::checkInt64($var); $this->count = $var; return $this; } /** * The arithmetic mean of the values in the population. If `count` is zero * then this field must be zero. * * Generated from protobuf field double mean = 2; * @return float */ public function getMean() { return $this->mean; } /** * The arithmetic mean of the values in the population. If `count` is zero * then this field must be zero. * * Generated from protobuf field double mean = 2; * @param float $var * @return $this */ public function setMean($var) { GPBUtil::checkDouble($var); $this->mean = $var; return $this; } /** * The sum of squared deviations from the mean of the values in the * population. For values x_i this is: * Sum[i=1..n]((x_i - mean)^2) * Knuth, "The Art of Computer Programming", Vol. 2, page 323, 3rd edition * describes Welford's method for accumulating this sum in one pass. * If `count` is zero then this field must be zero. * * Generated from protobuf field double sum_of_squared_deviation = 3; * @return float */ public function getSumOfSquaredDeviation() { return $this->sum_of_squared_deviation; } /** * The sum of squared deviations from the mean of the values in the * population. For values x_i this is: * Sum[i=1..n]((x_i - mean)^2) * Knuth, "The Art of Computer Programming", Vol. 2, page 323, 3rd edition * describes Welford's method for accumulating this sum in one pass. * If `count` is zero then this field must be zero. * * Generated from protobuf field double sum_of_squared_deviation = 3; * @param float $var * @return $this */ public function setSumOfSquaredDeviation($var) { GPBUtil::checkDouble($var); $this->sum_of_squared_deviation = $var; return $this; } /** * If specified, contains the range of the population values. The field * must not be present if the `count` is zero. * * Generated from protobuf field .google.api.Distribution.Range range = 4; * @return \Google\Api\Distribution_Range */ public function getRange() { return $this->range; } /** * If specified, contains the range of the population values. The field * must not be present if the `count` is zero. * * Generated from protobuf field .google.api.Distribution.Range range = 4; * @param \Google\Api\Distribution_Range $var * @return $this */ public function setRange($var) { GPBUtil::checkMessage($var, \Google\Api\Distribution_Range::class); $this->range = $var; return $this; } /** * Defines the histogram bucket boundaries. * * Generated from protobuf field .google.api.Distribution.BucketOptions bucket_options = 6; * @return \Google\Api\Distribution_BucketOptions */ public function getBucketOptions() { return $this->bucket_options; } /** * Defines the histogram bucket boundaries. * * Generated from protobuf field .google.api.Distribution.BucketOptions bucket_options = 6; * @param \Google\Api\Distribution_BucketOptions $var * @return $this */ public function setBucketOptions($var) { GPBUtil::checkMessage($var, \Google\Api\Distribution_BucketOptions::class); $this->bucket_options = $var; return $this; } /** * If `bucket_options` is given, then the sum of the values in `bucket_counts` * must equal the value in `count`. If `bucket_options` is not given, no * `bucket_counts` fields may be given. * Bucket counts are given in order under the numbering scheme described * above (the underflow bucket has number 0; the finite buckets, if any, * have numbers 1 through N-2; the overflow bucket has number N-1). * The size of `bucket_counts` must be no greater than N as defined in * `bucket_options`. * Any suffix of trailing zero bucket_count fields may be omitted. * * Generated from protobuf field repeated int64 bucket_counts = 7; * @return \Google\Protobuf\Internal\RepeatedField */ public function getBucketCounts() { return $this->bucket_counts; } /** * If `bucket_options` is given, then the sum of the values in `bucket_counts` * must equal the value in `count`. If `bucket_options` is not given, no * `bucket_counts` fields may be given. * Bucket counts are given in order under the numbering scheme described * above (the underflow bucket has number 0; the finite buckets, if any, * have numbers 1 through N-2; the overflow bucket has number N-1). * The size of `bucket_counts` must be no greater than N as defined in * `bucket_options`. * Any suffix of trailing zero bucket_count fields may be omitted. * * Generated from protobuf field repeated int64 bucket_counts = 7; * @param int[]|string[]|\Google\Protobuf\Internal\RepeatedField $var * @return $this */ public function setBucketCounts($var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::INT64); $this->bucket_counts = $arr; return $this; } } src/Api/Distribution_BucketOptions.php000064400000010476151742740600014123 0ustar00 0) is the same as the upper bound of bucket i - 1. * The buckets span the whole range of finite values: lower bound of the * underflow bucket is -infinity and the upper bound of the overflow bucket is * +infinity. The finite buckets are so-called because both bounds are * finite. * `BucketOptions` describes bucket boundaries in one of three ways. Two * describe the boundaries by giving parameters for a formula to generate * boundaries and one gives the bucket boundaries explicitly. * If `bucket_boundaries` is not given, then no `bucket_counts` may be given. * * Generated from protobuf message google.api.Distribution.BucketOptions */ class Distribution_BucketOptions extends \Google\Protobuf\Internal\Message { protected $options; public function __construct() { \GPBMetadata\Google\Api\Distribution::initOnce(); parent::__construct(); } /** * The linear bucket. * * Generated from protobuf field .google.api.Distribution.BucketOptions.Linear linear_buckets = 1; * @return \Google\Api\Distribution_BucketOptions_Linear */ public function getLinearBuckets() { return $this->readOneof(1); } /** * The linear bucket. * * Generated from protobuf field .google.api.Distribution.BucketOptions.Linear linear_buckets = 1; * @param \Google\Api\Distribution_BucketOptions_Linear $var * @return $this */ public function setLinearBuckets($var) { GPBUtil::checkMessage($var, \Google\Api\Distribution_BucketOptions_Linear::class); $this->writeOneof(1, $var); return $this; } /** * The exponential buckets. * * Generated from protobuf field .google.api.Distribution.BucketOptions.Exponential exponential_buckets = 2; * @return \Google\Api\Distribution_BucketOptions_Exponential */ public function getExponentialBuckets() { return $this->readOneof(2); } /** * The exponential buckets. * * Generated from protobuf field .google.api.Distribution.BucketOptions.Exponential exponential_buckets = 2; * @param \Google\Api\Distribution_BucketOptions_Exponential $var * @return $this */ public function setExponentialBuckets($var) { GPBUtil::checkMessage($var, \Google\Api\Distribution_BucketOptions_Exponential::class); $this->writeOneof(2, $var); return $this; } /** * The explicit buckets. * * Generated from protobuf field .google.api.Distribution.BucketOptions.Explicit explicit_buckets = 3; * @return \Google\Api\Distribution_BucketOptions_Explicit */ public function getExplicitBuckets() { return $this->readOneof(3); } /** * The explicit buckets. * * Generated from protobuf field .google.api.Distribution.BucketOptions.Explicit explicit_buckets = 3; * @param \Google\Api\Distribution_BucketOptions_Explicit $var * @return $this */ public function setExplicitBuckets($var) { GPBUtil::checkMessage($var, \Google\Api\Distribution_BucketOptions_Explicit::class); $this->writeOneof(3, $var); return $this; } /** * @return string */ public function getOptions() { return $this->whichOneof("options"); } } src/Api/Distribution_BucketOptions_Explicit.php000064400000003560151742740600015760 0ustar00google.api.Distribution.BucketOptions.Explicit */ class Distribution_BucketOptions_Explicit extends \Google\Protobuf\Internal\Message { /** * The values must be monotonically increasing. * * Generated from protobuf field repeated double bounds = 1; */ private $bounds; public function __construct() { \GPBMetadata\Google\Api\Distribution::initOnce(); parent::__construct(); } /** * The values must be monotonically increasing. * * Generated from protobuf field repeated double bounds = 1; * @return \Google\Protobuf\Internal\RepeatedField */ public function getBounds() { return $this->bounds; } /** * The values must be monotonically increasing. * * Generated from protobuf field repeated double bounds = 1; * @param float[]|\Google\Protobuf\Internal\RepeatedField $var * @return $this */ public function setBounds($var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::DOUBLE); $this->bounds = $arr; return $this; } } src/Api/Distribution_BucketOptions_Exponential.php000064400000006143151742740600016465 0ustar00google.api.Distribution.BucketOptions.Exponential */ class Distribution_BucketOptions_Exponential extends \Google\Protobuf\Internal\Message { /** * Must be greater than 0. * * Generated from protobuf field int32 num_finite_buckets = 1; */ private $num_finite_buckets = 0; /** * Must be greater than 1. * * Generated from protobuf field double growth_factor = 2; */ private $growth_factor = 0.0; /** * Must be greater than 0. * * Generated from protobuf field double scale = 3; */ private $scale = 0.0; public function __construct() { \GPBMetadata\Google\Api\Distribution::initOnce(); parent::__construct(); } /** * Must be greater than 0. * * Generated from protobuf field int32 num_finite_buckets = 1; * @return int */ public function getNumFiniteBuckets() { return $this->num_finite_buckets; } /** * Must be greater than 0. * * Generated from protobuf field int32 num_finite_buckets = 1; * @param int $var * @return $this */ public function setNumFiniteBuckets($var) { GPBUtil::checkInt32($var); $this->num_finite_buckets = $var; return $this; } /** * Must be greater than 1. * * Generated from protobuf field double growth_factor = 2; * @return float */ public function getGrowthFactor() { return $this->growth_factor; } /** * Must be greater than 1. * * Generated from protobuf field double growth_factor = 2; * @param float $var * @return $this */ public function setGrowthFactor($var) { GPBUtil::checkDouble($var); $this->growth_factor = $var; return $this; } /** * Must be greater than 0. * * Generated from protobuf field double scale = 3; * @return float */ public function getScale() { return $this->scale; } /** * Must be greater than 0. * * Generated from protobuf field double scale = 3; * @param float $var * @return $this */ public function setScale($var) { GPBUtil::checkDouble($var); $this->scale = $var; return $this; } } src/Api/Distribution_BucketOptions_Linear.php000064400000006052151742740600015410 0ustar00google.api.Distribution.BucketOptions.Linear */ class Distribution_BucketOptions_Linear extends \Google\Protobuf\Internal\Message { /** * Must be greater than 0. * * Generated from protobuf field int32 num_finite_buckets = 1; */ private $num_finite_buckets = 0; /** * Must be greater than 0. * * Generated from protobuf field double width = 2; */ private $width = 0.0; /** * Lower bound of the first bucket. * * Generated from protobuf field double offset = 3; */ private $offset = 0.0; public function __construct() { \GPBMetadata\Google\Api\Distribution::initOnce(); parent::__construct(); } /** * Must be greater than 0. * * Generated from protobuf field int32 num_finite_buckets = 1; * @return int */ public function getNumFiniteBuckets() { return $this->num_finite_buckets; } /** * Must be greater than 0. * * Generated from protobuf field int32 num_finite_buckets = 1; * @param int $var * @return $this */ public function setNumFiniteBuckets($var) { GPBUtil::checkInt32($var); $this->num_finite_buckets = $var; return $this; } /** * Must be greater than 0. * * Generated from protobuf field double width = 2; * @return float */ public function getWidth() { return $this->width; } /** * Must be greater than 0. * * Generated from protobuf field double width = 2; * @param float $var * @return $this */ public function setWidth($var) { GPBUtil::checkDouble($var); $this->width = $var; return $this; } /** * Lower bound of the first bucket. * * Generated from protobuf field double offset = 3; * @return float */ public function getOffset() { return $this->offset; } /** * Lower bound of the first bucket. * * Generated from protobuf field double offset = 3; * @param float $var * @return $this */ public function setOffset($var) { GPBUtil::checkDouble($var); $this->offset = $var; return $this; } } src/Api/Distribution_Range.php000064400000003663151742740600012366 0ustar00google.api.Distribution.Range */ class Distribution_Range extends \Google\Protobuf\Internal\Message { /** * The minimum of the population values. * * Generated from protobuf field double min = 1; */ private $min = 0.0; /** * The maximum of the population values. * * Generated from protobuf field double max = 2; */ private $max = 0.0; public function __construct() { \GPBMetadata\Google\Api\Distribution::initOnce(); parent::__construct(); } /** * The minimum of the population values. * * Generated from protobuf field double min = 1; * @return float */ public function getMin() { return $this->min; } /** * The minimum of the population values. * * Generated from protobuf field double min = 1; * @param float $var * @return $this */ public function setMin($var) { GPBUtil::checkDouble($var); $this->min = $var; return $this; } /** * The maximum of the population values. * * Generated from protobuf field double max = 2; * @return float */ public function getMax() { return $this->max; } /** * The maximum of the population values. * * Generated from protobuf field double max = 2; * @param float $var * @return $this */ public function setMax($var) { GPBUtil::checkDouble($var); $this->max = $var; return $this; } } src/Api/Documentation.php000064400000022045151742740600011377 0ustar00documentation: * summary: > * The Google Calendar API gives access * to most calendar features. * pages: * - name: Overview * content: (== include google/foo/overview.md ==) * - name: Tutorial * content: (== include google/foo/tutorial.md ==) * subpages; * - name: Java * content: (== include google/foo/tutorial_java.md ==) * rules: * - selector: google.calendar.Calendar.Get * description: > * ... * - selector: google.calendar.Calendar.Put * description: > * ... * * Documentation is provided in markdown syntax. In addition to * standard markdown features, definition lists, tables and fenced * code blocks are supported. Section headers can be provided and are * interpreted relative to the section nesting of the context where * a documentation fragment is embedded. * Documentation from the IDL is merged with documentation defined * via the config at normalization time, where documentation provided * by config rules overrides IDL provided. * A number of constructs specific to the API platform are supported * in documentation text. * In order to reference a proto element, the following * notation can be used: *
[fully.qualified.proto.name][]
* To override the display text used for the link, this can be used: *
[display text][fully.qualified.proto.name]
* Text can be excluded from doc using the following notation: *
(-- internal comment --)
* Comments can be made conditional using a visibility label. The below * text will be only rendered if the `BETA` label is available: *
(--BETA: comment for BETA users --)
* A few directives are available in documentation. Note that * directives must appear on a single line to be properly * identified. The `include` directive includes a markdown file from * an external source: *
(== include path/to/file ==)
* The `resource_for` directive marks a message to be the resource of * a collection in REST view. If it is not specified, tools attempt * to infer the resource from the operations in a collection: *
(== resource_for v1.shelves.books ==)
* The directive `suppress_warning` does not directly affect documentation * and is documented together with service config validation. * * Generated from protobuf message google.api.Documentation */ class Documentation extends \Google\Protobuf\Internal\Message { /** * A short summary of what the service does. Can only be provided by * plain text. * * Generated from protobuf field string summary = 1; */ private $summary = ''; /** * The top level pages for the documentation set. * * Generated from protobuf field repeated .google.api.Page pages = 5; */ private $pages; /** * A list of documentation rules that apply to individual API elements. * **NOTE:** All service configuration rules follow "last one wins" order. * * Generated from protobuf field repeated .google.api.DocumentationRule rules = 3; */ private $rules; /** * The URL to the root of documentation. * * Generated from protobuf field string documentation_root_url = 4; */ private $documentation_root_url = ''; /** * Declares a single overview page. For example: *
documentation:
     *   summary: ...
     *   overview: (== include overview.md ==)
     * 
* This is a shortcut for the following declaration (using pages style): *
documentation:
     *   summary: ...
     *   pages:
     *   - name: Overview
     *     content: (== include overview.md ==)
     * 
* Note: you cannot specify both `overview` field and `pages` field. * * Generated from protobuf field string overview = 2; */ private $overview = ''; public function __construct() { \GPBMetadata\Google\Api\Documentation::initOnce(); parent::__construct(); } /** * A short summary of what the service does. Can only be provided by * plain text. * * Generated from protobuf field string summary = 1; * @return string */ public function getSummary() { return $this->summary; } /** * A short summary of what the service does. Can only be provided by * plain text. * * Generated from protobuf field string summary = 1; * @param string $var * @return $this */ public function setSummary($var) { GPBUtil::checkString($var, True); $this->summary = $var; return $this; } /** * The top level pages for the documentation set. * * Generated from protobuf field repeated .google.api.Page pages = 5; * @return \Google\Protobuf\Internal\RepeatedField */ public function getPages() { return $this->pages; } /** * The top level pages for the documentation set. * * Generated from protobuf field repeated .google.api.Page pages = 5; * @param \Google\Api\Page[]|\Google\Protobuf\Internal\RepeatedField $var * @return $this */ public function setPages($var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\Page::class); $this->pages = $arr; return $this; } /** * A list of documentation rules that apply to individual API elements. * **NOTE:** All service configuration rules follow "last one wins" order. * * Generated from protobuf field repeated .google.api.DocumentationRule rules = 3; * @return \Google\Protobuf\Internal\RepeatedField */ public function getRules() { return $this->rules; } /** * A list of documentation rules that apply to individual API elements. * **NOTE:** All service configuration rules follow "last one wins" order. * * Generated from protobuf field repeated .google.api.DocumentationRule rules = 3; * @param \Google\Api\DocumentationRule[]|\Google\Protobuf\Internal\RepeatedField $var * @return $this */ public function setRules($var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\DocumentationRule::class); $this->rules = $arr; return $this; } /** * The URL to the root of documentation. * * Generated from protobuf field string documentation_root_url = 4; * @return string */ public function getDocumentationRootUrl() { return $this->documentation_root_url; } /** * The URL to the root of documentation. * * Generated from protobuf field string documentation_root_url = 4; * @param string $var * @return $this */ public function setDocumentationRootUrl($var) { GPBUtil::checkString($var, True); $this->documentation_root_url = $var; return $this; } /** * Declares a single overview page. For example: *
documentation:
     *   summary: ...
     *   overview: (== include overview.md ==)
     * 
* This is a shortcut for the following declaration (using pages style): *
documentation:
     *   summary: ...
     *   pages:
     *   - name: Overview
     *     content: (== include overview.md ==)
     * 
* Note: you cannot specify both `overview` field and `pages` field. * * Generated from protobuf field string overview = 2; * @return string */ public function getOverview() { return $this->overview; } /** * Declares a single overview page. For example: *
documentation:
     *   summary: ...
     *   overview: (== include overview.md ==)
     * 
* This is a shortcut for the following declaration (using pages style): *
documentation:
     *   summary: ...
     *   pages:
     *   - name: Overview
     *     content: (== include overview.md ==)
     * 
* Note: you cannot specify both `overview` field and `pages` field. * * Generated from protobuf field string overview = 2; * @param string $var * @return $this */ public function setOverview($var) { GPBUtil::checkString($var, True); $this->overview = $var; return $this; } } src/Api/DocumentationRule.php000064400000010327151742740600012227 0ustar00google.api.DocumentationRule */ class DocumentationRule extends \Google\Protobuf\Internal\Message { /** * The selector is a comma-separated list of patterns. Each pattern is a * qualified name of the element which may end in "*", indicating a wildcard. * Wildcards are only allowed at the end and for a whole component of the * qualified name, i.e. "foo.*" is ok, but not "foo.b*" or "foo.*.bar". To * specify a default for all applicable elements, the whole pattern "*" * is used. * * Generated from protobuf field string selector = 1; */ private $selector = ''; /** * Description of the selected API(s). * * Generated from protobuf field string description = 2; */ private $description = ''; /** * Deprecation description of the selected element(s). It can be provided if an * element is marked as `deprecated`. * * Generated from protobuf field string deprecation_description = 3; */ private $deprecation_description = ''; public function __construct() { \GPBMetadata\Google\Api\Documentation::initOnce(); parent::__construct(); } /** * The selector is a comma-separated list of patterns. Each pattern is a * qualified name of the element which may end in "*", indicating a wildcard. * Wildcards are only allowed at the end and for a whole component of the * qualified name, i.e. "foo.*" is ok, but not "foo.b*" or "foo.*.bar". To * specify a default for all applicable elements, the whole pattern "*" * is used. * * Generated from protobuf field string selector = 1; * @return string */ public function getSelector() { return $this->selector; } /** * The selector is a comma-separated list of patterns. Each pattern is a * qualified name of the element which may end in "*", indicating a wildcard. * Wildcards are only allowed at the end and for a whole component of the * qualified name, i.e. "foo.*" is ok, but not "foo.b*" or "foo.*.bar". To * specify a default for all applicable elements, the whole pattern "*" * is used. * * Generated from protobuf field string selector = 1; * @param string $var * @return $this */ public function setSelector($var) { GPBUtil::checkString($var, True); $this->selector = $var; return $this; } /** * Description of the selected API(s). * * Generated from protobuf field string description = 2; * @return string */ public function getDescription() { return $this->description; } /** * Description of the selected API(s). * * Generated from protobuf field string description = 2; * @param string $var * @return $this */ public function setDescription($var) { GPBUtil::checkString($var, True); $this->description = $var; return $this; } /** * Deprecation description of the selected element(s). It can be provided if an * element is marked as `deprecated`. * * Generated from protobuf field string deprecation_description = 3; * @return string */ public function getDeprecationDescription() { return $this->deprecation_description; } /** * Deprecation description of the selected element(s). It can be provided if an * element is marked as `deprecated`. * * Generated from protobuf field string deprecation_description = 3; * @param string $var * @return $this */ public function setDeprecationDescription($var) { GPBUtil::checkString($var, True); $this->deprecation_description = $var; return $this; } } src/Api/Endpoint.php000064400000020466151742740600010353 0ustar00google.api.Endpoint */ class Endpoint extends \Google\Protobuf\Internal\Message { /** * The canonical name of this endpoint. * * Generated from protobuf field string name = 1; */ private $name = ''; /** * DEPRECATED: This field is no longer supported. Instead of using aliases, * please specify multiple [google.api.Endpoint][google.api.Endpoint] for each of the intented * alias. * Additional names that this endpoint will be hosted on. * * Generated from protobuf field repeated string aliases = 2; */ private $aliases; /** * The list of APIs served by this endpoint. * * Generated from protobuf field repeated string apis = 3; */ private $apis; /** * The list of features enabled on this endpoint. * * Generated from protobuf field repeated string features = 4; */ private $features; /** * The specification of an Internet routable address of API frontend that will * handle requests to this [API Endpoint](https://cloud.google.com/apis/design/glossary). * It should be either a valid IPv4 address or a fully-qualified domain name. * For example, "8.8.8.8" or "myservice.appspot.com". * * Generated from protobuf field string target = 101; */ private $target = ''; /** * Allowing * [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka * cross-domain traffic, would allow the backends served from this endpoint to * receive and respond to HTTP OPTIONS requests. The response will be used by * the browser to determine whether the subsequent cross-origin request is * allowed to proceed. * * Generated from protobuf field bool allow_cors = 5; */ private $allow_cors = false; public function __construct() { \GPBMetadata\Google\Api\Endpoint::initOnce(); parent::__construct(); } /** * The canonical name of this endpoint. * * Generated from protobuf field string name = 1; * @return string */ public function getName() { return $this->name; } /** * The canonical name of this endpoint. * * 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; } /** * DEPRECATED: This field is no longer supported. Instead of using aliases, * please specify multiple [google.api.Endpoint][google.api.Endpoint] for each of the intented * alias. * Additional names that this endpoint will be hosted on. * * Generated from protobuf field repeated string aliases = 2; * @return \Google\Protobuf\Internal\RepeatedField */ public function getAliases() { return $this->aliases; } /** * DEPRECATED: This field is no longer supported. Instead of using aliases, * please specify multiple [google.api.Endpoint][google.api.Endpoint] for each of the intented * alias. * Additional names that this endpoint will be hosted on. * * Generated from protobuf field repeated string aliases = 2; * @param string[]|\Google\Protobuf\Internal\RepeatedField $var * @return $this */ public function setAliases($var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); $this->aliases = $arr; return $this; } /** * The list of APIs served by this endpoint. * * Generated from protobuf field repeated string apis = 3; * @return \Google\Protobuf\Internal\RepeatedField */ public function getApis() { return $this->apis; } /** * The list of APIs served by this endpoint. * * Generated from protobuf field repeated string apis = 3; * @param string[]|\Google\Protobuf\Internal\RepeatedField $var * @return $this */ public function setApis($var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); $this->apis = $arr; return $this; } /** * The list of features enabled on this endpoint. * * Generated from protobuf field repeated string features = 4; * @return \Google\Protobuf\Internal\RepeatedField */ public function getFeatures() { return $this->features; } /** * The list of features enabled on this endpoint. * * Generated from protobuf field repeated string features = 4; * @param string[]|\Google\Protobuf\Internal\RepeatedField $var * @return $this */ public function setFeatures($var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); $this->features = $arr; return $this; } /** * The specification of an Internet routable address of API frontend that will * handle requests to this [API Endpoint](https://cloud.google.com/apis/design/glossary). * It should be either a valid IPv4 address or a fully-qualified domain name. * For example, "8.8.8.8" or "myservice.appspot.com". * * Generated from protobuf field string target = 101; * @return string */ public function getTarget() { return $this->target; } /** * The specification of an Internet routable address of API frontend that will * handle requests to this [API Endpoint](https://cloud.google.com/apis/design/glossary). * It should be either a valid IPv4 address or a fully-qualified domain name. * For example, "8.8.8.8" or "myservice.appspot.com". * * Generated from protobuf field string target = 101; * @param string $var * @return $this */ public function setTarget($var) { GPBUtil::checkString($var, True); $this->target = $var; return $this; } /** * Allowing * [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka * cross-domain traffic, would allow the backends served from this endpoint to * receive and respond to HTTP OPTIONS requests. The response will be used by * the browser to determine whether the subsequent cross-origin request is * allowed to proceed. * * Generated from protobuf field bool allow_cors = 5; * @return bool */ public function getAllowCors() { return $this->allow_cors; } /** * Allowing * [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka * cross-domain traffic, would allow the backends served from this endpoint to * receive and respond to HTTP OPTIONS requests. The response will be used by * the browser to determine whether the subsequent cross-origin request is * allowed to proceed. * * Generated from protobuf field bool allow_cors = 5; * @param bool $var * @return $this */ public function setAllowCors($var) { GPBUtil::checkBool($var); $this->allow_cors = $var; return $this; } } src/Api/Experimental.php000064400000003057151742740600011225 0ustar00google.api.Experimental */ class Experimental extends \Google\Protobuf\Internal\Message { /** * Authorization configuration. * * Generated from protobuf field .google.api.AuthorizationConfig authorization = 8; */ private $authorization = null; public function __construct() { \GPBMetadata\Google\Api\Experimental\Experimental::initOnce(); parent::__construct(); } /** * Authorization configuration. * * Generated from protobuf field .google.api.AuthorizationConfig authorization = 8; * @return \Google\Api\AuthorizationConfig */ public function getAuthorization() { return $this->authorization; } /** * Authorization configuration. * * Generated from protobuf field .google.api.AuthorizationConfig authorization = 8; * @param \Google\Api\AuthorizationConfig $var * @return $this */ public function setAuthorization($var) { GPBUtil::checkMessage($var, \Google\Api\AuthorizationConfig::class); $this->authorization = $var; return $this; } } src/Api/Http.php000064400000003702151742740600007504 0ustar00google.api.Http */ class Http extends \Google\Protobuf\Internal\Message { /** * A list of HTTP configuration rules that apply to individual API methods. * **NOTE:** All service configuration rules follow "last one wins" order. * * Generated from protobuf field repeated .google.api.HttpRule rules = 1; */ private $rules; public function __construct() { \GPBMetadata\Google\Api\Http::initOnce(); parent::__construct(); } /** * A list of HTTP configuration rules that apply to individual API methods. * **NOTE:** All service configuration rules follow "last one wins" order. * * Generated from protobuf field repeated .google.api.HttpRule rules = 1; * @return \Google\Protobuf\Internal\RepeatedField */ public function getRules() { return $this->rules; } /** * A list of HTTP configuration rules that apply to individual API methods. * **NOTE:** All service configuration rules follow "last one wins" order. * * Generated from protobuf field repeated .google.api.HttpRule rules = 1; * @param \Google\Api\HttpRule[]|\Google\Protobuf\Internal\RepeatedField $var * @return $this */ public function setRules($var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\HttpRule::class); $this->rules = $arr; return $this; } } src/Api/HttpBody.php000064400000006501151742740600010322 0ustar00google.api.HttpBody */ class HttpBody extends \Google\Protobuf\Internal\Message { /** * The HTTP Content-Type string representing the content type of the body. * * Generated from protobuf field string content_type = 1; */ private $content_type = ''; /** * HTTP body binary data. * * Generated from protobuf field bytes data = 2; */ private $data = ''; public function __construct() { \GPBMetadata\Google\Api\Httpbody::initOnce(); parent::__construct(); } /** * The HTTP Content-Type string representing the content type of the body. * * Generated from protobuf field string content_type = 1; * @return string */ public function getContentType() { return $this->content_type; } /** * The HTTP Content-Type string representing the content type of the body. * * Generated from protobuf field string content_type = 1; * @param string $var * @return $this */ public function setContentType($var) { GPBUtil::checkString($var, True); $this->content_type = $var; return $this; } /** * HTTP body binary data. * * Generated from protobuf field bytes data = 2; * @return string */ public function getData() { return $this->data; } /** * HTTP body binary data. * * Generated from protobuf field bytes data = 2; * @param string $var * @return $this */ public function setData($var) { GPBUtil::checkString($var, False); $this->data = $var; return $this; } } src/Api/HttpRule.php000064400000036724151742740600010346 0ustar00.Messaging.GetMessage * get: /v1/messages/{message_id}/{sub.subfield} * This definition enables an automatic, bidrectional mapping of HTTP * JSON to RPC. Example: * HTTP | RPC * -----|----- * `GET /v1/messages/123456/foo` | `GetMessage(message_id: "123456" sub: SubMessage(subfield: "foo"))` * In general, not only fields but also field paths can be referenced * from a path pattern. Fields mapped to the path pattern cannot be * repeated and must have a primitive (non-message) type. * Any fields in the request message which are not bound by the path * pattern automatically become (optional) HTTP query * parameters. Assume the following definition of the request message: * message GetMessageRequest { * message SubMessage { * string subfield = 1; * } * string message_id = 1; // mapped to the URL * int64 revision = 2; // becomes a parameter * SubMessage sub = 3; // `sub.subfield` becomes a parameter * } * This enables a HTTP JSON to RPC mapping as below: * HTTP | RPC * -----|----- * `GET /v1/messages/123456?revision=2&sub.subfield=foo` | `GetMessage(message_id: "123456" revision: 2 sub: SubMessage(subfield: "foo"))` * Note that fields which are mapped to HTTP parameters must have a * primitive type or a repeated primitive type. Message types are not * allowed. In the case of a repeated type, the parameter can be * repeated in the URL, as in `...?param=A¶m=B`. * For HTTP method kinds which allow a request body, the `body` field * specifies the mapping. Consider a REST update method on the * message resource collection: * service Messaging { * rpc UpdateMessage(UpdateMessageRequest) returns (Message) { * option (google.api.http) = { * put: "/v1/messages/{message_id}" * body: "message" * }; * } * } * message UpdateMessageRequest { * string message_id = 1; // mapped to the URL * Message message = 2; // mapped to the body * } * The following HTTP JSON to RPC mapping is enabled, where the * representation of the JSON in the request body is determined by * protos JSON encoding: * HTTP | RPC * -----|----- * `PUT /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id: "123456" message { text: "Hi!" })` * The special name `*` can be used in the body mapping to define that * every field not bound by the path template should be mapped to the * request body. This enables the following alternative definition of * the update method: * service Messaging { * rpc UpdateMessage(Message) returns (Message) { * option (google.api.http) = { * put: "/v1/messages/{message_id}" * body: "*" * }; * } * } * message Message { * string message_id = 1; * string text = 2; * } * The following HTTP JSON to RPC mapping is enabled: * HTTP | RPC * -----|----- * `PUT /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id: "123456" text: "Hi!")` * Note that when using `*` in the body mapping, it is not possible to * have HTTP parameters, as all fields not bound by the path end in * the body. This makes this option more rarely used in practice of * defining REST APIs. The common usage of `*` is in custom methods * which don't use the URL at all for transferring data. * It is possible to define multiple HTTP methods for one RPC by using * the `additional_bindings` option. Example: * service Messaging { * rpc GetMessage(GetMessageRequest) returns (Message) { * option (google.api.http) = { * get: "/v1/messages/{message_id}" * additional_bindings { * get: "/v1/users/{user_id}/messages/{message_id}" * } * }; * } * } * message GetMessageRequest { * string message_id = 1; * string user_id = 2; * } * This enables the following two alternative HTTP JSON to RPC * mappings: * HTTP | RPC * -----|----- * `GET /v1/messages/123456` | `GetMessage(message_id: "123456")` * `GET /v1/users/me/messages/123456` | `GetMessage(user_id: "me" message_id: "123456")` * # Rules for HTTP mapping * The rules for mapping HTTP path, query parameters, and body fields * to the request message are as follows: * 1. The `body` field specifies either `*` or a field path, or is * omitted. If omitted, it assumes there is no HTTP body. * 2. Leaf fields (recursive expansion of nested messages in the * request) can be classified into three types: * (a) Matched in the URL template. * (b) Covered by body (if body is `*`, everything except (a) fields; * else everything under the body field) * (c) All other fields. * 3. URL query parameters found in the HTTP request are mapped to (c) fields. * 4. Any body sent with an HTTP request can contain only (b) fields. * The syntax of the path template is as follows: * Template = "/" Segments [ Verb ] ; * Segments = Segment { "/" Segment } ; * Segment = "*" | "**" | LITERAL | Variable ; * Variable = "{" FieldPath [ "=" Segments ] "}" ; * FieldPath = IDENT { "." IDENT } ; * Verb = ":" LITERAL ; * The syntax `*` matches a single path segment. It follows the semantics of * [RFC 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.2 Simple String * Expansion. * The syntax `**` matches zero or more path segments. It follows the semantics * of [RFC 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.3 Reserved * Expansion. NOTE: it must be the last segment in the path except the Verb. * The syntax `LITERAL` matches literal text in the URL path. * The syntax `Variable` matches the entire path as specified by its template; * this nested template must not contain further variables. If a variable * matches a single path segment, its template may be omitted, e.g. `{var}` * is equivalent to `{var=*}`. * NOTE: the field paths in variables and in the `body` must not refer to * repeated fields or map fields. * Use CustomHttpPattern to specify any HTTP method that is not included in the * `pattern` field, such as HEAD, or "*" to leave the HTTP method unspecified for * a given URL path rule. The wild-card rule is useful for services that provide * content to Web (HTML) clients. * * Generated from protobuf message google.api.HttpRule */ class HttpRule extends \Google\Protobuf\Internal\Message { /** * Selects methods to which this rule applies. * Refer to [selector][google.api.DocumentationRule.selector] for syntax details. * * Generated from protobuf field string selector = 1; */ private $selector = ''; /** * The name of the request field whose value is mapped to the HTTP body, or * `*` for mapping all fields not captured by the path pattern to the HTTP * body. NOTE: the referred field must not be a repeated field and must be * present at the top-level of request message type. * * Generated from protobuf field string body = 7; */ private $body = ''; /** * Additional HTTP bindings for the selector. Nested bindings must * not contain an `additional_bindings` field themselves (that is, * the nesting may only be one level deep). * * Generated from protobuf field repeated .google.api.HttpRule additional_bindings = 11; */ private $additional_bindings; protected $pattern; public function __construct() { \GPBMetadata\Google\Api\Http::initOnce(); parent::__construct(); } /** * Selects methods to which this rule applies. * Refer to [selector][google.api.DocumentationRule.selector] for syntax details. * * Generated from protobuf field string selector = 1; * @return string */ public function getSelector() { return $this->selector; } /** * Selects methods to which this rule applies. * Refer to [selector][google.api.DocumentationRule.selector] for syntax details. * * Generated from protobuf field string selector = 1; * @param string $var * @return $this */ public function setSelector($var) { GPBUtil::checkString($var, True); $this->selector = $var; return $this; } /** * Used for listing and getting information about resources. * * Generated from protobuf field string get = 2; * @return string */ public function getGet() { return $this->readOneof(2); } /** * Used for listing and getting information about resources. * * Generated from protobuf field string get = 2; * @param string $var * @return $this */ public function setGet($var) { GPBUtil::checkString($var, True); $this->writeOneof(2, $var); return $this; } /** * Used for updating a resource. * * Generated from protobuf field string put = 3; * @return string */ public function getPut() { return $this->readOneof(3); } /** * Used for updating a resource. * * Generated from protobuf field string put = 3; * @param string $var * @return $this */ public function setPut($var) { GPBUtil::checkString($var, True); $this->writeOneof(3, $var); return $this; } /** * Used for creating a resource. * * Generated from protobuf field string post = 4; * @return string */ public function getPost() { return $this->readOneof(4); } /** * Used for creating a resource. * * Generated from protobuf field string post = 4; * @param string $var * @return $this */ public function setPost($var) { GPBUtil::checkString($var, True); $this->writeOneof(4, $var); return $this; } /** * Used for deleting a resource. * * Generated from protobuf field string delete = 5; * @return string */ public function getDelete() { return $this->readOneof(5); } /** * Used for deleting a resource. * * Generated from protobuf field string delete = 5; * @param string $var * @return $this */ public function setDelete($var) { GPBUtil::checkString($var, True); $this->writeOneof(5, $var); return $this; } /** * Used for updating a resource. * * Generated from protobuf field string patch = 6; * @return string */ public function getPatch() { return $this->readOneof(6); } /** * Used for updating a resource. * * Generated from protobuf field string patch = 6; * @param string $var * @return $this */ public function setPatch($var) { GPBUtil::checkString($var, True); $this->writeOneof(6, $var); return $this; } /** * Custom pattern is used for defining custom verbs. * * Generated from protobuf field .google.api.CustomHttpPattern custom = 8; * @return \Google\Api\CustomHttpPattern */ public function getCustom() { return $this->readOneof(8); } /** * Custom pattern is used for defining custom verbs. * * Generated from protobuf field .google.api.CustomHttpPattern custom = 8; * @param \Google\Api\CustomHttpPattern $var * @return $this */ public function setCustom($var) { GPBUtil::checkMessage($var, \Google\Api\CustomHttpPattern::class); $this->writeOneof(8, $var); return $this; } /** * The name of the request field whose value is mapped to the HTTP body, or * `*` for mapping all fields not captured by the path pattern to the HTTP * body. NOTE: the referred field must not be a repeated field and must be * present at the top-level of request message type. * * Generated from protobuf field string body = 7; * @return string */ public function getBody() { return $this->body; } /** * The name of the request field whose value is mapped to the HTTP body, or * `*` for mapping all fields not captured by the path pattern to the HTTP * body. NOTE: the referred field must not be a repeated field and must be * present at the top-level of request message type. * * Generated from protobuf field string body = 7; * @param string $var * @return $this */ public function setBody($var) { GPBUtil::checkString($var, True); $this->body = $var; return $this; } /** * Additional HTTP bindings for the selector. Nested bindings must * not contain an `additional_bindings` field themselves (that is, * the nesting may only be one level deep). * * Generated from protobuf field repeated .google.api.HttpRule additional_bindings = 11; * @return \Google\Protobuf\Internal\RepeatedField */ public function getAdditionalBindings() { return $this->additional_bindings; } /** * Additional HTTP bindings for the selector. Nested bindings must * not contain an `additional_bindings` field themselves (that is, * the nesting may only be one level deep). * * Generated from protobuf field repeated .google.api.HttpRule additional_bindings = 11; * @param \Google\Api\HttpRule[]|\Google\Protobuf\Internal\RepeatedField $var * @return $this */ public function setAdditionalBindings($var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\HttpRule::class); $this->additional_bindings = $arr; return $this; } /** * @return string */ public function getPattern() { return $this->whichOneof("pattern"); } } src/Api/LabelDescriptor.php000064400000005511151742740600011643 0ustar00google.api.LabelDescriptor */ class LabelDescriptor extends \Google\Protobuf\Internal\Message { /** * The label key. * * Generated from protobuf field string key = 1; */ private $key = ''; /** * The type of data that can be assigned to the label. * * Generated from protobuf field .google.api.LabelDescriptor.ValueType value_type = 2; */ private $value_type = 0; /** * A human-readable description for the label. * * Generated from protobuf field string description = 3; */ private $description = ''; public function __construct() { \GPBMetadata\Google\Api\Label::initOnce(); parent::__construct(); } /** * The label key. * * Generated from protobuf field string key = 1; * @return string */ public function getKey() { return $this->key; } /** * The label key. * * Generated from protobuf field string key = 1; * @param string $var * @return $this */ public function setKey($var) { GPBUtil::checkString($var, True); $this->key = $var; return $this; } /** * The type of data that can be assigned to the label. * * Generated from protobuf field .google.api.LabelDescriptor.ValueType value_type = 2; * @return int */ public function getValueType() { return $this->value_type; } /** * The type of data that can be assigned to the label. * * Generated from protobuf field .google.api.LabelDescriptor.ValueType value_type = 2; * @param int $var * @return $this */ public function setValueType($var) { GPBUtil::checkEnum($var, \Google\Api\LabelDescriptor_ValueType::class); $this->value_type = $var; return $this; } /** * A human-readable description for the label. * * Generated from protobuf field string description = 3; * @return string */ public function getDescription() { return $this->description; } /** * A human-readable description for the label. * * Generated from protobuf field string description = 3; * @param string $var * @return $this */ public function setDescription($var) { GPBUtil::checkString($var, True); $this->description = $var; return $this; } } src/Api/LabelDescriptor_ValueType.php000064400000001313151742740600013635 0ustar00Google\Api\LabelDescriptor\ValueType */ class LabelDescriptor_ValueType { /** * A variable-length string. This is the default. * * Generated from protobuf enum STRING = 0; */ const STRING = 0; /** * Boolean; true or false. * * Generated from protobuf enum BOOL = 1; */ const BOOL = 1; /** * A 64-bit signed integer. * * Generated from protobuf enum INT64 = 2; */ const INT64 = 2; } src/Api/LogDescriptor.php000064400000012752151742740600011352 0ustar00google.api.LogDescriptor */ class LogDescriptor extends \Google\Protobuf\Internal\Message { /** * The name of the log. It must be less than 512 characters long and can * include the following characters: upper- and lower-case alphanumeric * characters [A-Za-z0-9], and punctuation characters including * slash, underscore, hyphen, period [/_-.]. * * Generated from protobuf field string name = 1; */ private $name = ''; /** * The set of labels that are available to describe a specific log entry. * Runtime requests that contain labels not specified here are * considered invalid. * * Generated from protobuf field repeated .google.api.LabelDescriptor labels = 2; */ private $labels; /** * A human-readable description of this log. This information appears in * the documentation and can contain details. * * Generated from protobuf field string description = 3; */ private $description = ''; /** * The human-readable name for this log. This information appears on * the user interface and should be concise. * * Generated from protobuf field string display_name = 4; */ private $display_name = ''; public function __construct() { \GPBMetadata\Google\Api\Log::initOnce(); parent::__construct(); } /** * The name of the log. It must be less than 512 characters long and can * include the following characters: upper- and lower-case alphanumeric * characters [A-Za-z0-9], and punctuation characters including * slash, underscore, hyphen, period [/_-.]. * * Generated from protobuf field string name = 1; * @return string */ public function getName() { return $this->name; } /** * The name of the log. It must be less than 512 characters long and can * include the following characters: upper- and lower-case alphanumeric * characters [A-Za-z0-9], and punctuation characters including * slash, underscore, hyphen, period [/_-.]. * * 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 set of labels that are available to describe a specific log entry. * Runtime requests that contain labels not specified here are * considered invalid. * * Generated from protobuf field repeated .google.api.LabelDescriptor labels = 2; * @return \Google\Protobuf\Internal\RepeatedField */ public function getLabels() { return $this->labels; } /** * The set of labels that are available to describe a specific log entry. * Runtime requests that contain labels not specified here are * considered invalid. * * Generated from protobuf field repeated .google.api.LabelDescriptor labels = 2; * @param \Google\Api\LabelDescriptor[]|\Google\Protobuf\Internal\RepeatedField $var * @return $this */ public function setLabels($var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\LabelDescriptor::class); $this->labels = $arr; return $this; } /** * A human-readable description of this log. This information appears in * the documentation and can contain details. * * Generated from protobuf field string description = 3; * @return string */ public function getDescription() { return $this->description; } /** * A human-readable description of this log. This information appears in * the documentation and can contain details. * * Generated from protobuf field string description = 3; * @param string $var * @return $this */ public function setDescription($var) { GPBUtil::checkString($var, True); $this->description = $var; return $this; } /** * The human-readable name for this log. This information appears on * the user interface and should be concise. * * Generated from protobuf field string display_name = 4; * @return string */ public function getDisplayName() { return $this->display_name; } /** * The human-readable name for this log. This information appears on * the user interface and should be concise. * * Generated from protobuf field string display_name = 4; * @param string $var * @return $this */ public function setDisplayName($var) { GPBUtil::checkString($var, True); $this->display_name = $var; return $this; } } src/Api/Logging.php000064400000011747151742740600010163 0ustar00google.api.Logging */ class Logging extends \Google\Protobuf\Internal\Message { /** * Logging configurations for sending logs to the producer project. * There can be multiple producer destinations, each one must have a * different monitored resource type. A log can be used in at most * one producer destination. * * Generated from protobuf field repeated .google.api.Logging.LoggingDestination producer_destinations = 1; */ private $producer_destinations; /** * Logging configurations for sending logs to the consumer project. * There can be multiple consumer destinations, each one must have a * different monitored resource type. A log can be used in at most * one consumer destination. * * Generated from protobuf field repeated .google.api.Logging.LoggingDestination consumer_destinations = 2; */ private $consumer_destinations; public function __construct() { \GPBMetadata\Google\Api\Logging::initOnce(); parent::__construct(); } /** * Logging configurations for sending logs to the producer project. * There can be multiple producer destinations, each one must have a * different monitored resource type. A log can be used in at most * one producer destination. * * Generated from protobuf field repeated .google.api.Logging.LoggingDestination producer_destinations = 1; * @return \Google\Protobuf\Internal\RepeatedField */ public function getProducerDestinations() { return $this->producer_destinations; } /** * Logging configurations for sending logs to the producer project. * There can be multiple producer destinations, each one must have a * different monitored resource type. A log can be used in at most * one producer destination. * * Generated from protobuf field repeated .google.api.Logging.LoggingDestination producer_destinations = 1; * @param \Google\Api\Logging_LoggingDestination[]|\Google\Protobuf\Internal\RepeatedField $var * @return $this */ public function setProducerDestinations($var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\Logging_LoggingDestination::class); $this->producer_destinations = $arr; return $this; } /** * Logging configurations for sending logs to the consumer project. * There can be multiple consumer destinations, each one must have a * different monitored resource type. A log can be used in at most * one consumer destination. * * Generated from protobuf field repeated .google.api.Logging.LoggingDestination consumer_destinations = 2; * @return \Google\Protobuf\Internal\RepeatedField */ public function getConsumerDestinations() { return $this->consumer_destinations; } /** * Logging configurations for sending logs to the consumer project. * There can be multiple consumer destinations, each one must have a * different monitored resource type. A log can be used in at most * one consumer destination. * * Generated from protobuf field repeated .google.api.Logging.LoggingDestination consumer_destinations = 2; * @param \Google\Api\Logging_LoggingDestination[]|\Google\Protobuf\Internal\RepeatedField $var * @return $this */ public function setConsumerDestinations($var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\Logging_LoggingDestination::class); $this->consumer_destinations = $arr; return $this; } } src/Api/Logging_LoggingDestination.php000064400000006432151742740600014026 0ustar00google.api.Logging.LoggingDestination */ class Logging_LoggingDestination extends \Google\Protobuf\Internal\Message { /** * The monitored resource type. The type must be defined in the * [Service.monitored_resources][google.api.Service.monitored_resources] section. * * Generated from protobuf field string monitored_resource = 3; */ private $monitored_resource = ''; /** * Names of the logs to be sent to this destination. Each name must * be defined in the [Service.logs][google.api.Service.logs] section. If the log name is * not a domain scoped name, it will be automatically prefixed with * the service name followed by "/". * * Generated from protobuf field repeated string logs = 1; */ private $logs; public function __construct() { \GPBMetadata\Google\Api\Logging::initOnce(); parent::__construct(); } /** * The monitored resource type. The type must be defined in the * [Service.monitored_resources][google.api.Service.monitored_resources] section. * * Generated from protobuf field string monitored_resource = 3; * @return string */ public function getMonitoredResource() { return $this->monitored_resource; } /** * The monitored resource type. The type must be defined in the * [Service.monitored_resources][google.api.Service.monitored_resources] section. * * Generated from protobuf field string monitored_resource = 3; * @param string $var * @return $this */ public function setMonitoredResource($var) { GPBUtil::checkString($var, True); $this->monitored_resource = $var; return $this; } /** * Names of the logs to be sent to this destination. Each name must * be defined in the [Service.logs][google.api.Service.logs] section. If the log name is * not a domain scoped name, it will be automatically prefixed with * the service name followed by "/". * * Generated from protobuf field repeated string logs = 1; * @return \Google\Protobuf\Internal\RepeatedField */ public function getLogs() { return $this->logs; } /** * Names of the logs to be sent to this destination. Each name must * be defined in the [Service.logs][google.api.Service.logs] section. If the log name is * not a domain scoped name, it will be automatically prefixed with * the service name followed by "/". * * Generated from protobuf field repeated string logs = 1; * @param string[]|\Google\Protobuf\Internal\RepeatedField $var * @return $this */ public function setLogs($var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); $this->logs = $arr; return $this; } } src/Api/Metric.php000064400000005530151742740600010011 0ustar00google.api.Metric */ class Metric extends \Google\Protobuf\Internal\Message { /** * An existing metric type, see [google.api.MetricDescriptor][google.api.MetricDescriptor]. * For example, `custom.googleapis.com/invoice/paid/amount`. * * Generated from protobuf field string type = 3; */ private $type = ''; /** * The set of label values that uniquely identify this metric. All * labels listed in the `MetricDescriptor` must be assigned values. * * Generated from protobuf field map labels = 2; */ private $labels; public function __construct() { \GPBMetadata\Google\Api\Metric::initOnce(); parent::__construct(); } /** * An existing metric type, see [google.api.MetricDescriptor][google.api.MetricDescriptor]. * For example, `custom.googleapis.com/invoice/paid/amount`. * * Generated from protobuf field string type = 3; * @return string */ public function getType() { return $this->type; } /** * An existing metric type, see [google.api.MetricDescriptor][google.api.MetricDescriptor]. * For example, `custom.googleapis.com/invoice/paid/amount`. * * Generated from protobuf field string type = 3; * @param string $var * @return $this */ public function setType($var) { GPBUtil::checkString($var, True); $this->type = $var; return $this; } /** * The set of label values that uniquely identify this metric. All * labels listed in the `MetricDescriptor` must be assigned values. * * Generated from protobuf field map labels = 2; * @return \Google\Protobuf\Internal\MapField */ public function getLabels() { return $this->labels; } /** * The set of label values that uniquely identify this metric. All * labels listed in the `MetricDescriptor` must be assigned values. * * Generated from protobuf field map labels = 2; * @param array|\Google\Protobuf\Internal\MapField $var * @return $this */ public function setLabels($var) { $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING); $this->labels = $arr; return $this; } } src/Api/MetricDescriptor.php000064400000042451151742740600012053 0ustar00google.api.MetricDescriptor */ class MetricDescriptor extends \Google\Protobuf\Internal\Message { /** * The resource name of the metric descriptor. Depending on the * implementation, the name typically includes: (1) the parent resource name * that defines the scope of the metric type or of its data; and (2) the * metric's URL-encoded type, which also appears in the `type` field of this * descriptor. For example, following is the resource name of a custom * metric within the GCP project `my-project-id`: * "projects/my-project-id/metricDescriptors/custom.googleapis.com%2Finvoice%2Fpaid%2Famount" * * Generated from protobuf field string name = 1; */ private $name = ''; /** * The metric type, including its DNS name prefix. The type is not * URL-encoded. All user-defined custom metric types have the DNS name * `custom.googleapis.com`. Metric types should use a natural hierarchical * grouping. For example: * "custom.googleapis.com/invoice/paid/amount" * "appengine.googleapis.com/http/server/response_latencies" * * Generated from protobuf field string type = 8; */ private $type = ''; /** * The set of labels that can be used to describe a specific * instance of this metric type. For example, the * `appengine.googleapis.com/http/server/response_latencies` metric * type has a label for the HTTP response code, `response_code`, so * you can look at latencies for successful responses or just * for responses that failed. * * Generated from protobuf field repeated .google.api.LabelDescriptor labels = 2; */ private $labels; /** * Whether the metric records instantaneous values, changes to a value, etc. * Some combinations of `metric_kind` and `value_type` might not be supported. * * Generated from protobuf field .google.api.MetricDescriptor.MetricKind metric_kind = 3; */ private $metric_kind = 0; /** * Whether the measurement is an integer, a floating-point number, etc. * Some combinations of `metric_kind` and `value_type` might not be supported. * * Generated from protobuf field .google.api.MetricDescriptor.ValueType value_type = 4; */ private $value_type = 0; /** * The unit in which the metric value is reported. It is only applicable * if the `value_type` is `INT64`, `DOUBLE`, or `DISTRIBUTION`. The * supported units are a subset of [The Unified Code for Units of * Measure](http://unitsofmeasure.org/ucum.html) standard: * **Basic units (UNIT)** * * `bit` bit * * `By` byte * * `s` second * * `min` minute * * `h` hour * * `d` day * **Prefixes (PREFIX)** * * `k` kilo (10**3) * * `M` mega (10**6) * * `G` giga (10**9) * * `T` tera (10**12) * * `P` peta (10**15) * * `E` exa (10**18) * * `Z` zetta (10**21) * * `Y` yotta (10**24) * * `m` milli (10**-3) * * `u` micro (10**-6) * * `n` nano (10**-9) * * `p` pico (10**-12) * * `f` femto (10**-15) * * `a` atto (10**-18) * * `z` zepto (10**-21) * * `y` yocto (10**-24) * * `Ki` kibi (2**10) * * `Mi` mebi (2**20) * * `Gi` gibi (2**30) * * `Ti` tebi (2**40) * **Grammar** * The grammar includes the dimensionless unit `1`, such as `1/s`. * The grammar also includes these connectors: * * `/` division (as an infix operator, e.g. `1/s`). * * `.` multiplication (as an infix operator, e.g. `GBy.d`) * The grammar for a unit is as follows: * Expression = Component { "." Component } { "/" Component } ; * Component = [ PREFIX ] UNIT [ Annotation ] * | Annotation * | "1" * ; * Annotation = "{" NAME "}" ; * Notes: * * `Annotation` is just a comment if it follows a `UNIT` and is * equivalent to `1` if it is used alone. For examples, * `{requests}/s == 1/s`, `By{transmitted}/s == By/s`. * * `NAME` is a sequence of non-blank printable ASCII characters not * containing '{' or '}'. * * Generated from protobuf field string unit = 5; */ private $unit = ''; /** * A detailed description of the metric, which can be used in documentation. * * Generated from protobuf field string description = 6; */ private $description = ''; /** * A concise name for the metric, which can be displayed in user interfaces. * Use sentence case without an ending period, for example "Request count". * * Generated from protobuf field string display_name = 7; */ private $display_name = ''; public function __construct() { \GPBMetadata\Google\Api\Metric::initOnce(); parent::__construct(); } /** * The resource name of the metric descriptor. Depending on the * implementation, the name typically includes: (1) the parent resource name * that defines the scope of the metric type or of its data; and (2) the * metric's URL-encoded type, which also appears in the `type` field of this * descriptor. For example, following is the resource name of a custom * metric within the GCP project `my-project-id`: * "projects/my-project-id/metricDescriptors/custom.googleapis.com%2Finvoice%2Fpaid%2Famount" * * Generated from protobuf field string name = 1; * @return string */ public function getName() { return $this->name; } /** * The resource name of the metric descriptor. Depending on the * implementation, the name typically includes: (1) the parent resource name * that defines the scope of the metric type or of its data; and (2) the * metric's URL-encoded type, which also appears in the `type` field of this * descriptor. For example, following is the resource name of a custom * metric within the GCP project `my-project-id`: * "projects/my-project-id/metricDescriptors/custom.googleapis.com%2Finvoice%2Fpaid%2Famount" * * 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 metric type, including its DNS name prefix. The type is not * URL-encoded. All user-defined custom metric types have the DNS name * `custom.googleapis.com`. Metric types should use a natural hierarchical * grouping. For example: * "custom.googleapis.com/invoice/paid/amount" * "appengine.googleapis.com/http/server/response_latencies" * * Generated from protobuf field string type = 8; * @return string */ public function getType() { return $this->type; } /** * The metric type, including its DNS name prefix. The type is not * URL-encoded. All user-defined custom metric types have the DNS name * `custom.googleapis.com`. Metric types should use a natural hierarchical * grouping. For example: * "custom.googleapis.com/invoice/paid/amount" * "appengine.googleapis.com/http/server/response_latencies" * * Generated from protobuf field string type = 8; * @param string $var * @return $this */ public function setType($var) { GPBUtil::checkString($var, True); $this->type = $var; return $this; } /** * The set of labels that can be used to describe a specific * instance of this metric type. For example, the * `appengine.googleapis.com/http/server/response_latencies` metric * type has a label for the HTTP response code, `response_code`, so * you can look at latencies for successful responses or just * for responses that failed. * * Generated from protobuf field repeated .google.api.LabelDescriptor labels = 2; * @return \Google\Protobuf\Internal\RepeatedField */ public function getLabels() { return $this->labels; } /** * The set of labels that can be used to describe a specific * instance of this metric type. For example, the * `appengine.googleapis.com/http/server/response_latencies` metric * type has a label for the HTTP response code, `response_code`, so * you can look at latencies for successful responses or just * for responses that failed. * * Generated from protobuf field repeated .google.api.LabelDescriptor labels = 2; * @param \Google\Api\LabelDescriptor[]|\Google\Protobuf\Internal\RepeatedField $var * @return $this */ public function setLabels($var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\LabelDescriptor::class); $this->labels = $arr; return $this; } /** * Whether the metric records instantaneous values, changes to a value, etc. * Some combinations of `metric_kind` and `value_type` might not be supported. * * Generated from protobuf field .google.api.MetricDescriptor.MetricKind metric_kind = 3; * @return int */ public function getMetricKind() { return $this->metric_kind; } /** * Whether the metric records instantaneous values, changes to a value, etc. * Some combinations of `metric_kind` and `value_type` might not be supported. * * Generated from protobuf field .google.api.MetricDescriptor.MetricKind metric_kind = 3; * @param int $var * @return $this */ public function setMetricKind($var) { GPBUtil::checkEnum($var, \Google\Api\MetricDescriptor_MetricKind::class); $this->metric_kind = $var; return $this; } /** * Whether the measurement is an integer, a floating-point number, etc. * Some combinations of `metric_kind` and `value_type` might not be supported. * * Generated from protobuf field .google.api.MetricDescriptor.ValueType value_type = 4; * @return int */ public function getValueType() { return $this->value_type; } /** * Whether the measurement is an integer, a floating-point number, etc. * Some combinations of `metric_kind` and `value_type` might not be supported. * * Generated from protobuf field .google.api.MetricDescriptor.ValueType value_type = 4; * @param int $var * @return $this */ public function setValueType($var) { GPBUtil::checkEnum($var, \Google\Api\MetricDescriptor_ValueType::class); $this->value_type = $var; return $this; } /** * The unit in which the metric value is reported. It is only applicable * if the `value_type` is `INT64`, `DOUBLE`, or `DISTRIBUTION`. The * supported units are a subset of [The Unified Code for Units of * Measure](http://unitsofmeasure.org/ucum.html) standard: * **Basic units (UNIT)** * * `bit` bit * * `By` byte * * `s` second * * `min` minute * * `h` hour * * `d` day * **Prefixes (PREFIX)** * * `k` kilo (10**3) * * `M` mega (10**6) * * `G` giga (10**9) * * `T` tera (10**12) * * `P` peta (10**15) * * `E` exa (10**18) * * `Z` zetta (10**21) * * `Y` yotta (10**24) * * `m` milli (10**-3) * * `u` micro (10**-6) * * `n` nano (10**-9) * * `p` pico (10**-12) * * `f` femto (10**-15) * * `a` atto (10**-18) * * `z` zepto (10**-21) * * `y` yocto (10**-24) * * `Ki` kibi (2**10) * * `Mi` mebi (2**20) * * `Gi` gibi (2**30) * * `Ti` tebi (2**40) * **Grammar** * The grammar includes the dimensionless unit `1`, such as `1/s`. * The grammar also includes these connectors: * * `/` division (as an infix operator, e.g. `1/s`). * * `.` multiplication (as an infix operator, e.g. `GBy.d`) * The grammar for a unit is as follows: * Expression = Component { "." Component } { "/" Component } ; * Component = [ PREFIX ] UNIT [ Annotation ] * | Annotation * | "1" * ; * Annotation = "{" NAME "}" ; * Notes: * * `Annotation` is just a comment if it follows a `UNIT` and is * equivalent to `1` if it is used alone. For examples, * `{requests}/s == 1/s`, `By{transmitted}/s == By/s`. * * `NAME` is a sequence of non-blank printable ASCII characters not * containing '{' or '}'. * * Generated from protobuf field string unit = 5; * @return string */ public function getUnit() { return $this->unit; } /** * The unit in which the metric value is reported. It is only applicable * if the `value_type` is `INT64`, `DOUBLE`, or `DISTRIBUTION`. The * supported units are a subset of [The Unified Code for Units of * Measure](http://unitsofmeasure.org/ucum.html) standard: * **Basic units (UNIT)** * * `bit` bit * * `By` byte * * `s` second * * `min` minute * * `h` hour * * `d` day * **Prefixes (PREFIX)** * * `k` kilo (10**3) * * `M` mega (10**6) * * `G` giga (10**9) * * `T` tera (10**12) * * `P` peta (10**15) * * `E` exa (10**18) * * `Z` zetta (10**21) * * `Y` yotta (10**24) * * `m` milli (10**-3) * * `u` micro (10**-6) * * `n` nano (10**-9) * * `p` pico (10**-12) * * `f` femto (10**-15) * * `a` atto (10**-18) * * `z` zepto (10**-21) * * `y` yocto (10**-24) * * `Ki` kibi (2**10) * * `Mi` mebi (2**20) * * `Gi` gibi (2**30) * * `Ti` tebi (2**40) * **Grammar** * The grammar includes the dimensionless unit `1`, such as `1/s`. * The grammar also includes these connectors: * * `/` division (as an infix operator, e.g. `1/s`). * * `.` multiplication (as an infix operator, e.g. `GBy.d`) * The grammar for a unit is as follows: * Expression = Component { "." Component } { "/" Component } ; * Component = [ PREFIX ] UNIT [ Annotation ] * | Annotation * | "1" * ; * Annotation = "{" NAME "}" ; * Notes: * * `Annotation` is just a comment if it follows a `UNIT` and is * equivalent to `1` if it is used alone. For examples, * `{requests}/s == 1/s`, `By{transmitted}/s == By/s`. * * `NAME` is a sequence of non-blank printable ASCII characters not * containing '{' or '}'. * * Generated from protobuf field string unit = 5; * @param string $var * @return $this */ public function setUnit($var) { GPBUtil::checkString($var, True); $this->unit = $var; return $this; } /** * A detailed description of the metric, which can be used in documentation. * * Generated from protobuf field string description = 6; * @return string */ public function getDescription() { return $this->description; } /** * A detailed description of the metric, which can be used in documentation. * * Generated from protobuf field string description = 6; * @param string $var * @return $this */ public function setDescription($var) { GPBUtil::checkString($var, True); $this->description = $var; return $this; } /** * A concise name for the metric, which can be displayed in user interfaces. * Use sentence case without an ending period, for example "Request count". * * Generated from protobuf field string display_name = 7; * @return string */ public function getDisplayName() { return $this->display_name; } /** * A concise name for the metric, which can be displayed in user interfaces. * Use sentence case without an ending period, for example "Request count". * * Generated from protobuf field string display_name = 7; * @param string $var * @return $this */ public function setDisplayName($var) { GPBUtil::checkString($var, True); $this->display_name = $var; return $this; } } src/Api/MetricDescriptor_MetricKind.php000064400000002246151742740600014162 0ustar00Google\Api\MetricDescriptor\MetricKind */ class MetricDescriptor_MetricKind { /** * Do not use this default value. * * Generated from protobuf enum METRIC_KIND_UNSPECIFIED = 0; */ const METRIC_KIND_UNSPECIFIED = 0; /** * An instantaneous measurement of a value. * * Generated from protobuf enum GAUGE = 1; */ const GAUGE = 1; /** * The change in a value during a time interval. * * Generated from protobuf enum DELTA = 2; */ const DELTA = 2; /** * A value accumulated over a time interval. Cumulative * measurements in a time series should have the same start time * and increasing end times, until an event resets the cumulative * value to zero and sets a new start time for the following * points. * * Generated from protobuf enum CUMULATIVE = 3; */ const CUMULATIVE = 3; } src/Api/MetricDescriptor_ValueType.php000064400000002726151742740600014052 0ustar00Google\Api\MetricDescriptor\ValueType */ class MetricDescriptor_ValueType { /** * Do not use this default value. * * Generated from protobuf enum VALUE_TYPE_UNSPECIFIED = 0; */ const VALUE_TYPE_UNSPECIFIED = 0; /** * The value is a boolean. * This value type can be used only if the metric kind is `GAUGE`. * * Generated from protobuf enum BOOL = 1; */ const BOOL = 1; /** * The value is a signed 64-bit integer. * * Generated from protobuf enum INT64 = 2; */ const INT64 = 2; /** * The value is a double precision floating point number. * * Generated from protobuf enum DOUBLE = 3; */ const DOUBLE = 3; /** * The value is a text string. * This value type can be used only if the metric kind is `GAUGE`. * * Generated from protobuf enum STRING = 4; */ const STRING = 4; /** * The value is a [`Distribution`][google.api.Distribution]. * * Generated from protobuf enum DISTRIBUTION = 5; */ const DISTRIBUTION = 5; /** * The value is money. * * Generated from protobuf enum MONEY = 6; */ const MONEY = 6; } src/Api/MetricRule.php000064400000006645151742740600010651 0ustar00google.api.MetricRule */ class MetricRule extends \Google\Protobuf\Internal\Message { /** * Selects the methods to which this rule applies. * Refer to [selector][google.api.DocumentationRule.selector] for syntax details. * * Generated from protobuf field string selector = 1; */ private $selector = ''; /** * Metrics to update when the selected methods are called, and the associated * cost applied to each metric. * The key of the map is the metric name, and the values are the amount * increased for the metric against which the quota limits are defined. * The value must not be negative. * * Generated from protobuf field map metric_costs = 2; */ private $metric_costs; public function __construct() { \GPBMetadata\Google\Api\Quota::initOnce(); parent::__construct(); } /** * Selects the methods to which this rule applies. * Refer to [selector][google.api.DocumentationRule.selector] for syntax details. * * Generated from protobuf field string selector = 1; * @return string */ public function getSelector() { return $this->selector; } /** * Selects the methods to which this rule applies. * Refer to [selector][google.api.DocumentationRule.selector] for syntax details. * * Generated from protobuf field string selector = 1; * @param string $var * @return $this */ public function setSelector($var) { GPBUtil::checkString($var, True); $this->selector = $var; return $this; } /** * Metrics to update when the selected methods are called, and the associated * cost applied to each metric. * The key of the map is the metric name, and the values are the amount * increased for the metric against which the quota limits are defined. * The value must not be negative. * * Generated from protobuf field map metric_costs = 2; * @return \Google\Protobuf\Internal\MapField */ public function getMetricCosts() { return $this->metric_costs; } /** * Metrics to update when the selected methods are called, and the associated * cost applied to each metric. * The key of the map is the metric name, and the values are the amount * increased for the metric against which the quota limits are defined. * The value must not be negative. * * Generated from protobuf field map metric_costs = 2; * @param array|\Google\Protobuf\Internal\MapField $var * @return $this */ public function setMetricCosts($var) { $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::INT64); $this->metric_costs = $arr; return $this; } } src/Api/MonitoredResource.php000064400000010003151742740600012225 0ustar00google.api.MonitoredResource */ class MonitoredResource extends \Google\Protobuf\Internal\Message { /** * Required. The monitored resource type. This field must match * the `type` field of a [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor] object. For * example, the type of a Cloud SQL database is `"cloudsql_database"`. * * Generated from protobuf field string type = 1; */ private $type = ''; /** * Required. Values for all of the labels listed in the associated monitored * resource descriptor. For example, Cloud SQL databases use the labels * `"database_id"` and `"zone"`. * * Generated from protobuf field map labels = 2; */ private $labels; public function __construct() { \GPBMetadata\Google\Api\MonitoredResource::initOnce(); parent::__construct(); } /** * Required. The monitored resource type. This field must match * the `type` field of a [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor] object. For * example, the type of a Cloud SQL database is `"cloudsql_database"`. * * Generated from protobuf field string type = 1; * @return string */ public function getType() { return $this->type; } /** * Required. The monitored resource type. This field must match * the `type` field of a [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor] object. For * example, the type of a Cloud SQL database is `"cloudsql_database"`. * * Generated from protobuf field string type = 1; * @param string $var * @return $this */ public function setType($var) { GPBUtil::checkString($var, True); $this->type = $var; return $this; } /** * Required. Values for all of the labels listed in the associated monitored * resource descriptor. For example, Cloud SQL databases use the labels * `"database_id"` and `"zone"`. * * Generated from protobuf field map labels = 2; * @return \Google\Protobuf\Internal\MapField */ public function getLabels() { return $this->labels; } /** * Required. Values for all of the labels listed in the associated monitored * resource descriptor. For example, Cloud SQL databases use the labels * `"database_id"` and `"zone"`. * * Generated from protobuf field map labels = 2; * @param array|\Google\Protobuf\Internal\MapField $var * @return $this */ public function setLabels($var) { $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING); $this->labels = $arr; return $this; } } src/Api/MonitoredResourceDescriptor.php000064400000017646151742740600014310 0ustar00google.api.MonitoredResourceDescriptor */ class MonitoredResourceDescriptor extends \Google\Protobuf\Internal\Message { /** * Optional. The resource name of the monitored resource descriptor: * `"projects/{project_id}/monitoredResourceDescriptors/{type}"` where * {type} is the value of the `type` field in this object and * {project_id} is a project ID that provides API-specific context for * accessing the type. APIs that do not use project information can use the * resource name format `"monitoredResourceDescriptors/{type}"`. * * Generated from protobuf field string name = 5; */ private $name = ''; /** * Required. The monitored resource type. For example, the type * `"cloudsql_database"` represents databases in Google Cloud SQL. * The maximum length of this value is 256 characters. * * Generated from protobuf field string type = 1; */ private $type = ''; /** * Optional. A concise name for the monitored resource type that might be * displayed in user interfaces. It should be a Title Cased Noun Phrase, * without any article or other determiners. For example, * `"Google Cloud SQL Database"`. * * Generated from protobuf field string display_name = 2; */ private $display_name = ''; /** * Optional. A detailed description of the monitored resource type that might * be used in documentation. * * Generated from protobuf field string description = 3; */ private $description = ''; /** * Required. A set of labels used to describe instances of this monitored * resource type. For example, an individual Google Cloud SQL database is * identified by values for the labels `"database_id"` and `"zone"`. * * Generated from protobuf field repeated .google.api.LabelDescriptor labels = 4; */ private $labels; public function __construct() { \GPBMetadata\Google\Api\MonitoredResource::initOnce(); parent::__construct(); } /** * Optional. The resource name of the monitored resource descriptor: * `"projects/{project_id}/monitoredResourceDescriptors/{type}"` where * {type} is the value of the `type` field in this object and * {project_id} is a project ID that provides API-specific context for * accessing the type. APIs that do not use project information can use the * resource name format `"monitoredResourceDescriptors/{type}"`. * * Generated from protobuf field string name = 5; * @return string */ public function getName() { return $this->name; } /** * Optional. The resource name of the monitored resource descriptor: * `"projects/{project_id}/monitoredResourceDescriptors/{type}"` where * {type} is the value of the `type` field in this object and * {project_id} is a project ID that provides API-specific context for * accessing the type. APIs that do not use project information can use the * resource name format `"monitoredResourceDescriptors/{type}"`. * * Generated from protobuf field string name = 5; * @param string $var * @return $this */ public function setName($var) { GPBUtil::checkString($var, True); $this->name = $var; return $this; } /** * Required. The monitored resource type. For example, the type * `"cloudsql_database"` represents databases in Google Cloud SQL. * The maximum length of this value is 256 characters. * * Generated from protobuf field string type = 1; * @return string */ public function getType() { return $this->type; } /** * Required. The monitored resource type. For example, the type * `"cloudsql_database"` represents databases in Google Cloud SQL. * The maximum length of this value is 256 characters. * * Generated from protobuf field string type = 1; * @param string $var * @return $this */ public function setType($var) { GPBUtil::checkString($var, True); $this->type = $var; return $this; } /** * Optional. A concise name for the monitored resource type that might be * displayed in user interfaces. It should be a Title Cased Noun Phrase, * without any article or other determiners. For example, * `"Google Cloud SQL Database"`. * * Generated from protobuf field string display_name = 2; * @return string */ public function getDisplayName() { return $this->display_name; } /** * Optional. A concise name for the monitored resource type that might be * displayed in user interfaces. It should be a Title Cased Noun Phrase, * without any article or other determiners. For example, * `"Google Cloud SQL Database"`. * * Generated from protobuf field string display_name = 2; * @param string $var * @return $this */ public function setDisplayName($var) { GPBUtil::checkString($var, True); $this->display_name = $var; return $this; } /** * Optional. A detailed description of the monitored resource type that might * be used in documentation. * * Generated from protobuf field string description = 3; * @return string */ public function getDescription() { return $this->description; } /** * Optional. A detailed description of the monitored resource type that might * be used in documentation. * * Generated from protobuf field string description = 3; * @param string $var * @return $this */ public function setDescription($var) { GPBUtil::checkString($var, True); $this->description = $var; return $this; } /** * Required. A set of labels used to describe instances of this monitored * resource type. For example, an individual Google Cloud SQL database is * identified by values for the labels `"database_id"` and `"zone"`. * * Generated from protobuf field repeated .google.api.LabelDescriptor labels = 4; * @return \Google\Protobuf\Internal\RepeatedField */ public function getLabels() { return $this->labels; } /** * Required. A set of labels used to describe instances of this monitored * resource type. For example, an individual Google Cloud SQL database is * identified by values for the labels `"database_id"` and `"zone"`. * * Generated from protobuf field repeated .google.api.LabelDescriptor labels = 4; * @param \Google\Api\LabelDescriptor[]|\Google\Protobuf\Internal\RepeatedField $var * @return $this */ public function setLabels($var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\LabelDescriptor::class); $this->labels = $arr; return $this; } } src/Api/Monitoring.php000064400000012762151742740600010720 0ustar00google.api.Monitoring */ class Monitoring extends \Google\Protobuf\Internal\Message { /** * Monitoring configurations for sending metrics to the producer project. * There can be multiple producer destinations, each one must have a * different monitored resource type. A metric can be used in at most * one producer destination. * * Generated from protobuf field repeated .google.api.Monitoring.MonitoringDestination producer_destinations = 1; */ private $producer_destinations; /** * Monitoring configurations for sending metrics to the consumer project. * There can be multiple consumer destinations, each one must have a * different monitored resource type. A metric can be used in at most * one consumer destination. * * Generated from protobuf field repeated .google.api.Monitoring.MonitoringDestination consumer_destinations = 2; */ private $consumer_destinations; public function __construct() { \GPBMetadata\Google\Api\Monitoring::initOnce(); parent::__construct(); } /** * Monitoring configurations for sending metrics to the producer project. * There can be multiple producer destinations, each one must have a * different monitored resource type. A metric can be used in at most * one producer destination. * * Generated from protobuf field repeated .google.api.Monitoring.MonitoringDestination producer_destinations = 1; * @return \Google\Protobuf\Internal\RepeatedField */ public function getProducerDestinations() { return $this->producer_destinations; } /** * Monitoring configurations for sending metrics to the producer project. * There can be multiple producer destinations, each one must have a * different monitored resource type. A metric can be used in at most * one producer destination. * * Generated from protobuf field repeated .google.api.Monitoring.MonitoringDestination producer_destinations = 1; * @param \Google\Api\Monitoring_MonitoringDestination[]|\Google\Protobuf\Internal\RepeatedField $var * @return $this */ public function setProducerDestinations($var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\Monitoring_MonitoringDestination::class); $this->producer_destinations = $arr; return $this; } /** * Monitoring configurations for sending metrics to the consumer project. * There can be multiple consumer destinations, each one must have a * different monitored resource type. A metric can be used in at most * one consumer destination. * * Generated from protobuf field repeated .google.api.Monitoring.MonitoringDestination consumer_destinations = 2; * @return \Google\Protobuf\Internal\RepeatedField */ public function getConsumerDestinations() { return $this->consumer_destinations; } /** * Monitoring configurations for sending metrics to the consumer project. * There can be multiple consumer destinations, each one must have a * different monitored resource type. A metric can be used in at most * one consumer destination. * * Generated from protobuf field repeated .google.api.Monitoring.MonitoringDestination consumer_destinations = 2; * @param \Google\Api\Monitoring_MonitoringDestination[]|\Google\Protobuf\Internal\RepeatedField $var * @return $this */ public function setConsumerDestinations($var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\Monitoring_MonitoringDestination::class); $this->consumer_destinations = $arr; return $this; } } src/Api/Monitoring_MonitoringDestination.php000064400000005734151742740600015330 0ustar00google.api.Monitoring.MonitoringDestination */ class Monitoring_MonitoringDestination extends \Google\Protobuf\Internal\Message { /** * The monitored resource type. The type must be defined in * [Service.monitored_resources][google.api.Service.monitored_resources] section. * * Generated from protobuf field string monitored_resource = 1; */ private $monitored_resource = ''; /** * Names of the metrics to report to this monitoring destination. * Each name must be defined in [Service.metrics][google.api.Service.metrics] section. * * Generated from protobuf field repeated string metrics = 2; */ private $metrics; public function __construct() { \GPBMetadata\Google\Api\Monitoring::initOnce(); parent::__construct(); } /** * The monitored resource type. The type must be defined in * [Service.monitored_resources][google.api.Service.monitored_resources] section. * * Generated from protobuf field string monitored_resource = 1; * @return string */ public function getMonitoredResource() { return $this->monitored_resource; } /** * The monitored resource type. The type must be defined in * [Service.monitored_resources][google.api.Service.monitored_resources] section. * * Generated from protobuf field string monitored_resource = 1; * @param string $var * @return $this */ public function setMonitoredResource($var) { GPBUtil::checkString($var, True); $this->monitored_resource = $var; return $this; } /** * Names of the metrics to report to this monitoring destination. * Each name must be defined in [Service.metrics][google.api.Service.metrics] section. * * Generated from protobuf field repeated string metrics = 2; * @return \Google\Protobuf\Internal\RepeatedField */ public function getMetrics() { return $this->metrics; } /** * Names of the metrics to report to this monitoring destination. * Each name must be defined in [Service.metrics][google.api.Service.metrics] section. * * Generated from protobuf field repeated string metrics = 2; * @param string[]|\Google\Protobuf\Internal\RepeatedField $var * @return $this */ public function setMetrics($var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); $this->metrics = $arr; return $this; } } src/Api/OAuthRequirements.php000064400000006102151742740600012206 0ustar00google.api.OAuthRequirements */ class OAuthRequirements extends \Google\Protobuf\Internal\Message { /** * The list of publicly documented OAuth scopes that are allowed access. An * OAuth token containing any of these scopes will be accepted. * Example: * canonical_scopes: https://www.googleapis.com/auth/calendar, * https://www.googleapis.com/auth/calendar.read * * Generated from protobuf field string canonical_scopes = 1; */ private $canonical_scopes = ''; public function __construct() { \GPBMetadata\Google\Api\Auth::initOnce(); parent::__construct(); } /** * The list of publicly documented OAuth scopes that are allowed access. An * OAuth token containing any of these scopes will be accepted. * Example: * canonical_scopes: https://www.googleapis.com/auth/calendar, * https://www.googleapis.com/auth/calendar.read * * Generated from protobuf field string canonical_scopes = 1; * @return string */ public function getCanonicalScopes() { return $this->canonical_scopes; } /** * The list of publicly documented OAuth scopes that are allowed access. An * OAuth token containing any of these scopes will be accepted. * Example: * canonical_scopes: https://www.googleapis.com/auth/calendar, * https://www.googleapis.com/auth/calendar.read * * Generated from protobuf field string canonical_scopes = 1; * @param string $var * @return $this */ public function setCanonicalScopes($var) { GPBUtil::checkString($var, True); $this->canonical_scopes = $var; return $this; } } src/Api/Page.php000064400000012453151742740600007444 0ustar00google.api.Page */ class Page extends \Google\Protobuf\Internal\Message { /** * The name of the page. It will be used as an identity of the page to * generate URI of the page, text of the link to this page in navigation, * etc. The full page name (start from the root page name to this page * concatenated with `.`) can be used as reference to the page in your * documentation. For example: *
pages:
     * - name: Tutorial
     *   content: (== include tutorial.md ==)
     *   subpages:
     *   - name: Java
     *     content: (== include tutorial_java.md ==)
     * 
* You can reference `Java` page using Markdown reference link syntax: * `[Java][Tutorial.Java]`. * * Generated from protobuf field string name = 1; */ private $name = ''; /** * The Markdown content of the page. You can use (== include {path} ==) * to include content from a Markdown file. * * Generated from protobuf field string content = 2; */ private $content = ''; /** * Subpages of this page. The order of subpages specified here will be * honored in the generated docset. * * Generated from protobuf field repeated .google.api.Page subpages = 3; */ private $subpages; public function __construct() { \GPBMetadata\Google\Api\Documentation::initOnce(); parent::__construct(); } /** * The name of the page. It will be used as an identity of the page to * generate URI of the page, text of the link to this page in navigation, * etc. The full page name (start from the root page name to this page * concatenated with `.`) can be used as reference to the page in your * documentation. For example: *
pages:
     * - name: Tutorial
     *   content: (== include tutorial.md ==)
     *   subpages:
     *   - name: Java
     *     content: (== include tutorial_java.md ==)
     * 
* You can reference `Java` page using Markdown reference link syntax: * `[Java][Tutorial.Java]`. * * Generated from protobuf field string name = 1; * @return string */ public function getName() { return $this->name; } /** * The name of the page. It will be used as an identity of the page to * generate URI of the page, text of the link to this page in navigation, * etc. The full page name (start from the root page name to this page * concatenated with `.`) can be used as reference to the page in your * documentation. For example: *
pages:
     * - name: Tutorial
     *   content: (== include tutorial.md ==)
     *   subpages:
     *   - name: Java
     *     content: (== include tutorial_java.md ==)
     * 
* You can reference `Java` page using Markdown reference link syntax: * `[Java][Tutorial.Java]`. * * 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 Markdown content of the page. You can use (== include {path} ==) * to include content from a Markdown file. * * Generated from protobuf field string content = 2; * @return string */ public function getContent() { return $this->content; } /** * The Markdown content of the page. You can use (== include {path} ==) * to include content from a Markdown file. * * Generated from protobuf field string content = 2; * @param string $var * @return $this */ public function setContent($var) { GPBUtil::checkString($var, True); $this->content = $var; return $this; } /** * Subpages of this page. The order of subpages specified here will be * honored in the generated docset. * * Generated from protobuf field repeated .google.api.Page subpages = 3; * @return \Google\Protobuf\Internal\RepeatedField */ public function getSubpages() { return $this->subpages; } /** * Subpages of this page. The order of subpages specified here will be * honored in the generated docset. * * Generated from protobuf field repeated .google.api.Page subpages = 3; * @param \Google\Api\Page[]|\Google\Protobuf\Internal\RepeatedField $var * @return $this */ public function setSubpages($var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\Page::class); $this->subpages = $arr; return $this; } } src/Api/ProjectProperties.php000064400000004345151742740600012254 0ustar00google.api.ProjectProperties */ class ProjectProperties extends \Google\Protobuf\Internal\Message { /** * List of per consumer project-specific properties. * * Generated from protobuf field repeated .google.api.Property properties = 1; */ private $properties; public function __construct() { \GPBMetadata\Google\Api\Consumer::initOnce(); parent::__construct(); } /** * List of per consumer project-specific properties. * * Generated from protobuf field repeated .google.api.Property properties = 1; * @return \Google\Protobuf\Internal\RepeatedField */ public function getProperties() { return $this->properties; } /** * List of per consumer project-specific properties. * * Generated from protobuf field repeated .google.api.Property properties = 1; * @param \Google\Api\Property[]|\Google\Protobuf\Internal\RepeatedField $var * @return $this */ public function setProperties($var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\Property::class); $this->properties = $arr; return $this; } } src/Api/Property.php000064400000006246151742740600010417 0ustar00google.api.Property */ class Property extends \Google\Protobuf\Internal\Message { /** * The name of the property (a.k.a key). * * Generated from protobuf field string name = 1; */ private $name = ''; /** * The type of this property. * * Generated from protobuf field .google.api.Property.PropertyType type = 2; */ private $type = 0; /** * The description of the property * * Generated from protobuf field string description = 3; */ private $description = ''; public function __construct() { \GPBMetadata\Google\Api\Consumer::initOnce(); parent::__construct(); } /** * The name of the property (a.k.a key). * * Generated from protobuf field string name = 1; * @return string */ public function getName() { return $this->name; } /** * The name of the property (a.k.a 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 type of this property. * * Generated from protobuf field .google.api.Property.PropertyType type = 2; * @return int */ public function getType() { return $this->type; } /** * The type of this property. * * Generated from protobuf field .google.api.Property.PropertyType type = 2; * @param int $var * @return $this */ public function setType($var) { GPBUtil::checkEnum($var, \Google\Api\Property_PropertyType::class); $this->type = $var; return $this; } /** * The description of the property * * Generated from protobuf field string description = 3; * @return string */ public function getDescription() { return $this->description; } /** * The description of the property * * Generated from protobuf field string description = 3; * @param string $var * @return $this */ public function setDescription($var) { GPBUtil::checkString($var, True); $this->description = $var; return $this; } } src/Api/Property_PropertyType.php000064400000001732151742740600013160 0ustar00Google\Api\Property\PropertyType */ class Property_PropertyType { /** * The type is unspecified, and will result in an error. * * Generated from protobuf enum UNSPECIFIED = 0; */ const UNSPECIFIED = 0; /** * The type is `int64`. * * Generated from protobuf enum INT64 = 1; */ const INT64 = 1; /** * The type is `bool`. * * Generated from protobuf enum BOOL = 2; */ const BOOL = 2; /** * The type is `string`. * * Generated from protobuf enum STRING = 3; */ const STRING = 3; /** * The type is 'double'. * * Generated from protobuf enum DOUBLE = 4; */ const DOUBLE = 4; } src/Api/Quota.php000064400000011076151742740600007661 0ustar00google.api.Quota */ class Quota extends \Google\Protobuf\Internal\Message { /** * List of `QuotaLimit` definitions for the service. * Used by metric-based quotas only. * * Generated from protobuf field repeated .google.api.QuotaLimit limits = 3; */ private $limits; /** * List of `MetricRule` definitions, each one mapping a selected method to one * or more metrics. * Used by metric-based quotas only. * * Generated from protobuf field repeated .google.api.MetricRule metric_rules = 4; */ private $metric_rules; public function __construct() { \GPBMetadata\Google\Api\Quota::initOnce(); parent::__construct(); } /** * List of `QuotaLimit` definitions for the service. * Used by metric-based quotas only. * * Generated from protobuf field repeated .google.api.QuotaLimit limits = 3; * @return \Google\Protobuf\Internal\RepeatedField */ public function getLimits() { return $this->limits; } /** * List of `QuotaLimit` definitions for the service. * Used by metric-based quotas only. * * Generated from protobuf field repeated .google.api.QuotaLimit limits = 3; * @param \Google\Api\QuotaLimit[]|\Google\Protobuf\Internal\RepeatedField $var * @return $this */ public function setLimits($var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\QuotaLimit::class); $this->limits = $arr; return $this; } /** * List of `MetricRule` definitions, each one mapping a selected method to one * or more metrics. * Used by metric-based quotas only. * * Generated from protobuf field repeated .google.api.MetricRule metric_rules = 4; * @return \Google\Protobuf\Internal\RepeatedField */ public function getMetricRules() { return $this->metric_rules; } /** * List of `MetricRule` definitions, each one mapping a selected method to one * or more metrics. * Used by metric-based quotas only. * * Generated from protobuf field repeated .google.api.MetricRule metric_rules = 4; * @param \Google\Api\MetricRule[]|\Google\Protobuf\Internal\RepeatedField $var * @return $this */ public function setMetricRules($var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\MetricRule::class); $this->metric_rules = $arr; return $this; } } src/Api/QuotaLimit.php000064400000065015151742740600010662 0ustar00google.api.QuotaLimit */ class QuotaLimit extends \Google\Protobuf\Internal\Message { /** * Name of the quota limit. The name is used to refer to the limit when * overriding the default limit on per-consumer basis. * For group-based quota limits, the name must be unique within the quota * group. If a name is not provided, it will be generated from the limit_by * and duration fields. * For metric-based quota limits, the name must be provided, and it must be * unique within the service. The name can only include alphanumeric * characters as well as '-'. * The maximum length of the limit name is 64 characters. * The name of a limit is used as a unique identifier for this limit. * Therefore, once a limit has been put into use, its name should be * immutable. You can use the display_name field to provide a user-friendly * name for the limit. The display name can be evolved over time without * affecting the identity of the limit. * * Generated from protobuf field string name = 6; */ private $name = ''; /** * Optional. User-visible, extended description for this quota limit. * Should be used only when more context is needed to understand this limit * than provided by the limit's display name (see: `display_name`). * * Generated from protobuf field string description = 2; */ private $description = ''; /** * Default number of tokens that can be consumed during the specified * duration. This is the number of tokens assigned when a client * application developer activates the service for his/her project. * Specifying a value of 0 will block all requests. This can be used if you * are provisioning quota to selected consumers and blocking others. * Similarly, a value of -1 will indicate an unlimited quota. No other * negative values are allowed. * Used by group-based quotas only. * * Generated from protobuf field int64 default_limit = 3; */ private $default_limit = 0; /** * Maximum number of tokens that can be consumed during the specified * duration. Client application developers can override the default limit up * to this maximum. If specified, this value cannot be set to a value less * than the default limit. If not specified, it is set to the default limit. * To allow clients to apply overrides with no upper bound, set this to -1, * indicating unlimited maximum quota. * Used by group-based quotas only. * * Generated from protobuf field int64 max_limit = 4; */ private $max_limit = 0; /** * Free tier value displayed in the Developers Console for this limit. * The free tier is the number of tokens that will be subtracted from the * billed amount when billing is enabled. * This field can only be set on a limit with duration "1d", in a billable * group; it is invalid on any other limit. If this field is not set, it * defaults to 0, indicating that there is no free tier for this service. * Used by group-based quotas only. * * Generated from protobuf field int64 free_tier = 7; */ private $free_tier = 0; /** * Duration of this limit in textual notation. Example: "100s", "24h", "1d". * For duration longer than a day, only multiple of days is supported. We * support only "100s" and "1d" for now. Additional support will be added in * the future. "0" indicates indefinite duration. * Used by group-based quotas only. * * Generated from protobuf field string duration = 5; */ private $duration = ''; /** * The name of the metric this quota limit applies to. The quota limits with * the same metric will be checked together during runtime. The metric must be * defined within the service config. * Used by metric-based quotas only. * * Generated from protobuf field string metric = 8; */ private $metric = ''; /** * Specify the unit of the quota limit. It uses the same syntax as * [Metric.unit][]. The supported unit kinds are determined by the quota * backend system. * The [Google Service Control](https://cloud.google.com/service-control) * supports the following unit components: * * One of the time intevals: * * "/min" for quota every minute. * * "/d" for quota every 24 hours, starting 00:00 US Pacific Time. * * Otherwise the quota won't be reset by time, such as storage limit. * * One and only one of the granted containers: * * "/{organization}" quota for an organization. * * "/{project}" quota for a project. * * "/{folder}" quota for a folder. * * "/{resource}" quota for a universal resource. * * Zero or more quota segmentation dimension. Not all combos are valid. * * "/{region}" quota for every region. Not to be used with time intervals. * * Otherwise the resources granted on the target is not segmented. * * "/{zone}" quota for every zone. Not to be used with time intervals. * * Otherwise the resources granted on the target is not segmented. * * "/{resource}" quota for a resource associated with a project or org. * Here are some examples: * * "1/min/{project}" for quota per minute per project. * * "1/min/{user}" for quota per minute per user. * * "1/min/{organization}" for quota per minute per organization. * Note: the order of unit components is insignificant. * The "1" at the beginning is required to follow the metric unit syntax. * Used by metric-based quotas only. * * Generated from protobuf field string unit = 9; */ private $unit = ''; /** * Tiered limit values. Also allows for regional or zone overrides for these * values if "/{region}" or "/{zone}" is specified in the unit field. * Currently supported tiers from low to high: * VERY_LOW, LOW, STANDARD, HIGH, VERY_HIGH * To apply different limit values for users according to their tiers, specify * the values for the tiers you want to differentiate. For example: * {LOW:100, STANDARD:500, HIGH:1000, VERY_HIGH:5000} * The limit value for each tier is optional except for the tier STANDARD. * The limit value for an unspecified tier falls to the value of its next * tier towards tier STANDARD. For the above example, the limit value for tier * STANDARD is 500. * To apply the same limit value for all users, just specify limit value for * tier STANDARD. For example: {STANDARD:500}. * To apply a regional overide for a tier, add a map entry with key * "/", where is a region name. Similarly, for a zone * override, add a map entry with key "/{zone}". * Further, a wildcard can be used at the end of a zone name in order to * specify zone level overrides. For example: * LOW: 10, STANDARD: 50, HIGH: 100, * LOW/us-central1: 20, STANDARD/us-central1: 60, HIGH/us-central1: 200, * LOW/us-central1-*: 10, STANDARD/us-central1-*: 20, HIGH/us-central1-*: 80 * The regional overrides tier set for each region must be the same as * the tier set for default limit values. Same rule applies for zone overrides * tier as well. * Used by metric-based quotas only. * * Generated from protobuf field map values = 10; */ private $values; /** * User-visible display name for this limit. * Optional. If not set, the UI will provide a default display name based on * the quota configuration. This field can be used to override the default * display name generated from the configuration. * * Generated from protobuf field string display_name = 12; */ private $display_name = ''; public function __construct() { \GPBMetadata\Google\Api\Quota::initOnce(); parent::__construct(); } /** * Name of the quota limit. The name is used to refer to the limit when * overriding the default limit on per-consumer basis. * For group-based quota limits, the name must be unique within the quota * group. If a name is not provided, it will be generated from the limit_by * and duration fields. * For metric-based quota limits, the name must be provided, and it must be * unique within the service. The name can only include alphanumeric * characters as well as '-'. * The maximum length of the limit name is 64 characters. * The name of a limit is used as a unique identifier for this limit. * Therefore, once a limit has been put into use, its name should be * immutable. You can use the display_name field to provide a user-friendly * name for the limit. The display name can be evolved over time without * affecting the identity of the limit. * * Generated from protobuf field string name = 6; * @return string */ public function getName() { return $this->name; } /** * Name of the quota limit. The name is used to refer to the limit when * overriding the default limit on per-consumer basis. * For group-based quota limits, the name must be unique within the quota * group. If a name is not provided, it will be generated from the limit_by * and duration fields. * For metric-based quota limits, the name must be provided, and it must be * unique within the service. The name can only include alphanumeric * characters as well as '-'. * The maximum length of the limit name is 64 characters. * The name of a limit is used as a unique identifier for this limit. * Therefore, once a limit has been put into use, its name should be * immutable. You can use the display_name field to provide a user-friendly * name for the limit. The display name can be evolved over time without * affecting the identity of the limit. * * Generated from protobuf field string name = 6; * @param string $var * @return $this */ public function setName($var) { GPBUtil::checkString($var, True); $this->name = $var; return $this; } /** * Optional. User-visible, extended description for this quota limit. * Should be used only when more context is needed to understand this limit * than provided by the limit's display name (see: `display_name`). * * Generated from protobuf field string description = 2; * @return string */ public function getDescription() { return $this->description; } /** * Optional. User-visible, extended description for this quota limit. * Should be used only when more context is needed to understand this limit * than provided by the limit's display name (see: `display_name`). * * Generated from protobuf field string description = 2; * @param string $var * @return $this */ public function setDescription($var) { GPBUtil::checkString($var, True); $this->description = $var; return $this; } /** * Default number of tokens that can be consumed during the specified * duration. This is the number of tokens assigned when a client * application developer activates the service for his/her project. * Specifying a value of 0 will block all requests. This can be used if you * are provisioning quota to selected consumers and blocking others. * Similarly, a value of -1 will indicate an unlimited quota. No other * negative values are allowed. * Used by group-based quotas only. * * Generated from protobuf field int64 default_limit = 3; * @return int|string */ public function getDefaultLimit() { return $this->default_limit; } /** * Default number of tokens that can be consumed during the specified * duration. This is the number of tokens assigned when a client * application developer activates the service for his/her project. * Specifying a value of 0 will block all requests. This can be used if you * are provisioning quota to selected consumers and blocking others. * Similarly, a value of -1 will indicate an unlimited quota. No other * negative values are allowed. * Used by group-based quotas only. * * Generated from protobuf field int64 default_limit = 3; * @param int|string $var * @return $this */ public function setDefaultLimit($var) { GPBUtil::checkInt64($var); $this->default_limit = $var; return $this; } /** * Maximum number of tokens that can be consumed during the specified * duration. Client application developers can override the default limit up * to this maximum. If specified, this value cannot be set to a value less * than the default limit. If not specified, it is set to the default limit. * To allow clients to apply overrides with no upper bound, set this to -1, * indicating unlimited maximum quota. * Used by group-based quotas only. * * Generated from protobuf field int64 max_limit = 4; * @return int|string */ public function getMaxLimit() { return $this->max_limit; } /** * Maximum number of tokens that can be consumed during the specified * duration. Client application developers can override the default limit up * to this maximum. If specified, this value cannot be set to a value less * than the default limit. If not specified, it is set to the default limit. * To allow clients to apply overrides with no upper bound, set this to -1, * indicating unlimited maximum quota. * Used by group-based quotas only. * * Generated from protobuf field int64 max_limit = 4; * @param int|string $var * @return $this */ public function setMaxLimit($var) { GPBUtil::checkInt64($var); $this->max_limit = $var; return $this; } /** * Free tier value displayed in the Developers Console for this limit. * The free tier is the number of tokens that will be subtracted from the * billed amount when billing is enabled. * This field can only be set on a limit with duration "1d", in a billable * group; it is invalid on any other limit. If this field is not set, it * defaults to 0, indicating that there is no free tier for this service. * Used by group-based quotas only. * * Generated from protobuf field int64 free_tier = 7; * @return int|string */ public function getFreeTier() { return $this->free_tier; } /** * Free tier value displayed in the Developers Console for this limit. * The free tier is the number of tokens that will be subtracted from the * billed amount when billing is enabled. * This field can only be set on a limit with duration "1d", in a billable * group; it is invalid on any other limit. If this field is not set, it * defaults to 0, indicating that there is no free tier for this service. * Used by group-based quotas only. * * Generated from protobuf field int64 free_tier = 7; * @param int|string $var * @return $this */ public function setFreeTier($var) { GPBUtil::checkInt64($var); $this->free_tier = $var; return $this; } /** * Duration of this limit in textual notation. Example: "100s", "24h", "1d". * For duration longer than a day, only multiple of days is supported. We * support only "100s" and "1d" for now. Additional support will be added in * the future. "0" indicates indefinite duration. * Used by group-based quotas only. * * Generated from protobuf field string duration = 5; * @return string */ public function getDuration() { return $this->duration; } /** * Duration of this limit in textual notation. Example: "100s", "24h", "1d". * For duration longer than a day, only multiple of days is supported. We * support only "100s" and "1d" for now. Additional support will be added in * the future. "0" indicates indefinite duration. * Used by group-based quotas only. * * Generated from protobuf field string duration = 5; * @param string $var * @return $this */ public function setDuration($var) { GPBUtil::checkString($var, True); $this->duration = $var; return $this; } /** * The name of the metric this quota limit applies to. The quota limits with * the same metric will be checked together during runtime. The metric must be * defined within the service config. * Used by metric-based quotas only. * * Generated from protobuf field string metric = 8; * @return string */ public function getMetric() { return $this->metric; } /** * The name of the metric this quota limit applies to. The quota limits with * the same metric will be checked together during runtime. The metric must be * defined within the service config. * Used by metric-based quotas only. * * Generated from protobuf field string metric = 8; * @param string $var * @return $this */ public function setMetric($var) { GPBUtil::checkString($var, True); $this->metric = $var; return $this; } /** * Specify the unit of the quota limit. It uses the same syntax as * [Metric.unit][]. The supported unit kinds are determined by the quota * backend system. * The [Google Service Control](https://cloud.google.com/service-control) * supports the following unit components: * * One of the time intevals: * * "/min" for quota every minute. * * "/d" for quota every 24 hours, starting 00:00 US Pacific Time. * * Otherwise the quota won't be reset by time, such as storage limit. * * One and only one of the granted containers: * * "/{organization}" quota for an organization. * * "/{project}" quota for a project. * * "/{folder}" quota for a folder. * * "/{resource}" quota for a universal resource. * * Zero or more quota segmentation dimension. Not all combos are valid. * * "/{region}" quota for every region. Not to be used with time intervals. * * Otherwise the resources granted on the target is not segmented. * * "/{zone}" quota for every zone. Not to be used with time intervals. * * Otherwise the resources granted on the target is not segmented. * * "/{resource}" quota for a resource associated with a project or org. * Here are some examples: * * "1/min/{project}" for quota per minute per project. * * "1/min/{user}" for quota per minute per user. * * "1/min/{organization}" for quota per minute per organization. * Note: the order of unit components is insignificant. * The "1" at the beginning is required to follow the metric unit syntax. * Used by metric-based quotas only. * * Generated from protobuf field string unit = 9; * @return string */ public function getUnit() { return $this->unit; } /** * Specify the unit of the quota limit. It uses the same syntax as * [Metric.unit][]. The supported unit kinds are determined by the quota * backend system. * The [Google Service Control](https://cloud.google.com/service-control) * supports the following unit components: * * One of the time intevals: * * "/min" for quota every minute. * * "/d" for quota every 24 hours, starting 00:00 US Pacific Time. * * Otherwise the quota won't be reset by time, such as storage limit. * * One and only one of the granted containers: * * "/{organization}" quota for an organization. * * "/{project}" quota for a project. * * "/{folder}" quota for a folder. * * "/{resource}" quota for a universal resource. * * Zero or more quota segmentation dimension. Not all combos are valid. * * "/{region}" quota for every region. Not to be used with time intervals. * * Otherwise the resources granted on the target is not segmented. * * "/{zone}" quota for every zone. Not to be used with time intervals. * * Otherwise the resources granted on the target is not segmented. * * "/{resource}" quota for a resource associated with a project or org. * Here are some examples: * * "1/min/{project}" for quota per minute per project. * * "1/min/{user}" for quota per minute per user. * * "1/min/{organization}" for quota per minute per organization. * Note: the order of unit components is insignificant. * The "1" at the beginning is required to follow the metric unit syntax. * Used by metric-based quotas only. * * Generated from protobuf field string unit = 9; * @param string $var * @return $this */ public function setUnit($var) { GPBUtil::checkString($var, True); $this->unit = $var; return $this; } /** * Tiered limit values. Also allows for regional or zone overrides for these * values if "/{region}" or "/{zone}" is specified in the unit field. * Currently supported tiers from low to high: * VERY_LOW, LOW, STANDARD, HIGH, VERY_HIGH * To apply different limit values for users according to their tiers, specify * the values for the tiers you want to differentiate. For example: * {LOW:100, STANDARD:500, HIGH:1000, VERY_HIGH:5000} * The limit value for each tier is optional except for the tier STANDARD. * The limit value for an unspecified tier falls to the value of its next * tier towards tier STANDARD. For the above example, the limit value for tier * STANDARD is 500. * To apply the same limit value for all users, just specify limit value for * tier STANDARD. For example: {STANDARD:500}. * To apply a regional overide for a tier, add a map entry with key * "/", where is a region name. Similarly, for a zone * override, add a map entry with key "/{zone}". * Further, a wildcard can be used at the end of a zone name in order to * specify zone level overrides. For example: * LOW: 10, STANDARD: 50, HIGH: 100, * LOW/us-central1: 20, STANDARD/us-central1: 60, HIGH/us-central1: 200, * LOW/us-central1-*: 10, STANDARD/us-central1-*: 20, HIGH/us-central1-*: 80 * The regional overrides tier set for each region must be the same as * the tier set for default limit values. Same rule applies for zone overrides * tier as well. * Used by metric-based quotas only. * * Generated from protobuf field map values = 10; * @return \Google\Protobuf\Internal\MapField */ public function getValues() { return $this->values; } /** * Tiered limit values. Also allows for regional or zone overrides for these * values if "/{region}" or "/{zone}" is specified in the unit field. * Currently supported tiers from low to high: * VERY_LOW, LOW, STANDARD, HIGH, VERY_HIGH * To apply different limit values for users according to their tiers, specify * the values for the tiers you want to differentiate. For example: * {LOW:100, STANDARD:500, HIGH:1000, VERY_HIGH:5000} * The limit value for each tier is optional except for the tier STANDARD. * The limit value for an unspecified tier falls to the value of its next * tier towards tier STANDARD. For the above example, the limit value for tier * STANDARD is 500. * To apply the same limit value for all users, just specify limit value for * tier STANDARD. For example: {STANDARD:500}. * To apply a regional overide for a tier, add a map entry with key * "/", where is a region name. Similarly, for a zone * override, add a map entry with key "/{zone}". * Further, a wildcard can be used at the end of a zone name in order to * specify zone level overrides. For example: * LOW: 10, STANDARD: 50, HIGH: 100, * LOW/us-central1: 20, STANDARD/us-central1: 60, HIGH/us-central1: 200, * LOW/us-central1-*: 10, STANDARD/us-central1-*: 20, HIGH/us-central1-*: 80 * The regional overrides tier set for each region must be the same as * the tier set for default limit values. Same rule applies for zone overrides * tier as well. * Used by metric-based quotas only. * * Generated from protobuf field map values = 10; * @param array|\Google\Protobuf\Internal\MapField $var * @return $this */ public function setValues($var) { $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::INT64); $this->values = $arr; return $this; } /** * User-visible display name for this limit. * Optional. If not set, the UI will provide a default display name based on * the quota configuration. This field can be used to override the default * display name generated from the configuration. * * Generated from protobuf field string display_name = 12; * @return string */ public function getDisplayName() { return $this->display_name; } /** * User-visible display name for this limit. * Optional. If not set, the UI will provide a default display name based on * the quota configuration. This field can be used to override the default * display name generated from the configuration. * * Generated from protobuf field string display_name = 12; * @param string $var * @return $this */ public function setDisplayName($var) { GPBUtil::checkString($var, True); $this->display_name = $var; return $this; } } src/Api/Service.php000064400000070602151742740600010170 0ustar00google.api.Service */ class Service extends \Google\Protobuf\Internal\Message { /** * The semantic version of the service configuration. The config version * affects the interpretation of the service configuration. For example, * certain features are enabled by default for certain config versions. * The latest config version is `3`. * * Generated from protobuf field .google.protobuf.UInt32Value config_version = 20; */ private $config_version = null; /** * The DNS address at which this service is available, * e.g. `calendar.googleapis.com`. * * Generated from protobuf field string name = 1; */ private $name = ''; /** * A unique ID for a specific instance of this message, typically assigned * by the client for tracking purpose. If empty, the server may choose to * generate one instead. * * Generated from protobuf field string id = 33; */ private $id = ''; /** * The product title for this service. * * Generated from protobuf field string title = 2; */ private $title = ''; /** * The Google project that owns this service. * * Generated from protobuf field string producer_project_id = 22; */ private $producer_project_id = ''; /** * A list of API interfaces exported by this service. Only the `name` field * of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by the configuration * author, as the remaining fields will be derived from the IDL during the * normalization process. It is an error to specify an API interface here * which cannot be resolved against the associated IDL files. * * Generated from protobuf field repeated .google.protobuf.Api apis = 3; */ private $apis; /** * A list of all proto message types included in this API service. * Types referenced directly or indirectly by the `apis` are * automatically included. Messages which are not referenced but * shall be included, such as types used by the `google.protobuf.Any` type, * should be listed here by name. Example: * types: * - name: google.protobuf.Int32 * * Generated from protobuf field repeated .google.protobuf.Type types = 4; */ private $types; /** * A list of all enum types included in this API service. Enums * referenced directly or indirectly by the `apis` are automatically * included. Enums which are not referenced but shall be included * should be listed here by name. Example: * enums: * - name: google.someapi.v1.SomeEnum * * Generated from protobuf field repeated .google.protobuf.Enum enums = 5; */ private $enums; /** * Additional API documentation. * * Generated from protobuf field .google.api.Documentation documentation = 6; */ private $documentation = null; /** * API backend configuration. * * Generated from protobuf field .google.api.Backend backend = 8; */ private $backend = null; /** * HTTP configuration. * * Generated from protobuf field .google.api.Http http = 9; */ private $http = null; /** * Quota configuration. * * Generated from protobuf field .google.api.Quota quota = 10; */ private $quota = null; /** * Auth configuration. * * Generated from protobuf field .google.api.Authentication authentication = 11; */ private $authentication = null; /** * Context configuration. * * Generated from protobuf field .google.api.Context context = 12; */ private $context = null; /** * Configuration controlling usage of this service. * * Generated from protobuf field .google.api.Usage usage = 15; */ private $usage = null; /** * Configuration for network endpoints. If this is empty, then an endpoint * with the same name as the service is automatically generated to service all * defined APIs. * * Generated from protobuf field repeated .google.api.Endpoint endpoints = 18; */ private $endpoints; /** * Configuration for the service control plane. * * Generated from protobuf field .google.api.Control control = 21; */ private $control = null; /** * Defines the logs used by this service. * * Generated from protobuf field repeated .google.api.LogDescriptor logs = 23; */ private $logs; /** * Defines the metrics used by this service. * * Generated from protobuf field repeated .google.api.MetricDescriptor metrics = 24; */ private $metrics; /** * Defines the monitored resources used by this service. This is required * by the [Service.monitoring][google.api.Service.monitoring] and [Service.logging][google.api.Service.logging] configurations. * * Generated from protobuf field repeated .google.api.MonitoredResourceDescriptor monitored_resources = 25; */ private $monitored_resources; /** * Billing configuration. * * Generated from protobuf field .google.api.Billing billing = 26; */ private $billing = null; /** * Logging configuration. * * Generated from protobuf field .google.api.Logging logging = 27; */ private $logging = null; /** * Monitoring configuration. * * Generated from protobuf field .google.api.Monitoring monitoring = 28; */ private $monitoring = null; /** * System parameter configuration. * * Generated from protobuf field .google.api.SystemParameters system_parameters = 29; */ private $system_parameters = null; /** * Output only. The source information for this configuration if available. * * Generated from protobuf field .google.api.SourceInfo source_info = 37; */ private $source_info = null; /** * Experimental configuration. * * Generated from protobuf field .google.api.Experimental experimental = 101; */ private $experimental = null; public function __construct() { \GPBMetadata\Google\Api\Service::initOnce(); parent::__construct(); } /** * The semantic version of the service configuration. The config version * affects the interpretation of the service configuration. For example, * certain features are enabled by default for certain config versions. * The latest config version is `3`. * * Generated from protobuf field .google.protobuf.UInt32Value config_version = 20; * @return \Google\Protobuf\UInt32Value */ public function getConfigVersion() { return $this->config_version; } /** * The semantic version of the service configuration. The config version * affects the interpretation of the service configuration. For example, * certain features are enabled by default for certain config versions. * The latest config version is `3`. * * Generated from protobuf field .google.protobuf.UInt32Value config_version = 20; * @param \Google\Protobuf\UInt32Value $var * @return $this */ public function setConfigVersion($var) { GPBUtil::checkMessage($var, \Google\Protobuf\UInt32Value::class); $this->config_version = $var; return $this; } /** * The DNS address at which this service is available, * e.g. `calendar.googleapis.com`. * * Generated from protobuf field string name = 1; * @return string */ public function getName() { return $this->name; } /** * The DNS address at which this service is available, * e.g. `calendar.googleapis.com`. * * 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 unique ID for a specific instance of this message, typically assigned * by the client for tracking purpose. If empty, the server may choose to * generate one instead. * * Generated from protobuf field string id = 33; * @return string */ public function getId() { return $this->id; } /** * A unique ID for a specific instance of this message, typically assigned * by the client for tracking purpose. If empty, the server may choose to * generate one instead. * * Generated from protobuf field string id = 33; * @param string $var * @return $this */ public function setId($var) { GPBUtil::checkString($var, True); $this->id = $var; return $this; } /** * The product title for this service. * * Generated from protobuf field string title = 2; * @return string */ public function getTitle() { return $this->title; } /** * The product title for this service. * * Generated from protobuf field string title = 2; * @param string $var * @return $this */ public function setTitle($var) { GPBUtil::checkString($var, True); $this->title = $var; return $this; } /** * The Google project that owns this service. * * Generated from protobuf field string producer_project_id = 22; * @return string */ public function getProducerProjectId() { return $this->producer_project_id; } /** * The Google project that owns this service. * * Generated from protobuf field string producer_project_id = 22; * @param string $var * @return $this */ public function setProducerProjectId($var) { GPBUtil::checkString($var, True); $this->producer_project_id = $var; return $this; } /** * A list of API interfaces exported by this service. Only the `name` field * of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by the configuration * author, as the remaining fields will be derived from the IDL during the * normalization process. It is an error to specify an API interface here * which cannot be resolved against the associated IDL files. * * Generated from protobuf field repeated .google.protobuf.Api apis = 3; * @return \Google\Protobuf\Internal\RepeatedField */ public function getApis() { return $this->apis; } /** * A list of API interfaces exported by this service. Only the `name` field * of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by the configuration * author, as the remaining fields will be derived from the IDL during the * normalization process. It is an error to specify an API interface here * which cannot be resolved against the associated IDL files. * * Generated from protobuf field repeated .google.protobuf.Api apis = 3; * @param \Google\Protobuf\Api[]|\Google\Protobuf\Internal\RepeatedField $var * @return $this */ public function setApis($var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Api::class); $this->apis = $arr; return $this; } /** * A list of all proto message types included in this API service. * Types referenced directly or indirectly by the `apis` are * automatically included. Messages which are not referenced but * shall be included, such as types used by the `google.protobuf.Any` type, * should be listed here by name. Example: * types: * - name: google.protobuf.Int32 * * Generated from protobuf field repeated .google.protobuf.Type types = 4; * @return \Google\Protobuf\Internal\RepeatedField */ public function getTypes() { return $this->types; } /** * A list of all proto message types included in this API service. * Types referenced directly or indirectly by the `apis` are * automatically included. Messages which are not referenced but * shall be included, such as types used by the `google.protobuf.Any` type, * should be listed here by name. Example: * types: * - name: google.protobuf.Int32 * * Generated from protobuf field repeated .google.protobuf.Type types = 4; * @param \Google\Protobuf\Type[]|\Google\Protobuf\Internal\RepeatedField $var * @return $this */ public function setTypes($var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Type::class); $this->types = $arr; return $this; } /** * A list of all enum types included in this API service. Enums * referenced directly or indirectly by the `apis` are automatically * included. Enums which are not referenced but shall be included * should be listed here by name. Example: * enums: * - name: google.someapi.v1.SomeEnum * * Generated from protobuf field repeated .google.protobuf.Enum enums = 5; * @return \Google\Protobuf\Internal\RepeatedField */ public function getEnums() { return $this->enums; } /** * A list of all enum types included in this API service. Enums * referenced directly or indirectly by the `apis` are automatically * included. Enums which are not referenced but shall be included * should be listed here by name. Example: * enums: * - name: google.someapi.v1.SomeEnum * * Generated from protobuf field repeated .google.protobuf.Enum enums = 5; * @param \Google\Protobuf\Enum[]|\Google\Protobuf\Internal\RepeatedField $var * @return $this */ public function setEnums($var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Enum::class); $this->enums = $arr; return $this; } /** * Additional API documentation. * * Generated from protobuf field .google.api.Documentation documentation = 6; * @return \Google\Api\Documentation */ public function getDocumentation() { return $this->documentation; } /** * Additional API documentation. * * Generated from protobuf field .google.api.Documentation documentation = 6; * @param \Google\Api\Documentation $var * @return $this */ public function setDocumentation($var) { GPBUtil::checkMessage($var, \Google\Api\Documentation::class); $this->documentation = $var; return $this; } /** * API backend configuration. * * Generated from protobuf field .google.api.Backend backend = 8; * @return \Google\Api\Backend */ public function getBackend() { return $this->backend; } /** * API backend configuration. * * Generated from protobuf field .google.api.Backend backend = 8; * @param \Google\Api\Backend $var * @return $this */ public function setBackend($var) { GPBUtil::checkMessage($var, \Google\Api\Backend::class); $this->backend = $var; return $this; } /** * HTTP configuration. * * Generated from protobuf field .google.api.Http http = 9; * @return \Google\Api\Http */ public function getHttp() { return $this->http; } /** * HTTP configuration. * * Generated from protobuf field .google.api.Http http = 9; * @param \Google\Api\Http $var * @return $this */ public function setHttp($var) { GPBUtil::checkMessage($var, \Google\Api\Http::class); $this->http = $var; return $this; } /** * Quota configuration. * * Generated from protobuf field .google.api.Quota quota = 10; * @return \Google\Api\Quota */ public function getQuota() { return $this->quota; } /** * Quota configuration. * * Generated from protobuf field .google.api.Quota quota = 10; * @param \Google\Api\Quota $var * @return $this */ public function setQuota($var) { GPBUtil::checkMessage($var, \Google\Api\Quota::class); $this->quota = $var; return $this; } /** * Auth configuration. * * Generated from protobuf field .google.api.Authentication authentication = 11; * @return \Google\Api\Authentication */ public function getAuthentication() { return $this->authentication; } /** * Auth configuration. * * Generated from protobuf field .google.api.Authentication authentication = 11; * @param \Google\Api\Authentication $var * @return $this */ public function setAuthentication($var) { GPBUtil::checkMessage($var, \Google\Api\Authentication::class); $this->authentication = $var; return $this; } /** * Context configuration. * * Generated from protobuf field .google.api.Context context = 12; * @return \Google\Api\Context */ public function getContext() { return $this->context; } /** * Context configuration. * * Generated from protobuf field .google.api.Context context = 12; * @param \Google\Api\Context $var * @return $this */ public function setContext($var) { GPBUtil::checkMessage($var, \Google\Api\Context::class); $this->context = $var; return $this; } /** * Configuration controlling usage of this service. * * Generated from protobuf field .google.api.Usage usage = 15; * @return \Google\Api\Usage */ public function getUsage() { return $this->usage; } /** * Configuration controlling usage of this service. * * Generated from protobuf field .google.api.Usage usage = 15; * @param \Google\Api\Usage $var * @return $this */ public function setUsage($var) { GPBUtil::checkMessage($var, \Google\Api\Usage::class); $this->usage = $var; return $this; } /** * Configuration for network endpoints. If this is empty, then an endpoint * with the same name as the service is automatically generated to service all * defined APIs. * * Generated from protobuf field repeated .google.api.Endpoint endpoints = 18; * @return \Google\Protobuf\Internal\RepeatedField */ public function getEndpoints() { return $this->endpoints; } /** * Configuration for network endpoints. If this is empty, then an endpoint * with the same name as the service is automatically generated to service all * defined APIs. * * Generated from protobuf field repeated .google.api.Endpoint endpoints = 18; * @param \Google\Api\Endpoint[]|\Google\Protobuf\Internal\RepeatedField $var * @return $this */ public function setEndpoints($var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\Endpoint::class); $this->endpoints = $arr; return $this; } /** * Configuration for the service control plane. * * Generated from protobuf field .google.api.Control control = 21; * @return \Google\Api\Control */ public function getControl() { return $this->control; } /** * Configuration for the service control plane. * * Generated from protobuf field .google.api.Control control = 21; * @param \Google\Api\Control $var * @return $this */ public function setControl($var) { GPBUtil::checkMessage($var, \Google\Api\Control::class); $this->control = $var; return $this; } /** * Defines the logs used by this service. * * Generated from protobuf field repeated .google.api.LogDescriptor logs = 23; * @return \Google\Protobuf\Internal\RepeatedField */ public function getLogs() { return $this->logs; } /** * Defines the logs used by this service. * * Generated from protobuf field repeated .google.api.LogDescriptor logs = 23; * @param \Google\Api\LogDescriptor[]|\Google\Protobuf\Internal\RepeatedField $var * @return $this */ public function setLogs($var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\LogDescriptor::class); $this->logs = $arr; return $this; } /** * Defines the metrics used by this service. * * Generated from protobuf field repeated .google.api.MetricDescriptor metrics = 24; * @return \Google\Protobuf\Internal\RepeatedField */ public function getMetrics() { return $this->metrics; } /** * Defines the metrics used by this service. * * Generated from protobuf field repeated .google.api.MetricDescriptor metrics = 24; * @param \Google\Api\MetricDescriptor[]|\Google\Protobuf\Internal\RepeatedField $var * @return $this */ public function setMetrics($var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\MetricDescriptor::class); $this->metrics = $arr; return $this; } /** * Defines the monitored resources used by this service. This is required * by the [Service.monitoring][google.api.Service.monitoring] and [Service.logging][google.api.Service.logging] configurations. * * Generated from protobuf field repeated .google.api.MonitoredResourceDescriptor monitored_resources = 25; * @return \Google\Protobuf\Internal\RepeatedField */ public function getMonitoredResources() { return $this->monitored_resources; } /** * Defines the monitored resources used by this service. This is required * by the [Service.monitoring][google.api.Service.monitoring] and [Service.logging][google.api.Service.logging] configurations. * * Generated from protobuf field repeated .google.api.MonitoredResourceDescriptor monitored_resources = 25; * @param \Google\Api\MonitoredResourceDescriptor[]|\Google\Protobuf\Internal\RepeatedField $var * @return $this */ public function setMonitoredResources($var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\MonitoredResourceDescriptor::class); $this->monitored_resources = $arr; return $this; } /** * Billing configuration. * * Generated from protobuf field .google.api.Billing billing = 26; * @return \Google\Api\Billing */ public function getBilling() { return $this->billing; } /** * Billing configuration. * * Generated from protobuf field .google.api.Billing billing = 26; * @param \Google\Api\Billing $var * @return $this */ public function setBilling($var) { GPBUtil::checkMessage($var, \Google\Api\Billing::class); $this->billing = $var; return $this; } /** * Logging configuration. * * Generated from protobuf field .google.api.Logging logging = 27; * @return \Google\Api\Logging */ public function getLogging() { return $this->logging; } /** * Logging configuration. * * Generated from protobuf field .google.api.Logging logging = 27; * @param \Google\Api\Logging $var * @return $this */ public function setLogging($var) { GPBUtil::checkMessage($var, \Google\Api\Logging::class); $this->logging = $var; return $this; } /** * Monitoring configuration. * * Generated from protobuf field .google.api.Monitoring monitoring = 28; * @return \Google\Api\Monitoring */ public function getMonitoring() { return $this->monitoring; } /** * Monitoring configuration. * * Generated from protobuf field .google.api.Monitoring monitoring = 28; * @param \Google\Api\Monitoring $var * @return $this */ public function setMonitoring($var) { GPBUtil::checkMessage($var, \Google\Api\Monitoring::class); $this->monitoring = $var; return $this; } /** * System parameter configuration. * * Generated from protobuf field .google.api.SystemParameters system_parameters = 29; * @return \Google\Api\SystemParameters */ public function getSystemParameters() { return $this->system_parameters; } /** * System parameter configuration. * * Generated from protobuf field .google.api.SystemParameters system_parameters = 29; * @param \Google\Api\SystemParameters $var * @return $this */ public function setSystemParameters($var) { GPBUtil::checkMessage($var, \Google\Api\SystemParameters::class); $this->system_parameters = $var; return $this; } /** * Output only. The source information for this configuration if available. * * Generated from protobuf field .google.api.SourceInfo source_info = 37; * @return \Google\Api\SourceInfo */ public function getSourceInfo() { return $this->source_info; } /** * Output only. The source information for this configuration if available. * * Generated from protobuf field .google.api.SourceInfo source_info = 37; * @param \Google\Api\SourceInfo $var * @return $this */ public function setSourceInfo($var) { GPBUtil::checkMessage($var, \Google\Api\SourceInfo::class); $this->source_info = $var; return $this; } /** * Experimental configuration. * * Generated from protobuf field .google.api.Experimental experimental = 101; * @return \Google\Api\Experimental */ public function getExperimental() { return $this->experimental; } /** * Experimental configuration. * * Generated from protobuf field .google.api.Experimental experimental = 101; * @param \Google\Api\Experimental $var * @return $this */ public function setExperimental($var) { GPBUtil::checkMessage($var, \Google\Api\Experimental::class); $this->experimental = $var; return $this; } } src/Api/SourceInfo.php000064400000003071151742740600010640 0ustar00google.api.SourceInfo */ class SourceInfo extends \Google\Protobuf\Internal\Message { /** * All files used during config generation. * * Generated from protobuf field repeated .google.protobuf.Any source_files = 1; */ private $source_files; public function __construct() { \GPBMetadata\Google\Api\SourceInfo::initOnce(); parent::__construct(); } /** * All files used during config generation. * * Generated from protobuf field repeated .google.protobuf.Any source_files = 1; * @return \Google\Protobuf\Internal\RepeatedField */ public function getSourceFiles() { return $this->source_files; } /** * All files used during config generation. * * Generated from protobuf field repeated .google.protobuf.Any source_files = 1; * @param \Google\Protobuf\Any[]|\Google\Protobuf\Internal\RepeatedField $var * @return $this */ public function setSourceFiles($var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Any::class); $this->source_files = $arr; return $this; } } src/Api/SystemParameter.php000064400000006571151742740600011721 0ustar00google.api.SystemParameter */ class SystemParameter extends \Google\Protobuf\Internal\Message { /** * Define the name of the parameter, such as "api_key" . It is case sensitive. * * Generated from protobuf field string name = 1; */ private $name = ''; /** * Define the HTTP header name to use for the parameter. It is case * insensitive. * * Generated from protobuf field string http_header = 2; */ private $http_header = ''; /** * Define the URL query parameter name to use for the parameter. It is case * sensitive. * * Generated from protobuf field string url_query_parameter = 3; */ private $url_query_parameter = ''; public function __construct() { \GPBMetadata\Google\Api\SystemParameter::initOnce(); parent::__construct(); } /** * Define the name of the parameter, such as "api_key" . It is case sensitive. * * Generated from protobuf field string name = 1; * @return string */ public function getName() { return $this->name; } /** * Define the name of the parameter, such as "api_key" . It is case sensitive. * * 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; } /** * Define the HTTP header name to use for the parameter. It is case * insensitive. * * Generated from protobuf field string http_header = 2; * @return string */ public function getHttpHeader() { return $this->http_header; } /** * Define the HTTP header name to use for the parameter. It is case * insensitive. * * Generated from protobuf field string http_header = 2; * @param string $var * @return $this */ public function setHttpHeader($var) { GPBUtil::checkString($var, True); $this->http_header = $var; return $this; } /** * Define the URL query parameter name to use for the parameter. It is case * sensitive. * * Generated from protobuf field string url_query_parameter = 3; * @return string */ public function getUrlQueryParameter() { return $this->url_query_parameter; } /** * Define the URL query parameter name to use for the parameter. It is case * sensitive. * * Generated from protobuf field string url_query_parameter = 3; * @param string $var * @return $this */ public function setUrlQueryParameter($var) { GPBUtil::checkString($var, True); $this->url_query_parameter = $var; return $this; } } src/Api/SystemParameterRule.php000064400000007067151742740600012552 0ustar00google.api.SystemParameterRule */ class SystemParameterRule extends \Google\Protobuf\Internal\Message { /** * Selects the methods to which this rule applies. Use '*' to indicate all * methods in all APIs. * Refer to [selector][google.api.DocumentationRule.selector] for syntax details. * * Generated from protobuf field string selector = 1; */ private $selector = ''; /** * Define parameters. Multiple names may be defined for a parameter. * For a given method call, only one of them should be used. If multiple * names are used the behavior is implementation-dependent. * If none of the specified names are present the behavior is * parameter-dependent. * * Generated from protobuf field repeated .google.api.SystemParameter parameters = 2; */ private $parameters; public function __construct() { \GPBMetadata\Google\Api\SystemParameter::initOnce(); parent::__construct(); } /** * Selects the methods to which this rule applies. Use '*' to indicate all * methods in all APIs. * Refer to [selector][google.api.DocumentationRule.selector] for syntax details. * * Generated from protobuf field string selector = 1; * @return string */ public function getSelector() { return $this->selector; } /** * Selects the methods to which this rule applies. Use '*' to indicate all * methods in all APIs. * Refer to [selector][google.api.DocumentationRule.selector] for syntax details. * * Generated from protobuf field string selector = 1; * @param string $var * @return $this */ public function setSelector($var) { GPBUtil::checkString($var, True); $this->selector = $var; return $this; } /** * Define parameters. Multiple names may be defined for a parameter. * For a given method call, only one of them should be used. If multiple * names are used the behavior is implementation-dependent. * If none of the specified names are present the behavior is * parameter-dependent. * * Generated from protobuf field repeated .google.api.SystemParameter parameters = 2; * @return \Google\Protobuf\Internal\RepeatedField */ public function getParameters() { return $this->parameters; } /** * Define parameters. Multiple names may be defined for a parameter. * For a given method call, only one of them should be used. If multiple * names are used the behavior is implementation-dependent. * If none of the specified names are present the behavior is * parameter-dependent. * * Generated from protobuf field repeated .google.api.SystemParameter parameters = 2; * @param \Google\Api\SystemParameter[]|\Google\Protobuf\Internal\RepeatedField $var * @return $this */ public function setParameters($var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\SystemParameter::class); $this->parameters = $arr; return $this; } } src/Api/SystemParameters.php000064400000011022151742740600012067 0ustar00google.api.SystemParameters */ class SystemParameters extends \Google\Protobuf\Internal\Message { /** * Define system parameters. * The parameters defined here will override the default parameters * implemented by the system. If this field is missing from the service * config, default system parameters will be used. Default system parameters * and names is implementation-dependent. * Example: define api key for all methods * system_parameters * rules: * - selector: "*" * parameters: * - name: api_key * url_query_parameter: api_key * Example: define 2 api key names for a specific method. * system_parameters * rules: * - selector: "/ListShelves" * parameters: * - name: api_key * http_header: Api-Key1 * - name: api_key * http_header: Api-Key2 * **NOTE:** All service configuration rules follow "last one wins" order. * * Generated from protobuf field repeated .google.api.SystemParameterRule rules = 1; */ private $rules; public function __construct() { \GPBMetadata\Google\Api\SystemParameter::initOnce(); parent::__construct(); } /** * Define system parameters. * The parameters defined here will override the default parameters * implemented by the system. If this field is missing from the service * config, default system parameters will be used. Default system parameters * and names is implementation-dependent. * Example: define api key for all methods * system_parameters * rules: * - selector: "*" * parameters: * - name: api_key * url_query_parameter: api_key * Example: define 2 api key names for a specific method. * system_parameters * rules: * - selector: "/ListShelves" * parameters: * - name: api_key * http_header: Api-Key1 * - name: api_key * http_header: Api-Key2 * **NOTE:** All service configuration rules follow "last one wins" order. * * Generated from protobuf field repeated .google.api.SystemParameterRule rules = 1; * @return \Google\Protobuf\Internal\RepeatedField */ public function getRules() { return $this->rules; } /** * Define system parameters. * The parameters defined here will override the default parameters * implemented by the system. If this field is missing from the service * config, default system parameters will be used. Default system parameters * and names is implementation-dependent. * Example: define api key for all methods * system_parameters * rules: * - selector: "*" * parameters: * - name: api_key * url_query_parameter: api_key * Example: define 2 api key names for a specific method. * system_parameters * rules: * - selector: "/ListShelves" * parameters: * - name: api_key * http_header: Api-Key1 * - name: api_key * http_header: Api-Key2 * **NOTE:** All service configuration rules follow "last one wins" order. * * Generated from protobuf field repeated .google.api.SystemParameterRule rules = 1; * @param \Google\Api\SystemParameterRule[]|\Google\Protobuf\Internal\RepeatedField $var * @return $this */ public function setRules($var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\SystemParameterRule::class); $this->rules = $arr; return $this; } } src/Api/Usage.php000064400000012534151742740600007634 0ustar00google.api.Usage */ class Usage extends \Google\Protobuf\Internal\Message { /** * Requirements that must be satisfied before a consumer project can use the * service. Each requirement is of the form /; * for example 'serviceusage.googleapis.com/billing-enabled'. * * Generated from protobuf field repeated string requirements = 1; */ private $requirements; /** * A list of usage rules that apply to individual API methods. * **NOTE:** All service configuration rules follow "last one wins" order. * * Generated from protobuf field repeated .google.api.UsageRule rules = 6; */ private $rules; /** * The full resource name of a channel used for sending notifications to the * service producer. * Google Service Management currently only supports * [Google Cloud Pub/Sub](https://cloud.google.com/pubsub) as a notification * channel. To use Google Cloud Pub/Sub as the channel, this must be the name * of a Cloud Pub/Sub topic that uses the Cloud Pub/Sub topic name format * documented in https://cloud.google.com/pubsub/docs/overview. * * Generated from protobuf field string producer_notification_channel = 7; */ private $producer_notification_channel = ''; public function __construct() { \GPBMetadata\Google\Api\Usage::initOnce(); parent::__construct(); } /** * Requirements that must be satisfied before a consumer project can use the * service. Each requirement is of the form /; * for example 'serviceusage.googleapis.com/billing-enabled'. * * Generated from protobuf field repeated string requirements = 1; * @return \Google\Protobuf\Internal\RepeatedField */ public function getRequirements() { return $this->requirements; } /** * Requirements that must be satisfied before a consumer project can use the * service. Each requirement is of the form /; * for example 'serviceusage.googleapis.com/billing-enabled'. * * Generated from protobuf field repeated string requirements = 1; * @param string[]|\Google\Protobuf\Internal\RepeatedField $var * @return $this */ public function setRequirements($var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); $this->requirements = $arr; return $this; } /** * A list of usage rules that apply to individual API methods. * **NOTE:** All service configuration rules follow "last one wins" order. * * Generated from protobuf field repeated .google.api.UsageRule rules = 6; * @return \Google\Protobuf\Internal\RepeatedField */ public function getRules() { return $this->rules; } /** * A list of usage rules that apply to individual API methods. * **NOTE:** All service configuration rules follow "last one wins" order. * * Generated from protobuf field repeated .google.api.UsageRule rules = 6; * @param \Google\Api\UsageRule[]|\Google\Protobuf\Internal\RepeatedField $var * @return $this */ public function setRules($var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\UsageRule::class); $this->rules = $arr; return $this; } /** * The full resource name of a channel used for sending notifications to the * service producer. * Google Service Management currently only supports * [Google Cloud Pub/Sub](https://cloud.google.com/pubsub) as a notification * channel. To use Google Cloud Pub/Sub as the channel, this must be the name * of a Cloud Pub/Sub topic that uses the Cloud Pub/Sub topic name format * documented in https://cloud.google.com/pubsub/docs/overview. * * Generated from protobuf field string producer_notification_channel = 7; * @return string */ public function getProducerNotificationChannel() { return $this->producer_notification_channel; } /** * The full resource name of a channel used for sending notifications to the * service producer. * Google Service Management currently only supports * [Google Cloud Pub/Sub](https://cloud.google.com/pubsub) as a notification * channel. To use Google Cloud Pub/Sub as the channel, this must be the name * of a Cloud Pub/Sub topic that uses the Cloud Pub/Sub topic name format * documented in https://cloud.google.com/pubsub/docs/overview. * * Generated from protobuf field string producer_notification_channel = 7; * @param string $var * @return $this */ public function setProducerNotificationChannel($var) { GPBUtil::checkString($var, True); $this->producer_notification_channel = $var; return $this; } } src/Api/UsageRule.php000064400000010727151742740600010466 0ustar00google.api.UsageRule */ class UsageRule extends \Google\Protobuf\Internal\Message { /** * Selects the methods to which this rule applies. Use '*' to indicate all * methods in all APIs. * Refer to [selector][google.api.DocumentationRule.selector] for syntax details. * * Generated from protobuf field string selector = 1; */ private $selector = ''; /** * True, if the method allows unregistered calls; false otherwise. * * Generated from protobuf field bool allow_unregistered_calls = 2; */ private $allow_unregistered_calls = false; /** * True, if the method should skip service control. If so, no control plane * feature (like quota and billing) will be enabled. * * Generated from protobuf field bool skip_service_control = 3; */ private $skip_service_control = false; public function __construct() { \GPBMetadata\Google\Api\Usage::initOnce(); parent::__construct(); } /** * Selects the methods to which this rule applies. Use '*' to indicate all * methods in all APIs. * Refer to [selector][google.api.DocumentationRule.selector] for syntax details. * * Generated from protobuf field string selector = 1; * @return string */ public function getSelector() { return $this->selector; } /** * Selects the methods to which this rule applies. Use '*' to indicate all * methods in all APIs. * Refer to [selector][google.api.DocumentationRule.selector] for syntax details. * * Generated from protobuf field string selector = 1; * @param string $var * @return $this */ public function setSelector($var) { GPBUtil::checkString($var, True); $this->selector = $var; return $this; } /** * True, if the method allows unregistered calls; false otherwise. * * Generated from protobuf field bool allow_unregistered_calls = 2; * @return bool */ public function getAllowUnregisteredCalls() { return $this->allow_unregistered_calls; } /** * True, if the method allows unregistered calls; false otherwise. * * Generated from protobuf field bool allow_unregistered_calls = 2; * @param bool $var * @return $this */ public function setAllowUnregisteredCalls($var) { GPBUtil::checkBool($var); $this->allow_unregistered_calls = $var; return $this; } /** * True, if the method should skip service control. If so, no control plane * feature (like quota and billing) will be enabled. * * Generated from protobuf field bool skip_service_control = 3; * @return bool */ public function getSkipServiceControl() { return $this->skip_service_control; } /** * True, if the method should skip service control. If so, no control plane * feature (like quota and billing) will be enabled. * * Generated from protobuf field bool skip_service_control = 3; * @param bool $var * @return $this */ public function setSkipServiceControl($var) { GPBUtil::checkBool($var); $this->skip_service_control = $var; return $this; } } src/ApiCore/AgentHeaderDescriptor.php000064400000010712151742740600013603 0ustar00metricsHeaders = $metricsHeaders; } /** * Returns an associative array that contains GAPIC header metadata. * * @return array */ public function getHeader() { $metricsList = []; foreach ($this->metricsHeaders as $key => $value) { $metricsList[] = $key . "/" . $value; } return [self::AGENT_HEADER_KEY => [implode(" ", $metricsList)]]; } /** * Returns the version string for ApiCore. * * @return string */ public static function getApiCoreVersion() { return self::API_CORE_VERSION; } } src/ApiCore/ApiCallable.php000064400000026643151742740600011540 0ustar00getRetryDelayMultiplier(); $maxDelayMillis = $retrySettings->getMaxRetryDelayMillis(); $timeoutMult = $retrySettings->getRpcTimeoutMultiplier(); $maxTimeoutMillis = $retrySettings->getMaxRpcTimeoutMillis(); $totalTimeoutMillis = $retrySettings->getTotalTimeoutMillis(); $delayMillis = $retrySettings->getInitialRetryDelayMillis(); $timeoutMillis = $retrySettings->getInitialRpcTimeoutMillis(); $currentTimeMillis = $timeFuncMillis(); $deadlineMillis = $currentTimeMillis + $totalTimeoutMillis; while ($currentTimeMillis < $deadlineMillis) { $nextApiCall = self::setTimeout($apiCall, $timeoutMillis); try { return call_user_func_array($nextApiCall, func_get_args()); } catch (ApiException $e) { if (!in_array($e->getStatus(), $retrySettings->getRetryableCodes())) { throw $e; } } catch (Exception $e) { throw $e; } // Don't sleep if the failure was a timeout if ($e->getStatus() != ApiStatus::DEADLINE_EXCEEDED) { usleep($delayMillis * 1000); } $currentTimeMillis = $timeFuncMillis(); $delayMillis = min($delayMillis * $delayMult, $maxDelayMillis); $timeoutMillis = min( $timeoutMillis * $timeoutMult, $maxTimeoutMillis, $deadlineMillis - $currentTimeMillis ); } throw new ApiException( "Retry total timeout exceeded.", \Google\Rpc\Code::DEADLINE_EXCEEDED, ApiStatus::DEADLINE_EXCEEDED ); }; return $inner; } private static function setPageStreaming($callable, $pageStreamingDescriptor) { $inner = function () use ($callable, $pageStreamingDescriptor) { return new PagedListResponse(func_get_args(), $callable, $pageStreamingDescriptor); }; return $inner; } private static function setLongRunnning($callable, $longRunningDescriptor) { $inner = function () use ($callable, $longRunningDescriptor) { $response = call_user_func_array($callable, func_get_args()); $name = $response->getName(); $client = $longRunningDescriptor['operationsClient']; $options = $longRunningDescriptor + [ 'lastProtoResponse' => $response, ]; return new OperationResponse($name, $client, $options); }; return $inner; } private static function createUnaryApiCall($callable) { return function () use ($callable) { list($response, $status) = call_user_func_array($callable, func_get_args())->wait(); if ($status->code == \Google\Rpc\Code::OK) { return $response; } else { throw ApiException::createFromStdClass($status); } }; } private static function createGrpcStreamingApiCall($callable, $grpcStreamingDescriptor) { switch ($grpcStreamingDescriptor['grpcStreamingType']) { case 'ClientStreaming': return ClientStream::createApiCall($callable, $grpcStreamingDescriptor); case 'ServerStreaming': return ServerStream::createApiCall($callable, $grpcStreamingDescriptor); case 'BidiStreaming': return BidiStream::createApiCall($callable, $grpcStreamingDescriptor); default: throw new ValidationException('Unexpected gRPC streaming type: ' . $grpcStreamingDescriptor['grpcStreamingType']); } } private static function setCustomHeader($callable, $headerDescriptor, $userHeaders = null) { $inner = function () use ($callable, $headerDescriptor, $userHeaders) { $params = func_get_args(); if (count($params) != self::GRPC_CALLABLE_PARAM_COUNT || !is_array($params[self::GRPC_CALLABLE_METADATA_INDEX]) ) { throw new InvalidArgumentException('Metadata argument is not found.'); } else { $metadata = $params[self::GRPC_CALLABLE_METADATA_INDEX]; $headers = []; // Check $userHeaders first, and then merge $headerDescriptor headers, to ensure // that $headerDescriptor headers such as x-goog-api-client cannot be overwritten // by the $userHeaders. if (!is_null($userHeaders)) { $headers = $userHeaders; } if (!is_null($headerDescriptor)) { $headers = array_merge($headers, $headerDescriptor->getHeader()); } $params[self::GRPC_CALLABLE_METADATA_INDEX] = array_merge($headers, $metadata); return call_user_func_array($callable, $params); } }; return $inner; } /** * @param \Grpc\BaseStub $stub the gRPC stub to make calls through. * @param string $methodName the method name on the stub to call. * @param \Google\ApiCore\CallSettings $settings the call settings to use for this call. * @param array $options { * Optional. * @type \Google\ApiCore\PageStreamingDescriptor $pageStreamingDescriptor * the descriptor used for page-streaming. * @type \Google\ApiCore\AgentHeaderDescriptor $headerDescriptor * the descriptor used for creating GAPIC header. * } * * @throws ValidationException * @return callable */ public static function createApiCall($stub, $methodName, CallSettings $settings, $options = []) { ApiCallable::validateApiCallSettings($settings, $options); $callable = array($stub, $methodName); if (array_key_exists('grpcStreamingDescriptor', $options)) { $apiCall = ApiCallable::createGrpcStreamingApiCall( $callable, $options['grpcStreamingDescriptor'] ); } else { $apiCall = ApiCallable::createUnaryApiCall($callable); } $retrySettings = $settings->getRetrySettings(); if (!is_null($retrySettings)) { if ($retrySettings->retriesEnabled()) { $timeFuncMillis = null; if (array_key_exists('timeFuncMillis', $options)) { $timeFuncMillis = $options['timeFuncMillis']; } $apiCall = self::setRetry($apiCall, $retrySettings, $timeFuncMillis); } elseif ($retrySettings->getNoRetriesRpcTimeoutMillis() > 0) { $apiCall = self::setTimeout($apiCall, $retrySettings->getNoRetriesRpcTimeoutMillis()); } } if (array_key_exists('pageStreamingDescriptor', $options)) { $apiCall = self::setPageStreaming($apiCall, $options['pageStreamingDescriptor']); } if (array_key_exists('longRunningDescriptor', $options)) { $apiCall = self::setLongRunnning($apiCall, $options['longRunningDescriptor']); } if (array_key_exists('headerDescriptor', $options) || !is_null($settings->getUserHeaders())) { $apiCall = self::setCustomHeader($apiCall, $options['headerDescriptor'], $settings->getUserHeaders()); } return $apiCall; } private static function validateApiCallSettings(CallSettings $settings, $options) { $retrySettings = $settings->getRetrySettings(); $isGrpcStreaming = array_key_exists('grpcStreamingDescriptor', $options); if ($isGrpcStreaming) { if (!is_null($retrySettings) && $retrySettings->retriesEnabled()) { throw new ValidationException( 'grpcStreamingDescriptor not compatible with retry settings' ); } if (array_key_exists('pageStreamingDescriptor', $options)) { throw new ValidationException( 'grpcStreamingDescriptor not compatible with pageStreamingDescriptor' ); } if (array_key_exists('longRunningDescriptor', $options)) { throw new ValidationException( 'grpcStreamingDescriptor not compatible with longRunningDescriptor' ); } } } } src/ApiCore/ApiException.php000064400000007430151742740600011770 0ustar00 null, 'metadata' => null, 'basicMessage' => $message, ]; parent::__construct($message, $code, $optionalArgs['previous']); $this->status = $status; $this->metadata = $optionalArgs['metadata']; $this->basicMessage = $optionalArgs['basicMessage']; } public function getStatus() { return $this->status; } /** * @param \stdClass $status * @return ApiException */ public static function createFromStdClass($status) { $basicMessage = $status->details; $code = $status->code; $rpcStatus = ApiStatus::statusFromRpcCode($code); $metadata = property_exists($status, 'metadata') ? $status->metadata : null; $messageData = [ 'message' => $basicMessage, 'code' => $code, 'status' => $rpcStatus, 'details' => Serializer::decodeMetadata($metadata) ]; $message = json_encode($messageData, JSON_PRETTY_PRINT); return new ApiException($message, $code, $rpcStatus, [ 'metadata' => $metadata, 'basicMessage' => $basicMessage, ]); } /** * @return null|string */ public function getBasicMessage() { return $this->basicMessage; } /** * @return mixed[] */ public function getMetadata() { return $this->metadata; } /** * String representation of ApiException * @return string */ public function __toString() { return __CLASS__ . ": $this->message\n"; } } src/ApiCore/ApiStatus.php000064400000011370151742740600011313 0ustar00 Code::OK, ApiStatus::CANCELLED => Code::CANCELLED, ApiStatus::UNKNOWN => Code::UNKNOWN, ApiStatus::INVALID_ARGUMENT => Code::INVALID_ARGUMENT, ApiStatus::DEADLINE_EXCEEDED => Code::DEADLINE_EXCEEDED, ApiStatus::NOT_FOUND => Code::NOT_FOUND, ApiStatus::ALREADY_EXISTS => Code::ALREADY_EXISTS, ApiStatus::PERMISSION_DENIED => Code::PERMISSION_DENIED, ApiStatus::RESOURCE_EXHAUSTED => Code::RESOURCE_EXHAUSTED, ApiStatus::FAILED_PRECONDITION => Code::FAILED_PRECONDITION, ApiStatus::ABORTED => Code::ABORTED, ApiStatus::OUT_OF_RANGE => Code::OUT_OF_RANGE, ApiStatus::UNIMPLEMENTED => Code::UNIMPLEMENTED, ApiStatus::INTERNAL => Code::INTERNAL, ApiStatus::UNAVAILABLE => Code::UNAVAILABLE, ApiStatus::DATA_LOSS => Code::DATA_LOSS, ApiStatus::UNAUTHENTICATED => Code::UNAUTHENTICATED, ]; private static $codeToApiStatusMap = [ Code::OK => ApiStatus::OK, Code::CANCELLED => ApiStatus::CANCELLED, Code::UNKNOWN => ApiStatus::UNKNOWN, Code::INVALID_ARGUMENT => ApiStatus::INVALID_ARGUMENT, Code::DEADLINE_EXCEEDED => ApiStatus::DEADLINE_EXCEEDED, Code::NOT_FOUND => ApiStatus::NOT_FOUND, Code::ALREADY_EXISTS => ApiStatus::ALREADY_EXISTS, Code::PERMISSION_DENIED => ApiStatus::PERMISSION_DENIED, Code::RESOURCE_EXHAUSTED => ApiStatus::RESOURCE_EXHAUSTED, Code::FAILED_PRECONDITION => ApiStatus::FAILED_PRECONDITION, Code::ABORTED => ApiStatus::ABORTED, Code::OUT_OF_RANGE => ApiStatus::OUT_OF_RANGE, Code::UNIMPLEMENTED => ApiStatus::UNIMPLEMENTED, Code::INTERNAL => ApiStatus::INTERNAL, Code::UNAVAILABLE => ApiStatus::UNAVAILABLE, Code::DATA_LOSS => ApiStatus::DATA_LOSS, Code::UNAUTHENTICATED => ApiStatus::UNAUTHENTICATED, ]; /** * @param string $status * @return bool */ public static function isValidStatus($status) { return array_key_exists($status, self::$apiStatusToCodeMap); } /** * @param int $code * @return string */ public static function statusFromRpcCode($code) { if (array_key_exists($code, self::$codeToApiStatusMap)) { return self::$codeToApiStatusMap[$code]; } return ApiStatus::UNRECOGNIZED_STATUS; } } src/ApiCore/BidiStream.php000064400000014521151742740600011422 0ustar00call = $bidiStreamingCall; if (array_key_exists('resourcesGetMethod', $grpcStreamingDescriptor)) { $this->resourcesGetMethod = $grpcStreamingDescriptor['resourcesGetMethod']; } } /** * @param callable $callable * @param mixed[] $grpcStreamingDescriptor * @return callable ApiCall */ public static function createApiCall($callable, $grpcStreamingDescriptor) { return function () use ($callable, $grpcStreamingDescriptor) { $response = self::callWithoutRequest($callable, func_get_args()); return new BidiStream($response, $grpcStreamingDescriptor); }; } /** * Write request to the server. * * @param mixed $request The request to write * @throws ValidationException */ public function write($request) { if ($this->isComplete) { throw new ValidationException("Cannot call write() after streaming call is complete."); } if ($this->writesClosed) { throw new ValidationException("Cannot call write() after calling closeWrite()."); } $this->call->write($request); } /** * Write all requests in $requests. * * @param mixed[] $requests An Iterable of request objects to write to the server * * @throws ValidationException * @throws ApiException */ public function writeAll($requests = []) { foreach ($requests as $request) { $this->write($request); } } /** * Inform the server that no more requests will be written. The write() function cannot be * called after closeWrite() is called. */ public function closeWrite() { if ($this->isComplete) { throw new ValidationException( "Cannot call closeWrite() after streaming call is complete." ); } if (!$this->writesClosed) { $this->call->writesDone(); $this->writesClosed = true; } } /** * Read the next response from the server. Returns null if the streaming call completed * successfully. Throws an ApiException if the streaming call failed. * * @throws ValidationException * @throws ApiException * @return mixed */ public function read() { if ($this->isComplete) { throw new ValidationException("Cannot call read() after streaming call is complete."); } $resourcesGetMethod = $this->resourcesGetMethod; if (!is_null($resourcesGetMethod)) { if (count($this->pendingResources) === 0) { $response = $this->call->read(); if (!is_null($response)) { $pendingResources = []; foreach ($response->$resourcesGetMethod() as $resource) { $pendingResources[] = $resource; } $this->pendingResources = array_reverse($pendingResources); } } $result = array_pop($this->pendingResources); } else { $result = $this->call->read(); } if (is_null($result)) { $status = $this->call->getStatus(); $this->isComplete = true; if (!($status->code == Grpc\STATUS_OK)) { throw ApiException::createFromStdClass($status); } } return $result; } /** * Call closeWrite(), and read all responses from the server, until the streaming call is * completed. Throws an ApiException if the streaming call failed. * * @throws ValidationException * @throws ApiException * @return \Generator|mixed[] */ public function closeWriteAndReadAll() { $this->closeWrite(); $response = $this->read(); while (!is_null($response)) { yield $response; $response = $this->read(); } } /** * Return the underlying gRPC call object * * @return \Grpc\BidiStreamingCall|mixed */ public function getBidiStreamingCall() { return $this->call; } } src/ApiCore/CallHelperTrait.php000064400000003374151742740600012422 0ustar00 $methodConfig) { $phpMethodKey = lcfirst($methodName); $retrySettings = self::constructRetry( $methodConfig, $serviceConfig['retry_codes'], $serviceConfig['retry_params'] ); if (isset($retryingOverrides[$phpMethodKey])) { $retrySettingsOverride = $retryingOverrides[$phpMethodKey]; if (is_array($retrySettingsOverride)) { $retrySettings = $retrySettings->with($retrySettingsOverride); } elseif ($retrySettingsOverride instanceof RetrySettings) { $retrySettings = $retrySettingsOverride; } else { throw new ValidationException( "Unexpected value in retryingOverrides for method " . "$phpMethodKey: $retrySettingsOverride" ); } } $callSettings[$phpMethodKey] = new CallSettings(['retrySettings' => $retrySettings]); } return $callSettings; } private static function constructDefaultRetrySettings() { return new RetrySettings([ 'retriesEnabled' => false, 'noRetriesRpcTimeoutMillis' => 30000, 'initialRetryDelayMillis' => 100, 'retryDelayMultiplier' => 1.3, 'maxRetryDelayMillis' => 60000, 'initialRpcTimeoutMillis' => 20000, 'rpcTimeoutMultiplier' => 1, 'maxRpcTimeoutMillis' => 20000, 'totalTimeoutMillis' => 600000, 'retryableCodes' => []]); } private static function constructRetry( $methodConfig, $retryCodes, $retryParams ) { $timeoutMillis = $methodConfig['timeout_millis']; if (empty($methodConfig['retry_codes_name']) || empty($methodConfig['retry_params_name'])) { // Construct a RetrySettings object with retries disabled return self::constructDefaultRetrySettings()->with([ 'noRetriesRpcTimeoutMillis' => $timeoutMillis, ]); } $retryCodesName = $methodConfig['retry_codes_name']; $retryParamsName = $methodConfig['retry_params_name']; if (!array_key_exists($retryCodesName, $retryCodes)) { throw new ValidationException("Invalid retry_codes_name setting: '$retryCodesName'"); } if (!array_key_exists($retryParamsName, $retryParams)) { throw new ValidationException("Invalid retry_params_name setting: '$retryParamsName'"); } foreach ($retryCodes[$retryCodesName] as $status) { if (!ApiStatus::isValidStatus($status)) { throw new ValidationException("Invalid status code: '$status'"); } } $retryParameters = self::convertArrayFromSnakeCase($retryParams[$retryParamsName]); $retrySettings = $retryParameters + [ 'retryableCodes' => $retryCodes[$retryCodesName], 'noRetriesRpcTimeoutMillis' => $timeoutMillis, ]; return new RetrySettings($retrySettings); } /** * Construct an instance. * * @param array $settings { * Optional. * @type \Google\ApiCore\RetrySettings $retrySettings * Retry settings to use for this method. * @type array $userHeaders * An array of headers to be included in the request. * } */ public function __construct(array $settings = []) { if (array_key_exists('retrySettings', $settings)) { $this->retrySettings = $settings['retrySettings']; } if (array_key_exists('userHeaders', $settings)) { $this->userHeaders = $settings['userHeaders']; } } /** * Creates a new instance of CallSettings that updates the settings in the existing instance * with the settings specified in the $settings parameter. * * @param array $settings { * Optional. * @type \Google\ApiCore\RetrySettings $retrySettings * Retry settings to use for CallSettings object. * @type array $userHeaders * An array of headers to be included in the request. * } * @return CallSettings */ public function with(array $settings) { $existingSettings = $this->toArray(); return new CallSettings($settings + $existingSettings); } /** * @return RetrySettings|null Retry settings */ public function getRetrySettings() { return $this->retrySettings; } /** * @return array User headers */ public function getUserHeaders() { return $this->userHeaders; } /** * Returns a new CallSettings merged from this and another CallSettings object. * * @param CallSettings $otherSettings * A CallSettings whose values override those in this object. If * null, then a copy of this object is returned. * @return CallSettings */ public function merge(CallSettings $otherSettings = null) { if (is_null($otherSettings)) { return $this->with([]); } return $this->with($otherSettings->toArray()); } /** * @return array */ private function toArray() { $arr = []; if (!is_null($this->getRetrySettings())) { $arr['retrySettings'] = $this->getRetrySettings(); } if (!is_null($this->getUserHeaders())) { $arr['userHeaders'] = $this->getUserHeaders(); } return $arr; } private static function convertArrayFromSnakeCase($settings) { $camelCaseSettings = []; foreach ($settings as $key => $value) { $camelCaseKey = str_replace(' ', '', ucwords(str_replace('_', ' ', $key))); $camelCaseSettings[lcfirst($camelCaseKey)] = $value; } return $camelCaseSettings; } } src/ApiCore/ClientStream.php000064400000007445151742740600012000 0ustar00call = $clientStreamingCall; } /** * @param callable $callable * @param mixed[] $grpcStreamingDescriptor * @return callable ApiCall */ public static function createApiCall($callable, $grpcStreamingDescriptor) { return function () use ($callable, $grpcStreamingDescriptor) { $response = self::callWithoutRequest($callable, func_get_args()); return new ClientStream($response, $grpcStreamingDescriptor); }; } /** * Write request to the server. * * @param mixed $request The request to write */ public function write($request) { $this->call->write($request); } /** * Read the response from the server, completing the streaming call. * * @throws ApiException * @return mixed The response object from the server */ public function readResponse() { list($response, $status) = $this->call->wait(); if ($status->code == Grpc\STATUS_OK) { return $response; } else { throw ApiException::createFromStdClass($status); } } /** * Write all data in $dataArray and read the response from the server, completing the streaming * call. * * @param mixed[] $requests An iterator of request objects to write to the server * @return mixed The response object from the server */ public function writeAllAndReadResponse($requests) { foreach ($requests as $request) { $this->write($request); } return $this->readResponse(); } /** * Return the underlying gRPC call object * * @return \Grpc\ClientStreamingCall|mixed */ public function getClientStreamingCall() { return $this->call; } } src/ApiCore/FixedSizeCollection.php000064400000014350151742740600013305 0ustar00 0. collectionSize: $collectionSize" ); } if ($collectionSize < $initialPage->getPageElementCount()) { $ipc = $initialPage->getPageElementCount(); throw new InvalidArgumentException( "collectionSize must be greater than or equal to the number of " . "elements in initialPage. collectionSize: $collectionSize, " . "initialPage size: $ipc" ); } $this->collectionSize = $collectionSize; $this->pageList = FixedSizeCollection::createPageArray($initialPage, $collectionSize); } /** * Returns the number of elements in the collection. This will be * equal to the collectionSize parameter used at construction * unless there are no elements remaining to be retrieved. * * @return int */ public function getCollectionSize() { $size = 0; foreach ($this->pageList as $page) { $size += $page->getPageElementCount(); } return $size; } /** * Returns true if there are more elements that can be retrieved * from the API. * * @return bool */ public function hasNextCollection() { return $this->getLastPage()->hasNextPage(); } /** * Returns a page token that can be passed into the API list * method to retrieve additional elements. * * @return string */ public function getNextPageToken() { return $this->getLastPage()->getNextPageToken(); } /** * Retrieves the next FixedSizeCollection using one or more API calls. * * @return FixedSizeCollection */ public function getNextCollection() { $lastPage = $this->getLastPage(); $nextPage = $lastPage->getNextPage($this->collectionSize); return new FixedSizeCollection($nextPage, $this->collectionSize); } /** * Returns an iterator over the elements of the collection. * * @return Generator */ public function getIterator() { foreach ($this->pageList as $page) { foreach ($page as $element) { yield $element; } } } /** * Returns an iterator over FixedSizeCollections, starting with this * and making API calls as required until all of the elements have * been retrieved. * * @return Generator|FixedSizeCollection[] */ public function iterateCollections() { $currentCollection = $this; yield $this; while ($currentCollection->hasNextCollection()) { $currentCollection = $currentCollection->getNextCollection(); yield $currentCollection; } } private function getLastPage() { $pageList = $this->pageList; // Get last element in array... $lastPage = end($pageList); reset($pageList); return $lastPage; } /** * @param Page $initialPage * @param integer $collectionSize * @return Page[] */ private static function createPageArray($initialPage, $collectionSize) { $pageList = [$initialPage]; $currentPage = $initialPage; $itemCount = $currentPage->getPageElementCount(); while ($itemCount < $collectionSize && $currentPage->hasNextPage()) { $remainingCount = $collectionSize - $itemCount; $currentPage = $currentPage->getNextPage($remainingCount); $rxElementCount = $currentPage->getPageElementCount(); if ($rxElementCount > $remainingCount) { throw new LengthException("API returned a number of elements " . "exceeding the specified page size limit. page size: " . "$remainingCount, elements received: $rxElementCount"); } array_push($pageList, $currentPage); $itemCount += $rxElementCount; } return $pageList; } } src/ApiCore/GPBLabel.php000064400000003511151742740600010744 0ustar00validateNotNull($args, [ 'serviceAddress', 'port', ]); $defaultOptions = [ 'forceNewChannel' => false, 'enableCaching' => true, ]; $args = array_merge($defaultOptions, $args); if (empty($args['credentialsLoader'])) { $this->validateNotNull($args, ['scopes']); $args['credentialsLoader'] = $this->getADCCredentials($args['scopes']); } if ($args['enableCaching']) { $cachingOptions = array_diff_key($args, array_flip([ 'serviceAddress', 'port', 'scopes', 'credentialsLoader', 'channel', 'sslCreds', 'forceNewChannel', 'enableCaching' ])); $args['credentialsLoader'] = new FetchAuthTokenCache( $args['credentialsLoader'], $cachingOptions, new MemoryCacheItemPool() ); } $this->args = $args; } /** * Creates the callback function to be passed to gRPC for providing the credentials * for a call. * * @return callable */ public function createCallCredentialsCallback() { $credentialsLoader = $this->args['credentialsLoader']; $callback = function () use ($credentialsLoader) { $token = $credentialsLoader->fetchAuthToken(); return ['authorization' => array('Bearer ' . $token['access_token'])]; }; return $callback; } /** * Creates a gRPC client stub. * * @param callable $generatedCreateStub * Function callback which must accept three arguments ($hostname, $opts, $channel) * and return an instance of the stub of the specific API to call. * Generally, this should just call the stub's constructor and return * the instance. * @param array $args Optional parameters that override those set in the GrpcCredentialsHelper constructor * @return \Grpc\BaseStub */ public function createStub($generatedCreateStub, $args = []) { $args = array_merge($this->args, $args); $stubOpts = []; // We need to use array_key_exists here because null is a valid value if (!array_key_exists('sslCreds', $args)) { $stubOpts['credentials'] = $this->createSslChannelCredentials(); } else { $stubOpts['credentials'] = $args['sslCreds']; } $serviceAddress = $args['serviceAddress']; $port = $args['port']; $fullAddress = "$serviceAddress:$port"; $stubOpts['grpc.ssl_target_name_override'] = $fullAddress; if (isset($args['channel'])) { $channel = $args['channel']; } else { $channel = null; } if (isset($args['forceNewChannel']) && $args['forceNewChannel']) { $stubOpts['force_new'] = true; } return $generatedCreateStub($fullAddress, $stubOpts, $channel); } /** * Gets credentials from ADC. This exists to allow overriding in unit tests. * * @param string[] $scopes * @return CredentialsLoader */ protected function getADCCredentials($scopes) { return ApplicationDefaultCredentials::getCredentials($scopes); } /** * Construct ssl channel credentials. This exists to allow overriding in unit tests. * * @return \Grpc\ChannelCredentials */ protected function createSslChannelCredentials() { return ChannelCredentials::createSsl(); } } src/ApiCore/Jison/Parser.jison000064400000010666151742740600012256 0ustar00/* * Copyright 2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are * met: * * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above * copyright notice, this list of conditions and the following disclaimer * in the documentation and/or other materials provided with the * distribution. * * Neither the name of Google Inc. nor the names of its * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* description: Parses a path template string and returns an array of * Segment objects. */ /* options */ //option namespace:Google\ApiCore\Jison /* lexical grammar */ %lex %% \s+ /* skip whitespace */ "/" return 'FORWARD_SLASH' "{" return 'LEFT_BRACE' "}" return 'RIGHT_BRACE' "=" return 'EQUALS' "**" return 'PATH_WILDCARD' "*" return 'WILDCARD' [^*=}{}\/]+ return 'LITERAL' <> /* skip EOF */ /lex %token 'FORWARD_SLASH' %token 'LEFT_BRACE' %token 'RIGHT_BRACE' %token 'EQUALS' %token 'LITERAL' %token 'PATH_WILDCARD' %token 'WILDCARD' %% /* language grammar */ /* This file is used by a php port of Jison (https://github.com/zaach/jison). */ template : FORWARD_SLASH bound_segments {//php return $2->text; } | bound_segments {//php return $1->text; } ; bound_segments : bound_segment FORWARD_SLASH bound_segments {/*php $t1 = $1->text; $t3 = $3->text; $$ = array_merge($t1, $t3); */} | bound_segment {//php $$ = $1->text; } ; unbound_segments : unbound_terminal FORWARD_SLASH unbound_segments {/*php $t1 = $1->text; $t3 = $3->text; $$ = array_merge($t1, $t3); */} | unbound_terminal {//php $$ = $1->text; } ; bound_segment : bound_terminal {//php $$ = $1->text; } | variable {//php $$ = $1->text; } ; unbound_terminal : WILDCARD {/*php $t1 = $1->text; Segment::incrementSegmentCount(); $$ = [new Segment(Segment::TERMINAL, $t1)]; */} | PATH_WILDCARD {/*php $t1 = $1->text; Segment::incrementSegmentCount(); $$ = [new Segment(Segment::TERMINAL, $t1)]; */} | LITERAL {/*php $t1 = $1->text; Segment::incrementSegmentCount(); $$ = [new Segment(Segment::TERMINAL, $t1)]; */} ; bound_terminal : unbound_terminal {/*php $t1 = $1->text; if (in_array($t1[0]['literal'], ['*', '**'])) { $$ = [ new Segment(Segment::BINDING, sprintf('$%d', Segment::getBindingCount())), $t1[0], new Segment(Segment::END_BINDING, '') ]; Segment::incrementBindingCount(); } else { $$ = $t1; } */} ; variable : LEFT_BRACE LITERAL EQUALS unbound_segments RIGHT_BRACE {/*php $t2 = $2->text; $t4 = $4->text; $tmp = [new Segment(Segment::BINDING, $t2)]; $tmp = array_merge($tmp, $t4); array_push($tmp, new Segment(Segment::END_BINDING, '')); $$ = $tmp; */} | LEFT_BRACE LITERAL RIGHT_BRACE {/*php $t2 = $2->text; $$ = [ new Segment(Segment::BINDING, $t2), new Segment(Segment::TERMINAL, '*'), new Segment(Segment::END_BINDING, '') ]; Segment::incrementSegmentCount(); */} ; src/ApiCore/Jison/Parser.php000064400000072555151742740600011730 0ustar00symbols[0] = $symbol0; $this->symbols["accept"] = $symbol0; $this->symbols[1] = $symbol1; $this->symbols["end"] = $symbol1; $this->symbols[2] = $symbol2; $this->symbols["error"] = $symbol2; $this->symbols[3] = $symbol3; $this->symbols["template"] = $symbol3; $this->symbols[4] = $symbol4; $this->symbols["FORWARD_SLASH"] = $symbol4; $this->symbols[5] = $symbol5; $this->symbols["bound_segments"] = $symbol5; $this->symbols[6] = $symbol6; $this->symbols["bound_segment"] = $symbol6; $this->symbols[7] = $symbol7; $this->symbols["unbound_segments"] = $symbol7; $this->symbols[8] = $symbol8; $this->symbols["unbound_terminal"] = $symbol8; $this->symbols[9] = $symbol9; $this->symbols["bound_terminal"] = $symbol9; $this->symbols[10] = $symbol10; $this->symbols["variable"] = $symbol10; $this->symbols[11] = $symbol11; $this->symbols["WILDCARD"] = $symbol11; $this->symbols[12] = $symbol12; $this->symbols["PATH_WILDCARD"] = $symbol12; $this->symbols[13] = $symbol13; $this->symbols["LITERAL"] = $symbol13; $this->symbols[14] = $symbol14; $this->symbols["LEFT_BRACE"] = $symbol14; $this->symbols[15] = $symbol15; $this->symbols["EQUALS"] = $symbol15; $this->symbols[16] = $symbol16; $this->symbols["RIGHT_BRACE"] = $symbol16; $this->terminals = array( 2=>&$symbol2, 4=>&$symbol4, 11=>&$symbol11, 12=>&$symbol12, 13=>&$symbol13, 14=>&$symbol14, 15=>&$symbol15, 16=>&$symbol16 ); $table0 = new ParserState(0); $table1 = new ParserState(1); $table2 = new ParserState(2); $table3 = new ParserState(3); $table4 = new ParserState(4); $table5 = new ParserState(5); $table6 = new ParserState(6); $table7 = new ParserState(7); $table8 = new ParserState(8); $table9 = new ParserState(9); $table10 = new ParserState(10); $table11 = new ParserState(11); $table12 = new ParserState(12); $table13 = new ParserState(13); $table14 = new ParserState(14); $table15 = new ParserState(15); $table16 = new ParserState(16); $table17 = new ParserState(17); $table18 = new ParserState(18); $table19 = new ParserState(19); $table20 = new ParserState(20); $table21 = new ParserState(21); $table22 = new ParserState(22); $tableDefinition0 = array( 3=>new ParserAction($this->none, $table1), 4=>new ParserAction($this->shift, $table2), 5=>new ParserAction($this->none, $table3), 6=>new ParserAction($this->none, $table4), 8=>new ParserAction($this->none, $table7), 9=>new ParserAction($this->none, $table5), 10=>new ParserAction($this->none, $table6), 11=>new ParserAction($this->shift, $table9), 12=>new ParserAction($this->shift, $table10), 13=>new ParserAction($this->shift, $table11), 14=>new ParserAction($this->shift, $table8) ); $tableDefinition1 = array( 1=>new ParserAction($this->accept) ); $tableDefinition2 = array( 5=>new ParserAction($this->none, $table12), 6=>new ParserAction($this->none, $table4), 8=>new ParserAction($this->none, $table7), 9=>new ParserAction($this->none, $table5), 10=>new ParserAction($this->none, $table6), 11=>new ParserAction($this->shift, $table9), 12=>new ParserAction($this->shift, $table10), 13=>new ParserAction($this->shift, $table11), 14=>new ParserAction($this->shift, $table8) ); $tableDefinition3 = array( 1=>new ParserAction($this->reduce, $table2) ); $tableDefinition4 = array( 1=>new ParserAction($this->reduce, $table4), 4=>new ParserAction($this->shift, $table13) ); $tableDefinition5 = array( 1=>new ParserAction($this->reduce, $table7), 4=>new ParserAction($this->reduce, $table7) ); $tableDefinition6 = array( 1=>new ParserAction($this->reduce, $table8), 4=>new ParserAction($this->reduce, $table8) ); $tableDefinition7 = array( 1=>new ParserAction($this->reduce, $table12), 4=>new ParserAction($this->reduce, $table12) ); $tableDefinition8 = array( 13=>new ParserAction($this->shift, $table14) ); $tableDefinition9 = array( 1=>new ParserAction($this->reduce, $table9), 4=>new ParserAction($this->reduce, $table9), 16=>new ParserAction($this->reduce, $table9) ); $tableDefinition10 = array( 1=>new ParserAction($this->reduce, $table10), 4=>new ParserAction($this->reduce, $table10), 16=>new ParserAction($this->reduce, $table10) ); $tableDefinition11 = array( 1=>new ParserAction($this->reduce, $table11), 4=>new ParserAction($this->reduce, $table11), 16=>new ParserAction($this->reduce, $table11) ); $tableDefinition12 = array( 1=>new ParserAction($this->reduce, $table1) ); $tableDefinition13 = array( 5=>new ParserAction($this->none, $table15), 6=>new ParserAction($this->none, $table4), 8=>new ParserAction($this->none, $table7), 9=>new ParserAction($this->none, $table5), 10=>new ParserAction($this->none, $table6), 11=>new ParserAction($this->shift, $table9), 12=>new ParserAction($this->shift, $table10), 13=>new ParserAction($this->shift, $table11), 14=>new ParserAction($this->shift, $table8) ); $tableDefinition14 = array( 15=>new ParserAction($this->shift, $table16), 16=>new ParserAction($this->shift, $table17) ); $tableDefinition15 = array( 1=>new ParserAction($this->reduce, $table3) ); $tableDefinition16 = array( 7=>new ParserAction($this->none, $table18), 8=>new ParserAction($this->none, $table19), 11=>new ParserAction($this->shift, $table9), 12=>new ParserAction($this->shift, $table10), 13=>new ParserAction($this->shift, $table11) ); $tableDefinition17 = array( 1=>new ParserAction($this->reduce, $table14), 4=>new ParserAction($this->reduce, $table14) ); $tableDefinition18 = array( 16=>new ParserAction($this->shift, $table20) ); $tableDefinition19 = array( 4=>new ParserAction($this->shift, $table21), 16=>new ParserAction($this->reduce, $table6) ); $tableDefinition20 = array( 1=>new ParserAction($this->reduce, $table13), 4=>new ParserAction($this->reduce, $table13) ); $tableDefinition21 = array( 7=>new ParserAction($this->none, $table22), 8=>new ParserAction($this->none, $table19), 11=>new ParserAction($this->shift, $table9), 12=>new ParserAction($this->shift, $table10), 13=>new ParserAction($this->shift, $table11) ); $tableDefinition22 = array( 16=>new ParserAction($this->reduce, $table5) ); $table0->setActions($tableDefinition0); $table1->setActions($tableDefinition1); $table2->setActions($tableDefinition2); $table3->setActions($tableDefinition3); $table4->setActions($tableDefinition4); $table5->setActions($tableDefinition5); $table6->setActions($tableDefinition6); $table7->setActions($tableDefinition7); $table8->setActions($tableDefinition8); $table9->setActions($tableDefinition9); $table10->setActions($tableDefinition10); $table11->setActions($tableDefinition11); $table12->setActions($tableDefinition12); $table13->setActions($tableDefinition13); $table14->setActions($tableDefinition14); $table15->setActions($tableDefinition15); $table16->setActions($tableDefinition16); $table17->setActions($tableDefinition17); $table18->setActions($tableDefinition18); $table19->setActions($tableDefinition19); $table20->setActions($tableDefinition20); $table21->setActions($tableDefinition21); $table22->setActions($tableDefinition22); $this->table = array( 0=>$table0, 1=>$table1, 2=>$table2, 3=>$table3, 4=>$table4, 5=>$table5, 6=>$table6, 7=>$table7, 8=>$table8, 9=>$table9, 10=>$table10, 11=>$table11, 12=>$table12, 13=>$table13, 14=>$table14, 15=>$table15, 16=>$table16, 17=>$table17, 18=>$table18, 19=>$table19, 20=>$table20, 21=>$table21, 22=>$table22 ); $this->defaultActions = array( 3=>new ParserAction($this->reduce, $table2), 12=>new ParserAction($this->reduce, $table1), 15=>new ParserAction($this->reduce, $table3), 22=>new ParserAction($this->reduce, $table5) ); $this->productions = array( 0=>new ParserProduction($symbol0), 1=>new ParserProduction($symbol3,2), 2=>new ParserProduction($symbol3,1), 3=>new ParserProduction($symbol5,3), 4=>new ParserProduction($symbol5,1), 5=>new ParserProduction($symbol7,3), 6=>new ParserProduction($symbol7,1), 7=>new ParserProduction($symbol6,1), 8=>new ParserProduction($symbol6,1), 9=>new ParserProduction($symbol8,1), 10=>new ParserProduction($symbol8,1), 11=>new ParserProduction($symbol8,1), 12=>new ParserProduction($symbol9,1), 13=>new ParserProduction($symbol10,5), 14=>new ParserProduction($symbol10,3) ); //Setup Lexer $this->rules = array( 0=>"/^(?:\s+)/", 1=>"/^(?:\/)/", 2=>"/^(?:\{)/", 3=>"/^(?:\})/", 4=>"/^(?:=)/", 5=>"/^(?:\*\*)/", 6=>"/^(?:\*)/", 7=>"/^(?:[^*=}{}\/]+)/", 8=>"/^(?:$)/" ); $this->conditions = array( "INITIAL"=>new LexerConditions(array( 0,1,2,3,4,5,6,7,8), true) ); } function parserPerformAction(&$thisS, &$yy, $yystate, &$s, $o) { /* this == yyval */ switch ($yystate) { case 1: case 2: return $s[$o]->text; break; case 3: case 5: $t1 = $s[$o-2]->text; $t3 = $s[$o]->text; $thisS = array_merge($t1, $t3); break; case 4: case 6: case 7: case 8: $thisS = $s[$o]->text; break; case 9: case 10: case 11: $t1 = $s[$o]->text; Segment::incrementSegmentCount(); $thisS = [new Segment(Segment::TERMINAL, $t1)]; break; case 12: $t1 = $s[$o]->text; if (in_array($t1[0]['literal'], ['*', '**'])) { $thisS = [ new Segment(Segment::BINDING, sprintf('$%d', Segment::getBindingCount())), $t1[0], new Segment(Segment::END_BINDING, '') ]; Segment::incrementBindingCount(); } else { $thisS = $t1; } break; case 13: $t2 = $s[$o-3]->text; $t4 = $s[$o-1]->text; $tmp = [new Segment(Segment::BINDING, $t2)]; $tmp = array_merge($tmp, $t4); array_push($tmp, new Segment(Segment::END_BINDING, '')); $thisS = $tmp; break; case 14: $t2 = $s[$o-1]->text; $thisS = [ new Segment(Segment::BINDING, $t2), new Segment(Segment::TERMINAL, '*'), new Segment(Segment::END_BINDING, '') ]; Segment::incrementSegmentCount(); break; } } function parserLex() { $token = $this->lexerLex(); // $end = 1 if (isset($token)) { return $token; } return $this->symbols["end"]; } function parseError($str = "", ParserError $hash = null) { throw new Exception($str); } function lexerError($str = "", LexerError $hash = null) { throw new Exception($str); } function parse($input) { if (empty($this->table)) { throw new Exception("Empty Table"); } $this->eof = new ParserSymbol("Eof", 1); $firstAction = new ParserAction(0, $this->table[0]); $firstCachedAction = new ParserCachedAction($firstAction); $stack = array($firstCachedAction); $stackCount = 1; $vstack = array(null); $vstackCount = 1; $yy = null; $_yy = null; $recovering = 0; $symbol = null; $action = null; $errStr = ""; $preErrorSymbol = null; $state = null; $this->setInput($input); while (true) { // retrieve state number from top of stack $state = $stack[$stackCount - 1]->action->state; // use default actions if available if ($state != null && isset($this->defaultActions[$state->index])) { $action = $this->defaultActions[$state->index]; } else { if (empty($symbol) == true) { $symbol = $this->parserLex(); } // read action for current state and first input if (isset($state) && isset($state->actions[$symbol->index])) { //$action = $this->table[$state][$symbol]; $action = $state->actions[$symbol->index]; } else { $action = null; } } if ($action == null) { if ($recovering == 0) { // Report error $expected = array(); foreach($this->table[$state->index]->actions as $p => $item) { if (!empty($this->terminals[$p]) && $p > 2) { $expected[] = $this->terminals[$p]->name; } } $errStr = "Parse error on line " . ($this->yy->lineNo + 1) . ":\n" . $this->showPosition() . "\nExpecting " . implode(", ", $expected) . ", got '" . (isset($this->terminals[$symbol->index]) ? $this->terminals[$symbol->index]->name : 'NOTHING') . "'"; $this->parseError($errStr, new ParserError($this->match, $state, $symbol, $this->yy->lineNo, $this->yy->loc, $expected)); } } if ($state === null || $action === null) { break; } switch ($action->action) { case 1: // shift //$this->shiftCount++; $stack[] = new ParserCachedAction($action, $symbol); $stackCount++; $vstack[] = clone($this->yy); $vstackCount++; $symbol = ""; if ($preErrorSymbol == null) { // normal execution/no error $yy = clone($this->yy); if ($recovering > 0) $recovering--; } else { // error just occurred, resume old look ahead f/ before error $symbol = $preErrorSymbol; $preErrorSymbol = null; } break; case 2: // reduce $len = $this->productions[$action->state->index]->len; // perform semantic action $_yy = $vstack[$vstackCount - $len];// default to $S = $1 // default location, uses first token for firsts, last for lasts if (isset($this->ranges)) { //TODO: add ranges } $r = $this->parserPerformAction($_yy->text, $yy, $action->state->index, $vstack, $vstackCount - 1); if (isset($r)) { return $r; } // pop off stack while ($len > 0) { $len--; array_pop($stack); $stackCount--; array_pop($vstack); $vstackCount--; } if (is_null($_yy)) { $vstack[] = new ParserValue(); } else { $vstack[] = $_yy; } $vstackCount++; $nextSymbol = $this->productions[$action->state->index]->symbol; // goto new state = table[STATE][NONTERMINAL] $nextState = $stack[$stackCount - 1]->action->state; $nextAction = $nextState->actions[$nextSymbol->index]; $stack[] = new ParserCachedAction($nextAction, $nextSymbol); $stackCount++; break; case 3: // accept return true; } } return true; } /* Jison generated lexer */ public $eof; public $yy = null; public $match = ""; public $matched = ""; public $conditionStack = array(); public $conditionStackCount = 0; public $rules = array(); public $conditions = array(); public $done = false; public $less; public $more; public $input; public $offset; public $ranges; public $flex = false; function setInput($input) { $this->input = $input; $this->more = $this->less = $this->done = false; $this->yy = new ParserValue(); $this->conditionStack = array('INITIAL'); $this->conditionStackCount = 1; if (isset($this->ranges)) { $loc = $this->yy->loc = new ParserLocation(); $loc->Range(new ParserRange(0, 0)); } else { $this->yy->loc = new ParserLocation(); } $this->offset = 0; } function input() { $ch = $this->input[0]; $this->yy->text .= $ch; $this->yy->leng++; $this->offset++; $this->match .= $ch; $this->matched .= $ch; $lines = preg_match("/(?:\r\n?|\n).*/", $ch); if (count($lines) > 0) { $this->yy->lineNo++; $this->yy->lastLine++; } else { $this->yy->loc->lastColumn++; } if (isset($this->ranges)) { $this->yy->loc->range->y++; } $this->input = array_slice($this->input, 1); return $ch; } function unput($ch) { $len = strlen($ch); $lines = explode("/(?:\r\n?|\n)/", $ch); $linesCount = count($lines); $this->input = $ch . $this->input; $this->yy->text = substr($this->yy->text, 0, $len - 1); //$this->yylen -= $len; $this->offset -= $len; $oldLines = explode("/(?:\r\n?|\n)/", $this->match); $oldLinesCount = count($oldLines); $this->match = substr($this->match, 0, strlen($this->match) - 1); $this->matched = substr($this->matched, 0, strlen($this->matched) - 1); if (($linesCount - 1) > 0) $this->yy->lineNo -= $linesCount - 1; $r = $this->yy->loc->range; $oldLinesLength = (isset($oldLines[$oldLinesCount - $linesCount]) ? strlen($oldLines[$oldLinesCount - $linesCount]) : 0); $this->yy->loc = new ParserLocation( $this->yy->loc->firstLine, $this->yy->lineNo, $this->yy->loc->firstColumn, $this->yy->loc->firstLine, (empty($lines) ? ($linesCount == $oldLinesCount ? $this->yy->loc->firstColumn : 0) + $oldLinesLength : $this->yy->loc->firstColumn - $len) ); if (isset($this->ranges)) { $this->yy->loc->range = array($r[0], $r[0] + $this->yy->leng - $len); } } function more() { $this->more = true; } function pastInput() { $past = substr($this->matched, 0, strlen($this->matched) - strlen($this->match)); return (strlen($past) > 20 ? '...' : '') . preg_replace("/\n/", "", substr($past, -20)); } function upcomingInput() { $next = $this->match; if (strlen($next) < 20) { $next .= substr($this->input, 0, 20 - strlen($next)); } return preg_replace("/\n/", "", substr($next, 0, 20) . (strlen($next) > 20 ? '...' : '')); } function showPosition() { $pre = $this->pastInput(); $c = ''; for($i = 0, $preLength = strlen($pre); $i < $preLength; $i++) { $c .= '-'; } return $pre . $this->upcomingInput() . "\n" . $c . "^"; } function next() { if ($this->done == true) { return $this->eof; } if (empty($this->input)) { $this->done = true; } if ($this->more == false) { $this->yy->text = ''; $this->match = ''; } $rules = $this->currentRules(); for ($i = 0, $j = count($rules); $i < $j; $i++) { preg_match($this->rules[$rules[$i]], $this->input, $tempMatch); if ($tempMatch && (empty($match) || count($tempMatch[0]) > count($match[0]))) { $match = $tempMatch; $index = $i; if (isset($this->flex) && $this->flex == false) { break; } } } if ( $match ) { $matchCount = strlen($match[0]); $lineCount = preg_match("/(?:\r\n?|\n).*/", $match[0], $lines); $line = ($lines ? $lines[$lineCount - 1] : false); $this->yy->lineNo += $lineCount; $this->yy->loc = new ParserLocation( $this->yy->loc->lastLine, $this->yy->lineNo + 1, $this->yy->loc->lastColumn, ($line ? count($line) - preg_match("/\r?\n?/", $line, $na) : $this->yy->loc->lastColumn + $matchCount ) ); $this->yy->text .= $match[0]; $this->match .= $match[0]; $this->matches = $match; $this->matched .= $match[0]; $this->yy->leng = strlen($this->yy->text); if (isset($this->ranges)) { $this->yy->loc->range = new ParserRange($this->offset, $this->offset += $this->yy->leng); } $this->more = false; $this->input = substr($this->input, $matchCount, strlen($this->input)); $ruleIndex = $rules[$index]; $nextCondition = $this->conditionStack[$this->conditionStackCount - 1]; $token = $this->lexerPerformAction($ruleIndex, $nextCondition); if ($this->done == true && empty($this->input) == false) { $this->done = false; } if (empty($token) == false) { return $this->symbols[ $token ]; } else { return null; } } if (empty($this->input)) { return $this->eof; } else { $this->lexerError("Lexical error on line " . ($this->yy->lineNo + 1) . ". Unrecognized text.\n" . $this->showPosition(), new LexerError("", -1, $this->yy->lineNo)); return null; } } function lexerLex() { $r = $this->next(); while (is_null($r) && !$this->done) { $r = $this->next(); } return $r; } function begin($condition) { $this->conditionStackCount++; $this->conditionStack[] = $condition; } function popState() { $this->conditionStackCount--; return array_pop($this->conditionStack); } function currentRules() { $peek = $this->conditionStack[$this->conditionStackCount - 1]; return $this->conditions[$peek]->rules; } function LexerPerformAction($avoidingNameCollisions, $YY_START = null) { ; switch($avoidingNameCollisions) { case 0:/* skip whitespace */ break; case 1:return 4; break; case 2:return 14; break; case 3:return 16; break; case 4:return 15; break; case 5:return 12; break; case 6:return 11; break; case 7:return 13; break; case 8:/* skip EOF */ break; } } } class ParserLocation { public $firstLine = 1; public $lastLine = 0; public $firstColumn = 1; public $lastColumn = 0; public $range; public function __construct($firstLine = 1, $lastLine = 0, $firstColumn = 1, $lastColumn = 0) { $this->firstLine = $firstLine; $this->lastLine = $lastLine; $this->firstColumn = $firstColumn; $this->lastColumn = $lastColumn; } public function Range($range) { $this->range = $range; } public function __clone() { return new ParserLocation($this->firstLine, $this->lastLine, $this->firstColumn, $this->lastColumn); } } class ParserValue { public $leng = 0; public $loc; public $lineNo = 0; public $text; function __clone() { $clone = new ParserValue(); $clone->leng = $this->leng; if (isset($this->loc)) { $clone->loc = clone $this->loc; } $clone->lineNo = $this->lineNo; $clone->text = $this->text; return $clone; } } class LexerConditions { public $rules; public $inclusive; function __construct($rules, $inclusive) { $this->rules = $rules; $this->inclusive = $inclusive; } } class ParserProduction { public $len = 0; public $symbol; public function __construct($symbol, $len = 0) { $this->symbol = $symbol; $this->len = $len; } } class ParserCachedAction { public $action; public $symbol; function __construct($action, $symbol = null) { $this->action = $action; $this->symbol = $symbol; } } class ParserAction { public $action; public $state; public $symbol; function __construct($action, &$state = null, &$symbol = null) { $this->action = $action; $this->state = $state; $this->symbol = $symbol; } } class ParserSymbol { public $name; public $index = -1; public $symbols = array(); public $symbolsByName = array(); function __construct($name, $index) { $this->name = $name; $this->index = $index; } public function addAction($a) { $this->symbols[$a->index] = $this->symbolsByName[$a->name] = $a; } } class ParserError { public $text; public $state; public $symbol; public $lineNo; public $loc; public $expected; function __construct($text, $state, $symbol, $lineNo, $loc, $expected) { $this->text = $text; $this->state = $state; $this->symbol = $symbol; $this->lineNo = $lineNo; $this->loc = $loc; $this->expected = $expected; } } class LexerError { public $text; public $token; public $lineNo; public function __construct($text, $token, $lineNo) { $this->text = $text; $this->token = $token; $this->lineNo = $lineNo; } } class ParserState { public $index; public $actions = array(); function __construct($index) { $this->index = $index; } public function setActions(&$actions) { $this->actions = $actions; } } class ParserRange { public $x; public $y; function __construct($x, $y) { $this->x = $x; $this->y = $y; } } src/ApiCore/Jison/Segment.php000064400000005265151742740600012070 0ustar00kind = $kind; $this->literal = $literal; $this['kind'] = $kind; $this['literal'] = $literal; } public static function getBindingCount() { return self::$bindingCount; } public static function incrementBindingCount() { self::$bindingCount++; } public static function resetBindingCount() { self::$bindingCount = 0; } public static function getSegmentCount() { return self::$segmentCount; } public static function incrementSegmentCount() { self::$segmentCount++; } public static function resetSegmentCount() { self::$segmentCount = 0; } } src/ApiCore/LongRunning/Gapic/OperationsGapicClient.php000064400000055127151742740600017117 0ustar00 'my-service-address', * 'scopes' => ['my-service-scope'], * ]; * $operationsClient = new OperationsClient($options); * $name = ''; * $response = $operationsClient->getOperation($name); * } finally { * if (isset($operationsClient)) { * $operationsClient->close(); * } * } * ``` * * @experimental */ class OperationsGapicClient { /** * 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 code generator version, to be included in the agent header. */ const CODEGEN_VERSION = '0.0.5'; private static $gapicVersion; private static $gapicVersionLoaded = false; protected $grpcCredentialsHelper; protected $operationsStub; private $scopes; private $defaultCallSettings; private $descriptors; private static function getPageStreamingDescriptors() { $listOperationsPageStreamingDescriptor = new PageStreamingDescriptor([ 'requestPageTokenGetMethod' => 'getPageToken', 'requestPageTokenSetMethod' => 'setPageToken', 'requestPageSizeGetMethod' => 'getPageSize', 'requestPageSizeSetMethod' => 'setPageSize', 'responsePageTokenGetMethod' => 'getNextPageToken', 'resourcesGetMethod' => 'getOperations', ]); $pageStreamingDescriptors = [ 'listOperations' => $listOperationsPageStreamingDescriptor, ]; return $pageStreamingDescriptors; } private static function getGapicVersion() { if (!self::$gapicVersionLoaded) { if (file_exists(__DIR__.'/../VERSION')) { self::$gapicVersion = trim(file_get_contents(__DIR__.'/../VERSION')); } elseif (class_exists(Version::class)) { self::$gapicVersion = Version::VERSION; } self::$gapicVersionLoaded = true; } return self::$gapicVersion; } /** * Constructor. * * @param array $options { * Required. Options for configuring the service API wrapper. Those options * that must be provided are marked as Required. * * @type string $serviceAddress Required. The domain name of the API remote host. * @type mixed $port The port on which to connect to the remote host. Default 443. * @type \Grpc\Channel $channel * A `Channel` object to be used by gRPC. If not specified, a channel will be constructed. * @type \Grpc\ChannelCredentials $sslCreds * A `ChannelCredentials` object for use with an SSL-enabled channel. * Default: a credentials object returned from * \Grpc\ChannelCredentials::createSsl() * NOTE: if the $channel optional argument is specified, then this argument is unused. * @type bool $forceNewChannel * If true, this forces gRPC to create a new channel instead of using a persistent channel. * Defaults to false. * NOTE: if the $channel optional argument is specified, then this option is unused. * @type \Google\Auth\CredentialsLoader $credentialsLoader * A CredentialsLoader object created using the Google\Auth library. * @type array $scopes Required. A string array of scopes to use when acquiring credentials. * @type string $clientConfigPath * Path to a JSON file containing client method configuration, including retry settings. * Specify this setting to specify the retry behavior of all methods on the client. * By default this settings points to the default client config file, which is provided * in the resources folder. The retry settings provided in this option can be overridden * by settings in $retryingOverride * @type array $retryingOverride * An associative array in which the keys are method names (e.g. 'createFoo'), and * the values are retry settings to use for that method. The retry settings for each * method 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. Passing a value of null is equivalent to a value of * ['retriesEnabled' => false]. Retry settings provided in this setting override the * settings in $clientConfigPath. * } * * @throws ValidationException Throws a ValidationException if required arguments are missing * from the $options array. * @experimental */ public function __construct($options = []) { if (!array_key_exists('serviceAddress', $options)) { throw new ValidationException("The 'serviceAddress' option must be provided."); } if (!array_key_exists('scopes', $options)) { throw new ValidationException("The 'scopes' option must be provided."); } $defaultOptions = [ 'port' => self::DEFAULT_SERVICE_PORT, 'retryingOverride' => null, 'libName' => null, 'libVersion' => null, 'clientConfigPath' => __DIR__.'/../resources/operations_client_config.json', ]; $options = array_merge($defaultOptions, $options); $gapicVersion = $options['libVersion'] ?: self::getGapicVersion(); $headerDescriptor = new AgentHeaderDescriptor([ 'libName' => $options['libName'], 'libVersion' => $options['libVersion'], 'gapicVersion' => $gapicVersion, ]); $defaultDescriptors = ['headerDescriptor' => $headerDescriptor]; $this->descriptors = [ 'getOperation' => $defaultDescriptors, 'listOperations' => $defaultDescriptors, 'cancelOperation' => $defaultDescriptors, 'deleteOperation' => $defaultDescriptors, ]; $pageStreamingDescriptors = self::getPageStreamingDescriptors(); foreach ($pageStreamingDescriptors as $method => $pageStreamingDescriptor) { $this->descriptors[$method]['pageStreamingDescriptor'] = $pageStreamingDescriptor; } $clientConfigJsonString = file_get_contents($options['clientConfigPath']); $clientConfig = json_decode($clientConfigJsonString, true); $this->defaultCallSettings = CallSettings::load( 'google.longrunning.Operations', $clientConfig, $options['retryingOverride'] ); $this->scopes = $options['scopes']; $createStubOptions = []; if (array_key_exists('sslCreds', $options)) { $createStubOptions['sslCreds'] = $options['sslCreds']; } $this->grpcCredentialsHelper = new GrpcCredentialsHelper($options); $createOperationsStubFunction = function ($hostname, $opts, $channel) { return new OperationsGrpcClient($hostname, $opts, $channel); }; if (array_key_exists('createOperationsStubFunction', $options)) { $createOperationsStubFunction = $options['createOperationsStubFunction']; } $this->operationsStub = $this->grpcCredentialsHelper->createStub($createOperationsStubFunction); } /** * Gets the latest state of a long-running operation. Clients can use this * method to poll the operation result at intervals as recommended by the API * service. * * Sample code: * ``` * try { * $options = [ * 'serviceAddress' => 'my-service-address', * 'scopes' => ['my-service-scope'], * ]; * $operationsClient = new OperationsClient($options); * $name = ''; * $response = $operationsClient->getOperation($name); * } finally { * if (isset($operationsClient)) { * $operationsClient->close(); * } * } * ``` * * @param string $name The name of the operation resource. * @param array $optionalArgs { * Optional. * * @type \Google\ApiCore\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\LongRunning\Operation * * @throws \Google\ApiCore\ApiException if the remote call fails * @experimental */ public function getOperation($name, $optionalArgs = []) { $request = new GetOperationRequest(); $request->setName($name); $defaultCallSettings = $this->defaultCallSettings['getOperation']; if (isset($optionalArgs['retrySettings']) && is_array($optionalArgs['retrySettings'])) { $optionalArgs['retrySettings'] = $defaultCallSettings->getRetrySettings()->with( $optionalArgs['retrySettings'] ); } $mergedSettings = $defaultCallSettings->merge(new CallSettings($optionalArgs)); $callable = ApiCallable::createApiCall( $this->operationsStub, 'GetOperation', $mergedSettings, $this->descriptors['getOperation'] ); return $callable( $request, [], ['call_credentials_callback' => $this->createCredentialsCallback()]); } /** * Lists operations that match the specified filter in the request. If the * server doesn't support this method, it returns `UNIMPLEMENTED`. * * NOTE: the `name` binding below allows API services to override the binding * to use different resource name schemes, such as `users/*/operations`. * * Sample code: * ``` * try { * $options = [ * 'serviceAddress' => 'my-service-address', * 'scopes' => ['my-service-scope'], * ]; * $operationsClient = new OperationsClient($options); * $name = ''; * $filter = ''; * // Iterate through all elements * $pagedResponse = $operationsClient->listOperations($name, $filter); * foreach ($pagedResponse->iterateAllElements() as $element) { * // doSomethingWith($element); * } * * // OR iterate over pages of elements * $pagedResponse = $operationsClient->listOperations($name, $filter); * foreach ($pagedResponse->iteratePages() as $page) { * foreach ($page as $element) { * // doSomethingWith($element); * } * } * } finally { * if (isset($operationsClient)) { * $operationsClient->close(); * } * } * ``` * * @param string $name The name of the operation collection. * @param string $filter The standard list filter. * @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 \Google\ApiCore\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 \Google\ApiCore\ApiException if the remote call fails * @experimental */ public function listOperations($name, $filter, $optionalArgs = []) { $request = new ListOperationsRequest(); $request->setName($name); $request->setFilter($filter); if (isset($optionalArgs['pageSize'])) { $request->setPageSize($optionalArgs['pageSize']); } if (isset($optionalArgs['pageToken'])) { $request->setPageToken($optionalArgs['pageToken']); } $defaultCallSettings = $this->defaultCallSettings['listOperations']; if (isset($optionalArgs['retrySettings']) && is_array($optionalArgs['retrySettings'])) { $optionalArgs['retrySettings'] = $defaultCallSettings->getRetrySettings()->with( $optionalArgs['retrySettings'] ); } $mergedSettings = $defaultCallSettings->merge(new CallSettings($optionalArgs)); $callable = ApiCallable::createApiCall( $this->operationsStub, 'ListOperations', $mergedSettings, $this->descriptors['listOperations'] ); return $callable( $request, [], ['call_credentials_callback' => $this->createCredentialsCallback()]); } /** * Starts asynchronous cancellation on a long-running operation. The server * makes a best effort to cancel the operation, but success is not * guaranteed. If the server doesn't support this method, it returns * `google.rpc.Code.UNIMPLEMENTED`. Clients can use * [Operations.GetOperation][google.longrunning.Operations.GetOperation] or * other methods to check whether the cancellation succeeded or whether the * operation completed despite cancellation. On successful cancellation, * the operation is not deleted; instead, it becomes an operation with * an [Operation.error][google.longrunning.Operation.error] value with a [google.rpc.Status.code][google.rpc.Status.code] of 1, * corresponding to `Code.CANCELLED`. * * Sample code: * ``` * try { * $options = [ * 'serviceAddress' => 'my-service-address', * 'scopes' => ['my-service-scope'], * ]; * $operationsClient = new OperationsClient($options); * $name = ''; * $operationsClient->cancelOperation($name); * } finally { * if (isset($operationsClient)) { * $operationsClient->close(); * } * } * ``` * * @param string $name The name of the operation resource to be cancelled. * @param array $optionalArgs { * Optional. * * @type \Google\ApiCore\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 \Google\ApiCore\ApiException if the remote call fails * @experimental */ public function cancelOperation($name, $optionalArgs = []) { $request = new CancelOperationRequest(); $request->setName($name); $defaultCallSettings = $this->defaultCallSettings['cancelOperation']; if (isset($optionalArgs['retrySettings']) && is_array($optionalArgs['retrySettings'])) { $optionalArgs['retrySettings'] = $defaultCallSettings->getRetrySettings()->with( $optionalArgs['retrySettings'] ); } $mergedSettings = $defaultCallSettings->merge(new CallSettings($optionalArgs)); $callable = ApiCallable::createApiCall( $this->operationsStub, 'CancelOperation', $mergedSettings, $this->descriptors['cancelOperation'] ); return $callable( $request, [], ['call_credentials_callback' => $this->createCredentialsCallback()]); } /** * Deletes a long-running operation. This method indicates that the client is * no longer interested in the operation result. It does not cancel the * operation. If the server doesn't support this method, it returns * `google.rpc.Code.UNIMPLEMENTED`. * * Sample code: * ``` * try { * $options = [ * 'serviceAddress' => 'my-service-address', * 'scopes' => ['my-service-scope'], * ]; * $operationsClient = new OperationsClient($options); * $name = ''; * $operationsClient->deleteOperation($name); * } finally { * if (isset($operationsClient)) { * $operationsClient->close(); * } * } * ``` * * @param string $name The name of the operation resource to be deleted. * @param array $optionalArgs { * Optional. * * @type \Google\ApiCore\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 \Google\ApiCore\ApiException if the remote call fails * @experimental */ public function deleteOperation($name, $optionalArgs = []) { $request = new DeleteOperationRequest(); $request->setName($name); $defaultCallSettings = $this->defaultCallSettings['deleteOperation']; if (isset($optionalArgs['retrySettings']) && is_array($optionalArgs['retrySettings'])) { $optionalArgs['retrySettings'] = $defaultCallSettings->getRetrySettings()->with( $optionalArgs['retrySettings'] ); } $mergedSettings = $defaultCallSettings->merge(new CallSettings($optionalArgs)); $callable = ApiCallable::createApiCall( $this->operationsStub, 'DeleteOperation', $mergedSettings, $this->descriptors['deleteOperation'] ); return $callable( $request, [], ['call_credentials_callback' => $this->createCredentialsCallback()]); } /** * Initiates an orderly shutdown in which preexisting calls continue but new * calls are immediately cancelled. * * @experimental */ public function close() { $this->operationsStub->close(); } private function createCredentialsCallback() { return $this->grpcCredentialsHelper->createCallCredentialsCallback(); } } src/ApiCore/LongRunning/OperationsClient.php000064400000004504151742740600015121 0ustar00operationName = $operationName; $this->operationsClient = $operationsClient; if (isset($options['operationReturnType'])) { $this->operationReturnType = $options['operationReturnType']; } if (isset($options['metadataReturnType'])) { $this->metadataReturnType = $options['metadataReturnType']; } if (isset($options['lastProtoResponse'])) { $this->lastProtoResponse = $options['lastProtoResponse']; } } /** * Check whether the operation has completed. * * @return bool */ public function isDone() { return (is_null($this->lastProtoResponse) || is_null($this->lastProtoResponse->getDone())) ? false : $this->lastProtoResponse->getDone(); } /** * Check whether the operation completed successfully. If the operation is not complete, or if the operation * failed, return false. * * @return bool */ public function operationSucceeded() { return !is_null($this->getResult()); } /** * Check whether the operation failed. If the operation is not complete, or if the operation * succeeded, return false. * * @return bool */ public function operationFailed() { return !is_null($this->getError()); } /** * Get the formatted name of the operation * * @return string The formatted name of the operation */ public function getName() { return $this->operationName; } /** * Poll the server in a loop until the operation is complete. * * Return true if the operation completed, otherwise return false. If the * $options['maxPollingDuration'] setting is not set (or set <= 0.0) then * pollUntilComplete will continue polling until the operation completes, * and therefore will always return true. * * @param array $options { * Options for configuring the polling behaviour. * * @type float $pollingIntervalSeconds The polling interval to use, in seconds. * Default: 1.0 * @type float $maxPollingDurationSeconds The maximum amount of time to continue polling. * Default: 0.0 (no maximum) * } * @throws ApiException If an API call fails. * @return bool Indicates if the operation completed. */ public function pollUntilComplete($options = []) { $defaultPollSettings = [ 'pollingIntervalSeconds' => $this::DEFAULT_POLLING_INTERVAL, 'maxPollingDurationSeconds' => 0.0, ]; $pollSettings = array_merge($defaultPollSettings, $options); $pollingIntervalMicros = $pollSettings['pollingIntervalSeconds'] * 1000000; $maxPollingDuration = $pollSettings['maxPollingDurationSeconds']; $hasMaxPollingDuration = $maxPollingDuration > 0.0; $endTime = microtime(true) + $maxPollingDuration; while (!$this->isDone() && (!$hasMaxPollingDuration || microtime(true) < $endTime)) { usleep($pollingIntervalMicros); $this->reload(); } return $this->isDone(); } /** * Reload the status of the operation with a request to the service. * * @throws ApiException If the API call fails. * @throws ValidationException If called on a deleted operation. */ public function reload() { if ($this->deleted) { throw new ValidationException("Cannot call reload() on a deleted operation"); } $name = $this->getName(); $this->lastProtoResponse = $this->operationsClient->getOperation($name); } /** * Return the result of the operation. If operationSucceeded() is false, return null. * * @return mixed|null The result of the operation, or null if operationSucceeded() is false */ public function getResult() { if (!$this->isDone() || is_null($this->lastProtoResponse->getResponse())) { return null; } $anyResponse = $this->lastProtoResponse->getResponse(); if (is_null($this->operationReturnType)) { return $anyResponse; } $operationReturnType = $this->operationReturnType; $response = new $operationReturnType(); $response->mergeFromString($anyResponse->getValue()); return $response; } /** * If the operation failed, return the status. If operationFailed() is false, return null. * * @return \google\rpc\Status|null The status of the operation in case of failure, or null if * operationFailed() is false. */ public function getError() { if (!$this->isDone() || is_null($this->lastProtoResponse->getError())) { return null; } return $this->lastProtoResponse->getError(); } /** * Get an array containing the values of 'operationReturnType' and 'metadataReturnType' (which * may be null). The array can be passed as the $options argument to the constructor when * creating another OperationResponse object. * * @return array */ public function getReturnTypeOptions() { return [ 'operationReturnType' => $this->operationReturnType, 'metadataReturnType' => $this->metadataReturnType, ]; } /** * @return \google\longrunning\Operation|null The last Operation object received from the server. */ public function getLastProtoResponse() { return $this->lastProtoResponse; } /** * @return \Google\ApiCore\LongRunning\OperationsClient The OperationsClient object used to make * requests to the operations API. */ public function getOperationsClient() { return $this->operationsClient; } /** * Starts asynchronous cancellation on a long-running operation. The server * makes a best effort to cancel the operation, but success is not * guaranteed. If the server doesn't support this method, it will throw an * ApiException with code \google\rpc\Code::UNIMPLEMENTED. Clients can continue * to use reload and pollUntilComplete methods to check whether the cancellation * succeeded or whether the operation completed despite cancellation. * On successful cancellation, the operation is not deleted; instead, it becomes * an operation with a getError() value with a \google\rpc\Status code of 1, * corresponding to \google\rpc\Code::CANCELLED. * * @throws ApiException If the API call fails. */ public function cancel() { $this->operationsClient->cancelOperation($this->getName()); } /** * Delete the long-running operation. This method indicates that the client is * no longer interested in the operation result. It does not cancel the operation. * If the server doesn't support this method, it will throw an ApiException with * code google\rpc\Code::UNIMPLEMENTED. * * @throws ApiException If the API call fails. */ public function delete() { $this->operationsClient->deleteOperation($this->getName()); $this->deleted = true; } /** * Get the metadata returned with the last proto response. If a metadata type was provided, then * the return value will be of that type - otherwise, the return value will be of type Any. If * no metadata object is available, returns null. * * @return mixed The metadata returned from the server in the last response. */ public function getMetadata() { if (is_null($this->lastProtoResponse)) { return null; } $any = $this->lastProtoResponse->getMetadata(); if (is_null($this->metadataReturnType)) { return $any; } if (is_null($any) || is_null($any->getValue())) { return null; } $metadataReturnType = $this->metadataReturnType; $metadata = new $metadataReturnType(); $metadata->mergeFromString($any->getValue()); return $metadata; } } src/ApiCore/Page.php000064400000014551151742740600010256 0ustar00parameters = $params; $this->callable = $callable; $this->pageStreamingDescriptor = $pageStreamingDescriptor; $requestPageTokenGetMethod = $this->pageStreamingDescriptor->getRequestPageTokenGetMethod(); $this->pageToken = $params[0]->$requestPageTokenGetMethod(); // Make gRPC call eagerly $this->response = call_user_func_array($this->callable, $this->parameters); } /** * Returns true if there are more pages that can be retrieved from the * API. * * @return bool */ public function hasNextPage() { return strcmp($this->getNextPageToken(), Page::FINAL_PAGE_TOKEN) != 0; } /** * Returns the next page token from the response. * * @return string */ public function getNextPageToken() { $responsePageTokenGetMethod = $this->pageStreamingDescriptor->getResponsePageTokenGetMethod(); return $this->getResponseObject()->$responsePageTokenGetMethod(); } /** * Retrieves the next Page object using the next page token. * * @param int|null $pageSize * @throws ValidationException if there are no pages remaining, or if pageSize is supplied but * is not supported by the API * @return Page */ public function getNextPage($pageSize = null) { if (!$this->hasNextPage()) { throw new ValidationException( 'Could not complete getNextPage operation: ' . 'there are no more pages to retrieve.' ); } $newRequest = clone $this->getRequestObject(); $requestPageTokenSetMethod = $this->pageStreamingDescriptor->getRequestPageTokenSetMethod(); $newRequest->$requestPageTokenSetMethod($this->getNextPageToken()); if (isset($pageSize)) { if (!$this->pageStreamingDescriptor->requestHasPageSizeField()) { throw new ValidationException( 'pageSize argument was defined, but the method does not ' . 'support a page size parameter in the optional array argument' ); } $requestPageSizeSetMethod = $this->pageStreamingDescriptor->getRequestPageSizeSetMethod(); $newRequest->$requestPageSizeSetMethod($pageSize); } $nextParameters = [$newRequest, $this->parameters[1], $this->parameters[2]]; return new Page($nextParameters, $this->callable, $this->pageStreamingDescriptor); } /** * Return the number of elements in the response. * * @return int */ public function getPageElementCount() { $resourcesGetMethod = $this->pageStreamingDescriptor->getResourcesGetMethod(); return count($this->getResponseObject()->$resourcesGetMethod()); } /** * Return an iterator over the elements in the response. * * @return Generator */ public function getIterator() { $resourcesGetMethod = $this->pageStreamingDescriptor->getResourcesGetMethod(); foreach ($this->getResponseObject()->$resourcesGetMethod() as $element) { yield $element; } } /** * Return an iterator over Page objects, beginning with this object. * Additional Page objects are retrieved lazily via API calls until * all elements have been retrieved. * * @return Page[] */ public function iteratePages() { $currentPage = $this; yield $this; while ($currentPage->hasNextPage()) { $currentPage = $currentPage->getNextPage(); yield $currentPage; } } /** * Gets the request object used to generate the Page. * * @return \Google\Protobuf\Internal\Message */ public function getRequestObject() { return $this->parameters[0]; } /** * Gets the API response object. * * @return \Google\Protobuf\Internal\Message */ public function getResponseObject() { return $this->response; } } src/ApiCore/PageStreamingDescriptor.php000064400000014226151742740600014166 0ustar00descriptor = $descriptor; } /** * @param array $fields { * Required. * * @type string $requestPageTokenField the page token field in the request object. * @type string $responsePageTokenField the page token field in the response object. * @type string $resourceField the resource field in the response object. * * Optional. * @type string $requestPageSizeField the page size field in the request object. * } * @return PageStreamingDescriptor */ public static function createFromFields($fields) { $requestPageToken = $fields['requestPageTokenField']; $responsePageToken = $fields['responsePageTokenField']; $resources = $fields['resourceField']; $descriptor = [ 'requestPageTokenGetMethod' => PageStreamingDescriptor::getMethod($requestPageToken), 'requestPageTokenSetMethod' => PageStreamingDescriptor::setMethod($requestPageToken), 'responsePageTokenGetMethod' => PageStreamingDescriptor::getMethod($responsePageToken), 'resourcesGetMethod' => PageStreamingDescriptor::getMethod($resources), ]; if (isset($fields['requestPageSizeField'])) { $requestPageSize = $fields['requestPageSizeField']; $descriptor['requestPageSizeGetMethod'] = PageStreamingDescriptor::getMethod($requestPageSize); $descriptor['requestPageSizeSetMethod'] = PageStreamingDescriptor::setMethod($requestPageSize); } return new PageStreamingDescriptor($descriptor); } private static function getMethod($field) { return 'get' . ucfirst($field); } private static function setMethod($field) { return 'set' . ucfirst($field); } /** * @return string The page token get method on the request object */ public function getRequestPageTokenGetMethod() { return $this->descriptor['requestPageTokenGetMethod']; } /** * @return string The page size get method on the request object */ public function getRequestPageSizeGetMethod() { return $this->descriptor['requestPageSizeGetMethod']; } /** * @return bool True if the request object has a page size field */ public function requestHasPageSizeField() { return array_key_exists('requestPageSizeGetMethod', $this->descriptor); } /** * @return string The page token get method on the response object */ public function getResponsePageTokenGetMethod() { return $this->descriptor['responsePageTokenGetMethod']; } /** * @return string The resources get method on the response object */ public function getResourcesGetMethod() { return $this->descriptor['resourcesGetMethod']; } /** * @return string The page token set method on the request object */ public function getRequestPageTokenSetMethod() { return $this->descriptor['requestPageTokenSetMethod']; } /** * @return string The page size set method on the request object */ public function getRequestPageSizeSetMethod() { return $this->descriptor['requestPageSizeSetMethod']; } private static function validate($descriptor) { $requiredFields = [ 'requestPageTokenGetMethod', 'requestPageTokenSetMethod', 'responsePageTokenGetMethod', 'resourcesGetMethod', ]; foreach ($requiredFields as $field) { if (empty($descriptor[$field])) { throw new InvalidArgumentException( "$field is required for PageStreamingDescriptor" ); } } } } src/ApiCore/PagedListResponse.php000064400000017371151742740600013000 0ustar00parameters = $params; $this->callable = $callable; $this->pageStreamingDescriptor = $pageStreamingDescriptor; // Eagerly construct the first page $this->getPage(); } /** * Returns an iterator over the full list of elements. Elements * of the list are retrieved lazily using the underlying API. * * @return Generator */ public function iterateAllElements() { foreach ($this->iteratePages() as $page) { foreach ($page as $element) { yield $element; } } } /** * Return the current page of results. If the page has not * previously been accessed, it will be retrieved with a call to * the underlying API. * * @return Page */ public function getPage() { if (!isset($this->firstPage)) { $this->firstPage = new Page( $this->parameters, $this->callable, $this->pageStreamingDescriptor ); } return $this->firstPage; } /** * Returns an iterator over pages of results. The pages are * retrieved lazily from the underlying API. * * @return Page[] */ public function iteratePages() { return $this->getPage()->iteratePages(); } /** * Returns a collection of elements with a fixed size set by * the collectionSize parameter. The collection will only contain * fewer than collectionSize elements if there are no more * pages to be retrieved from the server. * * NOTE: it is an error to call this method if an optional parameter * to set the page size is not supported or has not been set in the * original API call. It is also an error if the collectionSize parameter * is less than the page size that has been set. * * @param $collectionSize int * @throws ValidationException if a FixedSizeCollection of the specified size cannot be constructed * @return FixedSizeCollection */ public function expandToFixedSizeCollection($collectionSize) { if (!$this->pageStreamingDescriptor->requestHasPageSizeField()) { throw new ValidationException( "FixedSizeCollection is not supported for this method, because " . "the method does not support an optional argument to set the " . "page size." ); } // The first page has been eagerly constructed, so we do not need to // update the page size parameter before calling getPage $page = $this->getPage(); $request = $page->getRequestObject(); $pageSizeGetMethod = $this->pageStreamingDescriptor->getRequestPageSizeGetMethod(); $pageSize = $request->$pageSizeGetMethod(); if (is_null($pageSize)) { throw new ValidationException( "Error while expanding Page to FixedSizeCollection: No page size " . "parameter found. The page size parameter must be set in the API " . "optional arguments array, and must be less than the collectionSize " . "parameter, in order to create a FixedSizeCollection object." ); } if ($pageSize > $collectionSize) { throw new ValidationException( "Error while expanding Page to FixedSizeCollection: collectionSize " . "parameter is less than the page size optional argument specified in " . "the API call. collectionSize: $collectionSize, page size: $pageSize" ); } return new FixedSizeCollection($this->getPage(), $collectionSize); } /** * Returns an iterator over fixed size collections of results. * The collections are retrieved lazily from the underlying API. * * Each collection will have collectionSize elements, with the * exception of the final collection which may contain fewer * elements. * * NOTE: it is an error to call this method if an optional parameter * to set the page size is not supported or has not been set in the * original API call. It is also an error if the collectionSize parameter * is less than the page size that has been set. * * @param $collectionSize int * @throws ValidationException if a FixedSizeCollection of the specified size cannot be constructed * @return Generator|FixedSizeCollection[] */ public function iterateFixedSizeCollections($collectionSize) { return $this->expandToFixedSizeCollection($collectionSize)->iterateCollections(); } } src/ApiCore/Parser.php000064400000006442151742740600010636 0ustar00parser = new BaseParser(); } /** * Returns an array of path template segments parsed from data. * * @param string $data A path template string * @throws ValidationException when $data cannot be parsed * @return array An array of Segment */ public function parse($data) { try { Segment::resetSegmentCount(); Segment::resetBindingCount(); $segments = $this->parser->parse($data); $this->segmentCount = Segment::getSegmentCount(); // Validation step: checks that there are no nested bindings. $pathWildcard = false; foreach ($segments as $segment) { if ($segment->kind == Segment::TERMINAL && $segment->literal == '**') { if ($pathWildcard) { throw new ValidationException( 'validation error: path template cannot contain '. 'more than one path wildcard' ); } $pathWildcard = true; } } return $segments; } catch (Exception $e) { throw new ValidationException('Exception in parser', 0, $e); } } /** * @return int */ public function getSegmentCount() { return $this->segmentCount; } } src/ApiCore/PathTemplate.php000064400000016035151742740600011771 0ustar00segments = $parser->parse($data); $this->segmentCount = $parser->getSegmentCount(); } /** * @return string A string representation of the path template */ public function __toString() { return self::format($this->segments); } /** * @return int The number of segments in the path template */ public function count() { return $this->segmentCount; } /** * Renders a path template using the provided bindings. * * @param array $bindings An array matching var names to binding strings. * @throws ValidationException if a key isn't provided or if a sub-template * can't be parsed. * @return string A rendered representation of this path template. */ public function render($bindings) { $out = []; $binding = false; foreach ($this->segments as $segment) { if ($segment->kind == Segment::BINDING) { if (!array_key_exists($segment->literal, $bindings)) { throw new ValidationException( sprintf( 'render error: value for key "%s" not '. 'provided', $segment->literal ) ); } $out = array_merge( $out, (new self($bindings[$segment->literal]))->segments ); $binding = true; } elseif ($segment->kind == Segment::END_BINDING) { $binding = false; } else { if ($binding) { continue; } array_push($out, $segment); } } $path = self::format($out); $this->match($path); return $path; } /** * Matches a fully qualified path template string. * * @param string $path A fully qualified path template string. * @throws ValidationException if path can't be matched to the template. * @return array Array matching var names to binding values. */ public function match($path) { $segments = $this->segments; $pathList = explode('/', $path); $currentVar = null; $bindings = []; $segmentCount = $this->segmentCount; $pathIndex = 0; foreach ($segments as $segment) { if ($pathIndex >= count($pathList)) { break; } if ($segment->kind == Segment::TERMINAL) { $pathItem = $pathList[$pathIndex]; if ($segment->literal == '*') { $bindings[$currentVar] = $pathItem; $pathIndex += 1; } elseif ($segment->literal == '**') { $length = count($pathList) - $segmentCount + 1; $segmentCount += count($pathList) - $segmentCount; $bindings[$currentVar] = implode( '/', array_slice($pathList, $pathIndex, $length) ); $pathIndex += $length; } elseif ($segment->literal != $pathItem) { throw new ValidationException( sprintf( 'mismatched literal: "%s" != "%s"', $segment->literal, $pathItem ) ); } else { $pathIndex += 1; } } elseif ($segment->kind == Segment::BINDING) { $currentVar = $segment->literal; } } if (($pathIndex != count($pathList)) || ($pathIndex != $segmentCount)) { throw new ValidationException( sprintf( 'match error: could not render a path template '. 'from %s', $path ) ); } return $bindings; } private static function format($segments) { $template = ''; $slash = true; foreach ($segments as $segment) { if ($segment->kind == Segment::TERMINAL) { if ($slash) { $template .= '/'; } $template .= $segment->literal; } $slash = true; if ($segment->kind == Segment::BINDING) { $template .= sprintf('/{%s=', $segment->literal); $slash = false; } if ($segment->kind == Segment::END_BINDING) { $template .= sprintf('%s}', $segment->literal); } } // Remove leading '/' return substr($template, 1); } } src/ApiCore/RetrySettings.php000064400000035610151742740600012227 0ustar00 100, * 'retryDelayMultiplier' => 1.3, * 'maxRetryDelayMillis' => 60000, * 'initialRpcTimeoutMillis' => 20000, * 'rpcTimeoutMultiplier' => 1.0, * 'maxRpcTimeoutMillis' => 20000, * 'totalTimeoutMillis' => 600000, * 'retryableCodes' => [ApiStatus::DEADLINE_EXCEEDED, ApiStatus::UNAVAILABLE], * ]); * ``` * * It is also possible to create a new RetrySettings object from an existing * object using the {@see Google\ApiCore\RetrySettings::with()} method. * * Example modifying an existing RetrySettings object using `with()`: * ``` * $newRetrySettings = $retrySettings->with([ * 'totalTimeoutMillis' => 700000, * ]); * ``` * * Modifying the retry behavior of an RPC method * --------------------------------------------- * * RetrySettings objects can be used to control retries for many RPC methods in * [google-cloud-php](https://github.com/GoogleCloudPlatform/google-cloud-php). * The examples below make use of the * [GroupServiceClient](https://googlecloudplatform.github.io/google-cloud-php/#/docs/google-cloud/monitoring/v3/groupserviceclient) * from the [Monitoring V3 API](https://github.com/GoogleCloudPlatform/google-cloud-php/tree/master/src/Monitoring/V3), * but they can be applied to other APIs in the * [google-cloud-php](https://github.com/GoogleCloudPlatform/google-cloud-php) repository. * * It is possible to specify the retry behavior to be used by an RPC via the * `retrySettings` field in the `optionalArgs` parameter. The `retrySettings` * field can contain either a RetrySettings object, or a PHP array containing * the particular retry parameters to be updated. * * Example of disabling retries for a single call to the * [listGroups](https://googlecloudplatform.github.io/google-cloud-php/#/docs/google-cloud/monitoring/v3/groupserviceclient?method=listGroups) * method, and setting a custom timeout: * ``` * $result = $client->listGroups($name, [ * 'retrySettings' => [ * 'retriesEnabled' => false, * 'noRetriesRpcTimeoutMillis' => 5000, * ] * ]); * ``` * * Example of creating a new RetrySettings object and using it to override * the retry settings for a call to the * [listGroups](https://googlecloudplatform.github.io/google-cloud-php/#/docs/google-cloud/monitoring/v3/groupserviceclient?method=listGroups) * method: * ``` * $customRetrySettings = new RetrySettings([ * 'initialRetryDelayMillis' => 100, * 'retryDelayMultiplier' => 1.3, * 'maxRetryDelayMillis' => 60000, * 'initialRpcTimeoutMillis' => 20000, * 'rpcTimeoutMultiplier' => 1.0, * 'maxRpcTimeoutMillis' => 20000, * 'totalTimeoutMillis' => 600000, * 'retryableCodes' => [ApiStatus::DEADLINE_EXCEEDED, ApiStatus::UNAVAILABLE], * ]); * * $result = $client->listGroups($name, [ * 'retrySettings' => $customRetrySettings * ]); * ``` * * Modifying the default retry behavior for RPC methods on a Client object * ----------------------------------------------------------------------- * * It is also possible to specify the retry behavior for RPC methods when * constructing a client object using the 'retrySettingsArray'. The examples * below again make use of the * [GroupServiceClient](https://googlecloudplatform.github.io/google-cloud-php/#/docs/google-cloud/monitoring/v3/groupserviceclient) * from the [Monitoring V3 API](https://github.com/GoogleCloudPlatform/google-cloud-php/tree/master/src/Monitoring/V3), * but they can be applied to other APIs in the * [google-cloud-php](https://github.com/GoogleCloudPlatform/google-cloud-php) repository. * * The GroupServiceClient object accepts an optional `retrySettingsArray` * parameter, which can be used to specify retry behavior for RPC methods * on the client. The `retrySettingsArray` accepts a PHP array in which keys * are the names of RPC methods on the client, and values are either a * RetrySettings object or a PHP array containing the particular retry * parameters to be updated. * * Example updating the retry settings for four methods of GroupServiceClient: * ``` * use Google\Cloud\Monitoring\V3\GroupServiceClient; * * $customRetrySettings = new RetrySettings([ * 'initialRetryDelayMillis' => 100, * 'retryDelayMultiplier' => 1.3, * 'maxRetryDelayMillis' => 60000, * 'initialRpcTimeoutMillis' => 20000, * 'rpcTimeoutMultiplier' => 1.0, * 'maxRpcTimeoutMillis' => 20000, * 'totalTimeoutMillis' => 600000, * 'retryableCodes' => [ApiStatus::DEADLINE_EXCEEDED, ApiStatus::UNAVAILABLE], * ]); * * $updatedCustomRetrySettings = $customRetrySettings->with([ * 'totalTimeoutMillis' => 700000 * ]); * * $client = new GroupServiceClient([ * 'retrySettingsArray' => [ * 'listGroups' => ['retriesEnabled' => false], * 'getGroup' => [ * 'initialRpcTimeoutMillis' => 10000, * 'maxRpcTimeoutMillis' => 30000, * 'totalTimeoutMillis' => 60000, * ], * 'deleteGroup' => $customRetrySettings, * 'updateGroup' => $updatedCustomRetrySettings * ], * ]); * ``` */ class RetrySettings { use ValidationTrait; private $retriesEnabled; private $retryableCodes; private $initialRetryDelayMillis; private $retryDelayMultiplier; private $maxRetryDelayMillis; private $initialRpcTimeoutMillis; private $rpcTimeoutMultiplier; private $maxRpcTimeoutMillis; private $totalTimeoutMillis; private $noRetriesRpcTimeoutMillis; /** * Constructs an instance. * * @param array $settings { * Required. Settings for configuring the retry behavior. All parameters are required except * $retriesEnabled and $noRetriesRpcTimeoutMillis, which are optional and have defaults * determined based on the other settings provided. * * @type bool $retriesEnabled Optional. Enables retries. If not specified, the value is * determined using the $retryableCodes setting. If $retryableCodes is empty, * then $retriesEnabled is set to false; otherwise, it is set to true. * @type int $noRetriesRpcTimeoutMillis Optional. The timeout of the rpc call to be used * if $retriesEnabled is false, in milliseconds. It not specified, the value * of $initialRpcTimeoutMillis is used. * @type array $retryableCodes The Status codes that are retryable. Each status should be * either one of the string constants defined on {@see \Google\ApiCore\ApiStatus} * or an integer constant defined on {@see \Google\Rpc\Code}. * @type int $initialRetryDelayMillis The initial delay of retry in milliseconds. * @type int $retryDelayMultiplier The exponential multiplier of retry delay. * @type int $maxRetryDelayMillis The max delay of retry in milliseconds. * @type int $initialRpcTimeoutMillis The initial timeout of rpc call in milliseconds. * @type int $rpcTimeoutMultiplier The exponential multiplier of rpc timeout. * @type int $maxRpcTimeoutMillis The max timeout of rpc call in milliseconds. * @type int $totalTimeoutMillis The max accumulative timeout in total. * } */ public function __construct(array $settings) { $this->validateNotNull($settings, [ 'initialRetryDelayMillis', 'retryDelayMultiplier', 'maxRetryDelayMillis', 'initialRpcTimeoutMillis', 'rpcTimeoutMultiplier', 'maxRpcTimeoutMillis', 'totalTimeoutMillis', 'retryableCodes' ]); $this->initialRetryDelayMillis = $settings['initialRetryDelayMillis']; $this->retryDelayMultiplier = $settings['retryDelayMultiplier']; $this->maxRetryDelayMillis = $settings['maxRetryDelayMillis']; $this->initialRpcTimeoutMillis = $settings['initialRpcTimeoutMillis']; $this->rpcTimeoutMultiplier = $settings['rpcTimeoutMultiplier']; $this->maxRpcTimeoutMillis = $settings['maxRpcTimeoutMillis']; $this->totalTimeoutMillis = $settings['totalTimeoutMillis']; $this->retryableCodes = $settings['retryableCodes']; $this->retriesEnabled = array_key_exists('retriesEnabled', $settings) ? $settings['retriesEnabled'] : (count($this->retryableCodes) > 0); $this->noRetriesRpcTimeoutMillis = array_key_exists('noRetriesRpcTimeoutMillis', $settings) ? $settings['noRetriesRpcTimeoutMillis'] : $this->initialRpcTimeoutMillis; } /** * Creates a new instance of RetrySettings that updates the settings in the existing instance * with the settings specified in the $settings parameter. * * @param array $settings { * Settings for configuring the retry behavior. Supports all of the options supported by * the constructor; see {@see \Google\ApiCore\RetrySettings::__construct()}. All parameters * are optional - all unset parameters will default to the value in the existing instance. * } * @return RetrySettings */ public function with(array $settings) { $existingSettings = [ 'initialRetryDelayMillis' => $this->getInitialRetryDelayMillis(), 'retryDelayMultiplier' => $this->getRetryDelayMultiplier(), 'maxRetryDelayMillis' => $this->getMaxRetryDelayMillis(), 'initialRpcTimeoutMillis' => $this->getInitialRpcTimeoutMillis(), 'rpcTimeoutMultiplier' => $this->getRpcTimeoutMultiplier(), 'maxRpcTimeoutMillis' => $this->getMaxRpcTimeoutMillis(), 'totalTimeoutMillis' => $this->getTotalTimeoutMillis(), 'retryableCodes' => $this->getRetryableCodes(), 'retriesEnabled' => $this->retriesEnabled(), 'noRetriesRpcTimeoutMillis' => $this->getNoRetriesRpcTimeoutMillis(), ]; return new RetrySettings($settings + $existingSettings); } /** * @return bool Returns true if retries are enabled, otherwise returns false. */ public function retriesEnabled() { return $this->retriesEnabled; } /** * @return int The timeout of the rpc call to be used if $retriesEnabled is false, * in milliseconds. */ public function getNoRetriesRpcTimeoutMillis() { return $this->noRetriesRpcTimeoutMillis; } /** * @return int[] Status codes to retry */ public function getRetryableCodes() { return $this->retryableCodes; } /** * @return int The initial retry delay in milliseconds. If $this->retriesEnabled() * is false, this setting is unused. */ public function getInitialRetryDelayMillis() { return $this->initialRetryDelayMillis; } /** * @return float The retry delay multiplier. If $this->retriesEnabled() * is false, this setting is unused. */ public function getRetryDelayMultiplier() { return $this->retryDelayMultiplier; } /** * @return int The maximum retry delay in milliseconds. If $this->retriesEnabled() * is false, this setting is unused. */ public function getMaxRetryDelayMillis() { return $this->maxRetryDelayMillis; } /** * @return int The initial rpc timeout in milliseconds. If $this->retriesEnabled() * is false, this setting is unused - use noRetriesRpcTimeoutMillis to * set the timeout in that case. */ public function getInitialRpcTimeoutMillis() { return $this->initialRpcTimeoutMillis; } /** * @return float The rpc timeout multiplier. If $this->retriesEnabled() * is false, this setting is unused. */ public function getRpcTimeoutMultiplier() { return $this->rpcTimeoutMultiplier; } /** * @return int The maximum rpc timeout in milliseconds. If $this->retriesEnabled() * is false, this setting is unused - use noRetriesRpcTimeoutMillis to * set the timeout in that case. */ public function getMaxRpcTimeoutMillis() { return $this->maxRpcTimeoutMillis; } /** * @return int The total time in milliseconds to spend on the call, including all * retry attempts and delays between attempts. If $this->retriesEnabled() * is false, this setting is unused - use noRetriesRpcTimeoutMillis to * set the timeout in that case. */ public function getTotalTimeoutMillis() { return $this->totalTimeoutMillis; } } src/ApiCore/Serializer.php000064400000032227151742740600011513 0ustar00 \Google\Rpc\RetryInfo::class, 'google.rpc.debuginfo-bin' => \Google\Rpc\DebugInfo::class, 'google.rpc.quotafailure-bin' => \Google\Rpc\QuotaFailure::class, 'google.rpc.badrequest-bin' => \Google\Rpc\BadRequest::class, 'google.rpc.requestinfo-bin' => \Google\Rpc\RequestInfo::class, 'google.rpc.resourceinfo-bin' => \Google\Rpc\ResourceInfo::class, 'google.rpc.help-bin' => \Google\Rpc\Help::class, 'google.rpc.localizedmessage-bin' => \Google\Rpc\LocalizedMessage::class, ]; private $fieldTransformers; private $messageTypeTransformers; private $descriptorMaps = []; /** * Serializer constructor. * * @param array $fieldTransformers An array mapping field names to transformation functions * @param array $messageTypeTransformers An array mapping message names to transformation functions */ public function __construct($fieldTransformers = [], $messageTypeTransformers = []) { $this->fieldTransformers = $fieldTransformers; $this->messageTypeTransformers = $messageTypeTransformers; } /** * Encode protobuf message as a PHP array * * @param mixed $message * @return array */ public function encodeMessage($message) { // Get message descriptor $pool = DescriptorPool::getGeneratedPool(); $messageType = $pool->getDescriptorByClassName(get_class($message)); return $this->encodeMessageImpl($message, $messageType); } /** * Decode PHP array into the specified protobuf message * * @param mixed $message * @param array $data * @return mixed */ public function decodeMessage($message, $data) { // Get message descriptor $pool = DescriptorPool::getGeneratedPool(); $messageType = $pool->getDescriptorByClassName(get_class($message)); return $this->decodeMessageImpl($message, $messageType, $data); } /** * @param \Google\Protobuf\Internal\Message $message * @return string Json representation of $message */ public static function serializeToJson($message) { return json_encode(self::serializeToPhpArray($message), JSON_PRETTY_PRINT); } /** * @param \Google\Protobuf\Internal\Message $message * @return array PHP array representation of $message */ public static function serializeToPhpArray($message) { return self::getPhpArraySerializer()->encodeMessage($message); } /** * Decode metadata received from gRPC status object * * @param array $metadata * @return array */ public static function decodeMetadata($metadata) { if (is_null($metadata) || count($metadata) == 0) { return []; } $result = []; foreach ($metadata as $key => $values) { foreach ($values as $value) { $decodedValue = [ '@type' => $key, ]; if (self::hasBinaryHeaderSuffix($key)) { if (isset(self::$metadataKnownTypes[$key])) { $class = self::$metadataKnownTypes[$key]; $message = new $class(); $message->mergeFromString($value); $decodedValue += self::serializeToPhpArray($message); } else { // The metadata contains an unexpected binary type $decodedValue += [ 'data' => '', ]; } } else { $decodedValue += [ 'data' => $value, ]; } $result[] = $decodedValue; } } return $result; } private function encodeElement(FieldDescriptor $field, $data) { switch ($field->getType()) { case GPBType::MESSAGE: if (is_array($data)) { $result = $data; } else { $result = $this->encodeMessageImpl($data, $field->getMessageType()); } $messageType = $field->getMessageType()->getFullName(); if (isset($this->messageTypeTransformers[$messageType])) { $result = $this->messageTypeTransformers[$messageType]($result); } break; default: $result = $data; break; } if (isset($this->fieldTransformers[$field->getName()])) { $result = $this->fieldTransformers[$field->getName()]($result); } return $result; } private function getDescriptorMaps(Descriptor $descriptor) { if (!isset($this->descriptorMaps[$descriptor->getFullName()])) { $fieldsByName = []; $fieldCount = $descriptor->getFieldCount(); for ($i = 0; $i < $fieldCount; $i++) { $field = $descriptor->getField($i); $fieldsByName[$field->getName()] = $field; } $fieldToOneof = []; $oneofCount = $descriptor->getOneofDeclCount(); for ($i = 0; $i < $oneofCount; $i++) { $oneof = $descriptor->getOneofDecl($i); $oneofFieldCount = $oneof->getFieldCount(); for ($j = 0; $j < $oneofFieldCount; $j++) { $field = $oneof->getField($j); $fieldToOneof[$field->getName()] = $oneof->getName(); } } $this->descriptorMaps[$descriptor->getFullName()] = [$fieldsByName, $fieldToOneof]; } return $this->descriptorMaps[$descriptor->getFullName()]; } private function encodeMessageImpl($message, Descriptor $messageType) { $data = []; $fieldCount = $messageType->getFieldCount(); for ($i = 0; $i < $fieldCount; $i++) { $field = $messageType->getField($i); $key = $field->getName(); $getter = $this->getGetter($key); $v = $message->$getter(); if (is_null($v)) { continue; } // Check and skip unset fields inside oneofs list($_, $fieldsToOneof) = $this->getDescriptorMaps($messageType); if (isset($fieldsToOneof[$key])) { $oneofName = $fieldsToOneof[$key]; $oneofGetter = $this->getGetter($oneofName); if ($message->$oneofGetter() !== $key) { continue; } } if ($field->isMap()) { list($mapFieldsByName, $_) = $this->getDescriptorMaps($field->getMessageType()); $keyField = $mapFieldsByName[self::MAP_KEY_FIELD_NAME]; $valueField = $mapFieldsByName[self::MAP_VALUE_FIELD_NAME]; $arr = []; foreach ($v as $k => $vv) { $arr[$this->encodeElement($keyField, $k)] = $this->encodeElement($valueField, $vv); } $v = $arr; } elseif ($field->getLabel() === GPBLabel::REPEATED) { $arr = []; foreach ($v as $k => $vv) { $arr[$k] = $this->encodeElement($field, $vv); } $v = $arr; } else { $v = $this->encodeElement($field, $v); } $key = self::toCamelCase($key); $data[$key] = $v; } return $data; } private function decodeElement(FieldDescriptor $field, $data) { switch ($field->getType()) { case GPBType::MESSAGE: if ($data instanceof \Google\Protobuf\Internal\Message) { return $data; } $messageType = $field->getMessageType(); $klass = $messageType->getClass(); $msg = new $klass(); return $this->decodeMessageImpl($msg, $messageType, $data); default: return $data; } } private function decodeMessageImpl($message, Descriptor $messageType, $data) { list($fieldsByName, $_) = $this->getDescriptorMaps($messageType); foreach ($data as $key => $v) { // Get the field by tag number or name $fieldName = self::toSnakeCase($key); /** @var $field FieldDescriptor */ $field = $fieldsByName[$fieldName]; // Unknown field found if (!$field) { throw new RuntimeException("cannot handle unknown field: $fieldName"); } if ($field->isMap()) { list($mapFieldsByName, $_) = $this->getDescriptorMaps($field->getMessageType()); $keyField = $mapFieldsByName[self::MAP_KEY_FIELD_NAME]; $valueField = $mapFieldsByName[self::MAP_VALUE_FIELD_NAME]; $klass = $valueField->getType() === GPBType::MESSAGE ? $valueField->getMessageType()->getClass() : null; $arr = []; foreach ($v as $k => $vv) { $arr[$this->decodeElement($keyField, $k)] = $this->decodeElement($valueField, $vv); } $value = $arr; } elseif ($field->getLabel() === GPBLabel::REPEATED) { $arr = []; foreach ($v as $k => $vv) { $arr[$k] = $this->decodeElement($field, $vv); } $value = $arr; } else { $value = $this->decodeElement($field, $v); } $setter = $this->getSetter($field->getName()); $message->$setter($value); // We must unset $value here, otherwise the protobuf c extension will mix up the references // and setting one value will change all others unset($value); } return $message; } /** * @param string $name * @return string Getter function */ public static function getGetter($name) { return 'get' . ucfirst(self::toCamelCase($name)); } /** * @param string $name * @return string Setter function */ public static function getSetter($name) { return 'set' . ucfirst(self::toCamelCase($name)); } /** * Convert string from camelCase to snake_case * * @param string $key * @return string */ public static function toSnakeCase($key) { return strtolower(preg_replace(['/([a-z\d])([A-Z])/', '/([^_])([A-Z][a-z])/'], '$1_$2', $key)); } /** * Convert string from snake_case to camelCase * * @param string $key * @return string */ public static function toCamelCase($key) { return lcfirst(str_replace(' ', '', ucwords(str_replace('_', ' ', $key)))); } private static function hasBinaryHeaderSuffix($key) { return substr_compare($key, "-bin", strlen($key) - 4) === 0; } private static function getPhpArraySerializer() { if (is_null(self::$phpArraySerializer)) { self::$phpArraySerializer = new Serializer(); } return self::$phpArraySerializer; } } src/ApiCore/ServerStream.php000064400000007361151742740600012025 0ustar00call = $serverStreamingCall; if (array_key_exists('resourcesGetMethod', $grpcStreamingDescriptor)) { $this->resourcesGetMethod = $grpcStreamingDescriptor['resourcesGetMethod']; } } /** * @param callable $callable * @param mixed[] $grpcStreamingDescriptor * @return callable ApiCall */ public static function createApiCall($callable, $grpcStreamingDescriptor) { return function () use ($callable, $grpcStreamingDescriptor) { $response = call_user_func_array($callable, func_get_args()); return new ServerStream($response, $grpcStreamingDescriptor); }; } /** * A generator which yields results from the server until the streaming call * completes. Throws an ApiException if the streaming call failed. * * @throws ApiException * @return \Generator|mixed */ public function readAll() { $resourcesGetMethod = $this->resourcesGetMethod; if (!is_null($resourcesGetMethod)) { foreach ($this->call->responses() as $response) { foreach ($response->$resourcesGetMethod() as $resource) { yield $resource; } } } else { foreach ($this->call->responses() as $response) { yield $response; } } $status = $this->call->getStatus(); if (!($status->code == Grpc\STATUS_OK)) { throw ApiException::createFromStdClass($status); } } /** * Return the underlying gRPC call object * * @return \Grpc\ServerStreamingCall|mixed */ public function getServerStreamingCall() { return $this->call; } } src/ApiCore/Testing/GeneratedTest.php000064400000006261151742740600013554 0ustar00assertEquals($expected, $actual); } $this->assertSame(count($expected), count($actual)); for ($i = 0; $i < count($expected); $i++) { $expectedElement = $expected[$i]; $actualElement = $actual[$i]; $this->assertProtobufEquals($expectedElement, $actualElement); } } else { $this->assertEquals($expected, $actual); if ($expected instanceof Message) { $pool = DescriptorPool::getGeneratedPool(); $descriptor = $pool->getDescriptorByClassName(get_class($expected)); $fieldCount = $descriptor->getFieldCount(); for ($i = 0; $i < $fieldCount; $i++) { $field = $descriptor->getField($i); $getter = Serializer::getGetter($field->getName()); $expectedFieldValue = $expected->$getter(); $actualFieldValue = $actual->$getter(); $this->assertProtobufEquals($expectedFieldValue, $actualFieldValue); } } } } } src/ApiCore/Testing/MockBidiStreamingCall.php000064400000012055151742740600015143 0ustar00responses = $responses; $this->deserialize = $deserialize; if (is_null($status)) { $status = new MockStatus(Code::OK); } $this->status = $status; } public function read() { if (count($this->responses) > 0) { $resp = array_shift($this->responses); if (is_null($resp)) { // Null was added to the responses list to simulate a failed stream // To ensure that getStatus can now be called, we clear the remaining // responses and set writesDone to true $this->responses = []; $this->writesDone(); return null; } $obj = $this->deserializeMessage($resp, $this->deserialize); return $obj; } elseif ($this->writesDone) { return null; } else { throw new ApiException("No more responses to read, but closeWrite() not called - " . "this would be blocking", Grpc\STATUS_INTERNAL); } } public function getStatus() { if (count($this->responses) > 0) { throw new ApiException( "Calls to getStatus() will block if all responses are not read", Grpc\STATUS_INTERNAL ); } if (!$this->writesDone) { throw new ApiException( "Calls to getStatus() will block if closeWrite() not called", Grpc\STATUS_INTERNAL ); } return $this->status; } /** * Save the request object, to be retrieved via getReceivedCalls() * @param \Google\Protobuf\Internal\Message|mixed $request The request object * @throws ApiException */ public function write($request) { if ($this->writesDone) { throw new ApiException("Cannot call write() after writesDone()", Grpc\STATUS_INTERNAL); } if (is_a($request, '\Google\Protobuf\Internal\Message')) { $newRequest = new $request(); $newRequest->mergeFromString($request->serializeToString()); $request = $newRequest; } $this->receivedWrites[] = $request; } /** * Set writesDone to true */ public function writesDone() { $this->writesDone = true; } /** * Return a list of calls made to write(), and clear $receivedFuncCalls. * * @return mixed[] An array of received requests */ public function popReceivedCalls() { $receivedFuncCallsTemp = $this->receivedWrites; $this->receivedWrites = []; return $receivedFuncCallsTemp; } } src/ApiCore/Testing/MockClientStreamingCall.php000064400000007762151742740600015523 0ustar00mockUnaryCall = new MockUnaryCall($response, $deserialize, $status); } /** * Immediately return the preset response object and status. * @return array The response object and status. */ public function wait() { $this->waitCalled = true; return $this->mockUnaryCall->wait(); } /** * Save the request object, to be retrieved via getReceivedCalls() * @param \Google\Protobuf\Internal\Message|mixed $request The request object * @throws ApiException */ public function write($request) { if ($this->waitCalled) { throw new ApiException("Cannot call write() after wait()", Grpc\STATUS_INTERNAL); } if (is_a($request, '\Google\Protobuf\Internal\Message')) { $newRequest = new $request(); $newRequest->mergeFromString($request->serializeToString()); $request = $newRequest; } $this->receivedWrites[] = $request; } /** * Return a list of calls made to write(), and clear $receivedFuncCalls. * * @return mixed[] An array of received requests */ public function popReceivedCalls() { $receivedFuncCallsTemp = $this->receivedWrites; $this->receivedWrites = []; return $receivedFuncCallsTemp; } } src/ApiCore/Testing/MockServerStreamingCall.php000064400000006130151742740600015537 0ustar00responses = $responses; $this->deserialize = $deserialize; if (is_null($status)) { $status = new MockStatus(Code::OK); } $this->status = $status; } public function responses() { while (count($this->responses) > 0) { $resp = array_shift($this->responses); $obj = $this->deserializeMessage($resp, $this->deserialize); yield $obj; } } public function getStatus() { if (count($this->responses) > 0) { throw new ApiException( "Calls to getStatus() will block if all responses are not read", Grpc\STATUS_INTERNAL ); } return $this->status; } } src/ApiCore/Testing/MockStatus.php000064400000003603151742740600013110 0ustar00code = $code; $this->details = $details; $this->metadata = $metadata; } } src/ApiCore/Testing/MockStubTrait.php000064400000022676151742740600013561 0ustar00mergeFromString($argument->serializeToString()); $argument = $newArgument; } $this->receivedFuncCalls[] = new ReceivedRequest($method, $argument, $deserialize, $metadata, $options); if (count($this->responses) < 1) { throw new UnderflowException("ran out of responses"); } list($response, $status) = array_shift($this->responses); $call = new MockUnaryCall($response, $deserialize, $status); $this->callObjects[] = $call; return $call; } /** * Overrides the _clientStreamRequest method in \Grpc\BaseStub * (https://github.com/grpc/grpc/blob/master/src/php/lib/Grpc/BaseStub.php) * Returns a MockClientStreamingCall object that will return the first item from $responses * * @param string $method The name of the method to call * @param callable $deserialize A function that deserializes the responses * @param array $metadata A metadata map to send to the server * (optional) * @param array $options An array of options (optional) * * @return MockClientStreamingCall The active call object */ public function _clientStreamRequest( $method, $deserialize, array $metadata = [], array $options = [] ) { $this->receivedFuncCalls[] = new ReceivedRequest($method, null, $deserialize, $metadata, $options); if (count($this->responses) < 1) { throw new UnderflowException("ran out of responses"); } list($response, $status) = array_shift($this->responses); $call = new MockClientStreamingCall($response, $deserialize, $status); $this->callObjects[] = $call; return $call; } /** * Overrides the _serverStreamRequest method in \Grpc\BaseStub * (https://github.com/grpc/grpc/blob/master/src/php/lib/Grpc/BaseStub.php) * Returns a MockServerStreamingCall object that will stream items from $responses, and return * a final status of $serverStreamingStatus. * * @param string $method The name of the method to call * @param \Google\Protobuf\Internal\Message $argument The argument to the method * @param callable $deserialize A function that deserializes the responses * @param array $metadata A metadata map to send to the server * (optional) * @param array $options An array of options (optional) * * @return MockServerStreamingCall The active call object */ public function _serverStreamRequest( $method, $argument, $deserialize, array $metadata = [], array $options = [] ) { if (is_a($argument, '\Google\Protobuf\Internal\Message')) { $newArgument = new $argument(); $newArgument->mergeFromString($argument->serializeToString()); $argument = $newArgument; } $this->receivedFuncCalls[] = new ReceivedRequest($method, $argument, $deserialize, $metadata, $options); $responses = MockStubTrait::stripStatusFromResponses($this->responses); $this->responses = []; $call = new MockServerStreamingCall($responses, $deserialize, $this->serverStreamingStatus); $this->callObjects[] = $call; return $call; } /** * Overrides the _bidiRequest method in \Grpc\BaseStub * (https://github.com/grpc/grpc/blob/master/src/php/lib/Grpc/BaseStub.php) * Returns a MockBidiStreamingCall object that will stream items from $responses, and return * a final status of $serverStreamingStatus. * * @param string $method The name of the method to call * @param callable $deserialize A function that deserializes the responses * @param array $metadata A metadata map to send to the server * (optional) * @param array $options An array of options (optional) * * @return MockBidiStreamingCall The active call object */ public function _bidiRequest( $method, $deserialize, array $metadata = [], array $options = [] ) { $this->receivedFuncCalls[] = new ReceivedRequest($method, null, $deserialize, $metadata, $options); $responses = MockStubTrait::stripStatusFromResponses($this->responses); $this->responses = []; $call = new MockBidiStreamingCall($responses, $deserialize, $this->serverStreamingStatus); $this->callObjects[] = $call; return $call; } public static function stripStatusFromResponses($responses) { $strippedResponses = []; foreach ($responses as $response) { list($resp, $status) = $response; $strippedResponses[] = $resp; } return $strippedResponses; } /** * Add a response object, and an optional status, to the list of responses to be returned via * _simpleRequest. * @param \Google\Protobuf\Internal\Message $response * @param Status $status */ public function addResponse($response, $status = null) { if (is_a($response, '\Google\Protobuf\Internal\Message')) { $response = $response->serializeToString(); } $this->responses[] = [$response, $status]; } /** * Set the status object to be used when creating streaming calls. * * @param Status $status */ public function setStreamingStatus($status) { $this->serverStreamingStatus = $status; } /** * Return a list of calls made to _simpleRequest, and clear $receivedFuncCalls. * * @return ReceivedRequest[] An array of received requests */ public function popReceivedCalls() { $receivedFuncCallsTemp = $this->receivedFuncCalls; $this->receivedFuncCalls = []; return $receivedFuncCallsTemp; } /** * @return int The number of calls received. */ public function getReceivedCallCount() { return count($this->receivedFuncCalls); } /** * @return mixed[] The call objects created by calls to the stub */ public function popCallObjects() { $callObjectsTemp = $this->callObjects; $this->callObjects = []; return $callObjectsTemp; } /** * @return bool True if $receivedFuncCalls and $response are empty. */ public function isExhausted() { return count($this->receivedFuncCalls) === 0 && count($this->responses) === 0; } } src/ApiCore/Testing/MockUnaryCall.php000064400000005736151742740600013530 0ustar00response = $response; $this->deserialize = $deserialize; if (is_null($status)) { $status = new MockStatus(Code::OK); } $this->status = $status; } /** * Immediately return the preset response object and status. * @return array The response object and status. */ public function wait() { $obj = $this->deserializeMessage($this->response, $this->deserialize); return [$obj, $this->status]; } } src/ApiCore/Testing/ReceivedRequest.php000064400000005033151742740600014111 0ustar00actualCall = [ 'funcCall' => $funcCall, 'request' => $requestObject, 'deserialize' => $deserialize, 'metadata' => $metadata, 'options' => $options, ]; } public function getArray() { return $this->actualCall; } public function getFuncCall() { return $this->actualCall['funcCall']; } public function getRequestObject() { return $this->actualCall['request']; } public function getMetadata() { return $this->actualCall['metadata']; } public function getOptions() { return $this->actualCall['options']; } } src/ApiCore/Testing/SerializationTrait.php000064400000004456151742740600014643 0ustar00$deserializeFunc($message); } else { $obj->mergeFromString($message); } return $obj; } // Protobuf-PHP implementation return call_user_func($deserialize, $message); } } src/ApiCore/ValidationException.php000064400000003323151742740600013346 0ustar00validateImpl($arr, $requiredKeys, true); } /** * @param array $arr Associative array * @param array $requiredKeys List of keys to check for in $arr * @return array Returns $arr for fluent use */ public function validateNotNull($arr, $requiredKeys) { return $this->validateImpl($arr, $requiredKeys, false); } private function validateImpl($arr, $requiredKeys, $allowNull) { foreach ($requiredKeys as $requiredKey) { $valid = array_key_exists($requiredKey, $arr) && ($allowNull || !is_null($arr[$requiredKey])); if (!$valid) { throw new ValidationException("Missing required argument $requiredKey"); } } return $arr; } } src/Cloud/Audit/AuditLog.php000064400000034202151742740600011677 0ustar00google.cloud.audit.AuditLog */ class AuditLog extends \Google\Protobuf\Internal\Message { /** * The name of the API service performing the operation. For example, * `"datastore.googleapis.com"`. * * Generated from protobuf field string service_name = 7; */ private $service_name = ''; /** * The name of the service method or operation. * For API calls, this should be the name of the API method. * For example, * "google.datastore.v1.Datastore.RunQuery" * "google.logging.v1.LoggingService.DeleteLog" * * Generated from protobuf field string method_name = 8; */ private $method_name = ''; /** * The resource or collection that is the target of the operation. * The name is a scheme-less URI, not including the API service name. * For example: * "shelves/SHELF_ID/books" * "shelves/SHELF_ID/books/BOOK_ID" * * Generated from protobuf field string resource_name = 11; */ private $resource_name = ''; /** * The number of items returned from a List or Query API method, * if applicable. * * Generated from protobuf field int64 num_response_items = 12; */ private $num_response_items = 0; /** * The status of the overall operation. * * Generated from protobuf field .google.rpc.Status status = 2; */ private $status = null; /** * Authentication information. * * Generated from protobuf field .google.cloud.audit.AuthenticationInfo authentication_info = 3; */ private $authentication_info = null; /** * Authorization information. If there are multiple * resources or permissions involved, then there is * one AuthorizationInfo element for each {resource, permission} tuple. * * Generated from protobuf field repeated .google.cloud.audit.AuthorizationInfo authorization_info = 9; */ private $authorization_info; /** * Metadata about the operation. * * Generated from protobuf field .google.cloud.audit.RequestMetadata request_metadata = 4; */ private $request_metadata = null; /** * The operation request. This may not include all request parameters, * such as those that are too large, privacy-sensitive, or duplicated * elsewhere in the log record. * It should never include user-generated data, such as file contents. * When the JSON object represented here has a proto equivalent, the proto * name will be indicated in the `@type` property. * * Generated from protobuf field .google.protobuf.Struct request = 16; */ private $request = null; /** * The operation response. This may not include all response elements, * such as those that are too large, privacy-sensitive, or duplicated * elsewhere in the log record. * It should never include user-generated data, such as file contents. * When the JSON object represented here has a proto equivalent, the proto * name will be indicated in the `@type` property. * * Generated from protobuf field .google.protobuf.Struct response = 17; */ private $response = null; /** * Other service-specific data about the request, response, and other * activities. * * Generated from protobuf field .google.protobuf.Any service_data = 15; */ private $service_data = null; public function __construct() { \GPBMetadata\Google\Cloud\Audit\AuditLog::initOnce(); parent::__construct(); } /** * The name of the API service performing the operation. For example, * `"datastore.googleapis.com"`. * * Generated from protobuf field string service_name = 7; * @return string */ public function getServiceName() { return $this->service_name; } /** * The name of the API service performing the operation. For example, * `"datastore.googleapis.com"`. * * Generated from protobuf field string service_name = 7; * @param string $var * @return $this */ public function setServiceName($var) { GPBUtil::checkString($var, True); $this->service_name = $var; return $this; } /** * The name of the service method or operation. * For API calls, this should be the name of the API method. * For example, * "google.datastore.v1.Datastore.RunQuery" * "google.logging.v1.LoggingService.DeleteLog" * * Generated from protobuf field string method_name = 8; * @return string */ public function getMethodName() { return $this->method_name; } /** * The name of the service method or operation. * For API calls, this should be the name of the API method. * For example, * "google.datastore.v1.Datastore.RunQuery" * "google.logging.v1.LoggingService.DeleteLog" * * Generated from protobuf field string method_name = 8; * @param string $var * @return $this */ public function setMethodName($var) { GPBUtil::checkString($var, True); $this->method_name = $var; return $this; } /** * The resource or collection that is the target of the operation. * The name is a scheme-less URI, not including the API service name. * For example: * "shelves/SHELF_ID/books" * "shelves/SHELF_ID/books/BOOK_ID" * * Generated from protobuf field string resource_name = 11; * @return string */ public function getResourceName() { return $this->resource_name; } /** * The resource or collection that is the target of the operation. * The name is a scheme-less URI, not including the API service name. * For example: * "shelves/SHELF_ID/books" * "shelves/SHELF_ID/books/BOOK_ID" * * Generated from protobuf field string resource_name = 11; * @param string $var * @return $this */ public function setResourceName($var) { GPBUtil::checkString($var, True); $this->resource_name = $var; return $this; } /** * The number of items returned from a List or Query API method, * if applicable. * * Generated from protobuf field int64 num_response_items = 12; * @return int|string */ public function getNumResponseItems() { return $this->num_response_items; } /** * The number of items returned from a List or Query API method, * if applicable. * * Generated from protobuf field int64 num_response_items = 12; * @param int|string $var * @return $this */ public function setNumResponseItems($var) { GPBUtil::checkInt64($var); $this->num_response_items = $var; return $this; } /** * The status of the overall operation. * * Generated from protobuf field .google.rpc.Status status = 2; * @return \Google\Rpc\Status */ public function getStatus() { return $this->status; } /** * The status of the overall operation. * * Generated from protobuf field .google.rpc.Status status = 2; * @param \Google\Rpc\Status $var * @return $this */ public function setStatus($var) { GPBUtil::checkMessage($var, \Google\Rpc\Status::class); $this->status = $var; return $this; } /** * Authentication information. * * Generated from protobuf field .google.cloud.audit.AuthenticationInfo authentication_info = 3; * @return \Google\Cloud\Audit\AuthenticationInfo */ public function getAuthenticationInfo() { return $this->authentication_info; } /** * Authentication information. * * Generated from protobuf field .google.cloud.audit.AuthenticationInfo authentication_info = 3; * @param \Google\Cloud\Audit\AuthenticationInfo $var * @return $this */ public function setAuthenticationInfo($var) { GPBUtil::checkMessage($var, \Google\Cloud\Audit\AuthenticationInfo::class); $this->authentication_info = $var; return $this; } /** * Authorization information. If there are multiple * resources or permissions involved, then there is * one AuthorizationInfo element for each {resource, permission} tuple. * * Generated from protobuf field repeated .google.cloud.audit.AuthorizationInfo authorization_info = 9; * @return \Google\Protobuf\Internal\RepeatedField */ public function getAuthorizationInfo() { return $this->authorization_info; } /** * Authorization information. If there are multiple * resources or permissions involved, then there is * one AuthorizationInfo element for each {resource, permission} tuple. * * Generated from protobuf field repeated .google.cloud.audit.AuthorizationInfo authorization_info = 9; * @param \Google\Cloud\Audit\AuthorizationInfo[]|\Google\Protobuf\Internal\RepeatedField $var * @return $this */ public function setAuthorizationInfo($var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Audit\AuthorizationInfo::class); $this->authorization_info = $arr; return $this; } /** * Metadata about the operation. * * Generated from protobuf field .google.cloud.audit.RequestMetadata request_metadata = 4; * @return \Google\Cloud\Audit\RequestMetadata */ public function getRequestMetadata() { return $this->request_metadata; } /** * Metadata about the operation. * * Generated from protobuf field .google.cloud.audit.RequestMetadata request_metadata = 4; * @param \Google\Cloud\Audit\RequestMetadata $var * @return $this */ public function setRequestMetadata($var) { GPBUtil::checkMessage($var, \Google\Cloud\Audit\RequestMetadata::class); $this->request_metadata = $var; return $this; } /** * The operation request. This may not include all request parameters, * such as those that are too large, privacy-sensitive, or duplicated * elsewhere in the log record. * It should never include user-generated data, such as file contents. * When the JSON object represented here has a proto equivalent, the proto * name will be indicated in the `@type` property. * * Generated from protobuf field .google.protobuf.Struct request = 16; * @return \Google\Protobuf\Struct */ public function getRequest() { return $this->request; } /** * The operation request. This may not include all request parameters, * such as those that are too large, privacy-sensitive, or duplicated * elsewhere in the log record. * It should never include user-generated data, such as file contents. * When the JSON object represented here has a proto equivalent, the proto * name will be indicated in the `@type` property. * * Generated from protobuf field .google.protobuf.Struct request = 16; * @param \Google\Protobuf\Struct $var * @return $this */ public function setRequest($var) { GPBUtil::checkMessage($var, \Google\Protobuf\Struct::class); $this->request = $var; return $this; } /** * The operation response. This may not include all response elements, * such as those that are too large, privacy-sensitive, or duplicated * elsewhere in the log record. * It should never include user-generated data, such as file contents. * When the JSON object represented here has a proto equivalent, the proto * name will be indicated in the `@type` property. * * Generated from protobuf field .google.protobuf.Struct response = 17; * @return \Google\Protobuf\Struct */ public function getResponse() { return $this->response; } /** * The operation response. This may not include all response elements, * such as those that are too large, privacy-sensitive, or duplicated * elsewhere in the log record. * It should never include user-generated data, such as file contents. * When the JSON object represented here has a proto equivalent, the proto * name will be indicated in the `@type` property. * * Generated from protobuf field .google.protobuf.Struct response = 17; * @param \Google\Protobuf\Struct $var * @return $this */ public function setResponse($var) { GPBUtil::checkMessage($var, \Google\Protobuf\Struct::class); $this->response = $var; return $this; } /** * Other service-specific data about the request, response, and other * activities. * * Generated from protobuf field .google.protobuf.Any service_data = 15; * @return \Google\Protobuf\Any */ public function getServiceData() { return $this->service_data; } /** * Other service-specific data about the request, response, and other * activities. * * Generated from protobuf field .google.protobuf.Any service_data = 15; * @param \Google\Protobuf\Any $var * @return $this */ public function setServiceData($var) { GPBUtil::checkMessage($var, \Google\Protobuf\Any::class); $this->service_data = $var; return $this; } } src/Cloud/Audit/AuthenticationInfo.php000064400000002723151742740600013765 0ustar00google.cloud.audit.AuthenticationInfo */ class AuthenticationInfo extends \Google\Protobuf\Internal\Message { /** * The email address of the authenticated user making the request. * * Generated from protobuf field string principal_email = 1; */ private $principal_email = ''; public function __construct() { \GPBMetadata\Google\Cloud\Audit\AuditLog::initOnce(); parent::__construct(); } /** * The email address of the authenticated user making the request. * * Generated from protobuf field string principal_email = 1; * @return string */ public function getPrincipalEmail() { return $this->principal_email; } /** * The email address of the authenticated user making the request. * * Generated from protobuf field string principal_email = 1; * @param string $var * @return $this */ public function setPrincipalEmail($var) { GPBUtil::checkString($var, True); $this->principal_email = $var; return $this; } } src/Cloud/Audit/AuthorizationInfo.php000064400000006241151742740600013645 0ustar00google.cloud.audit.AuthorizationInfo */ class AuthorizationInfo extends \Google\Protobuf\Internal\Message { /** * The resource being accessed, as a REST-style string. For example: * bigquery.googlapis.com/projects/PROJECTID/datasets/DATASETID * * Generated from protobuf field string resource = 1; */ private $resource = ''; /** * The required IAM permission. * * Generated from protobuf field string permission = 2; */ private $permission = ''; /** * Whether or not authorization for `resource` and `permission` * was granted. * * Generated from protobuf field bool granted = 3; */ private $granted = false; public function __construct() { \GPBMetadata\Google\Cloud\Audit\AuditLog::initOnce(); parent::__construct(); } /** * The resource being accessed, as a REST-style string. For example: * bigquery.googlapis.com/projects/PROJECTID/datasets/DATASETID * * Generated from protobuf field string resource = 1; * @return string */ public function getResource() { return $this->resource; } /** * The resource being accessed, as a REST-style string. For example: * bigquery.googlapis.com/projects/PROJECTID/datasets/DATASETID * * Generated from protobuf field string resource = 1; * @param string $var * @return $this */ public function setResource($var) { GPBUtil::checkString($var, True); $this->resource = $var; return $this; } /** * The required IAM permission. * * Generated from protobuf field string permission = 2; * @return string */ public function getPermission() { return $this->permission; } /** * The required IAM permission. * * Generated from protobuf field string permission = 2; * @param string $var * @return $this */ public function setPermission($var) { GPBUtil::checkString($var, True); $this->permission = $var; return $this; } /** * Whether or not authorization for `resource` and `permission` * was granted. * * Generated from protobuf field bool granted = 3; * @return bool */ public function getGranted() { return $this->granted; } /** * Whether or not authorization for `resource` and `permission` * was granted. * * Generated from protobuf field bool granted = 3; * @param bool $var * @return $this */ public function setGranted($var) { GPBUtil::checkBool($var); $this->granted = $var; return $this; } } src/Cloud/Audit/RequestMetadata.php000064400000007216151742740600013265 0ustar00google.cloud.audit.RequestMetadata */ class RequestMetadata extends \Google\Protobuf\Internal\Message { /** * The IP address of the caller. * * Generated from protobuf field string caller_ip = 1; */ private $caller_ip = ''; /** * The user agent of the caller. * This information is not authenticated and should be treated accordingly. * For example: * + `google-api-python-client/1.4.0`: * The request was made by the Google API client for Python. * + `Cloud SDK Command Line Tool apitools-client/1.0 gcloud/0.9.62`: * The request was made by the Google Cloud SDK CLI (gcloud). * + `AppEngine-Google; (+http://code.google.com/appengine; appid: s~my-project`: * The request was made from the `my-project` App Engine app. * * Generated from protobuf field string caller_supplied_user_agent = 2; */ private $caller_supplied_user_agent = ''; public function __construct() { \GPBMetadata\Google\Cloud\Audit\AuditLog::initOnce(); parent::__construct(); } /** * The IP address of the caller. * * Generated from protobuf field string caller_ip = 1; * @return string */ public function getCallerIp() { return $this->caller_ip; } /** * The IP address of the caller. * * Generated from protobuf field string caller_ip = 1; * @param string $var * @return $this */ public function setCallerIp($var) { GPBUtil::checkString($var, True); $this->caller_ip = $var; return $this; } /** * The user agent of the caller. * This information is not authenticated and should be treated accordingly. * For example: * + `google-api-python-client/1.4.0`: * The request was made by the Google API client for Python. * + `Cloud SDK Command Line Tool apitools-client/1.0 gcloud/0.9.62`: * The request was made by the Google Cloud SDK CLI (gcloud). * + `AppEngine-Google; (+http://code.google.com/appengine; appid: s~my-project`: * The request was made from the `my-project` App Engine app. * * Generated from protobuf field string caller_supplied_user_agent = 2; * @return string */ public function getCallerSuppliedUserAgent() { return $this->caller_supplied_user_agent; } /** * The user agent of the caller. * This information is not authenticated and should be treated accordingly. * For example: * + `google-api-python-client/1.4.0`: * The request was made by the Google API client for Python. * + `Cloud SDK Command Line Tool apitools-client/1.0 gcloud/0.9.62`: * The request was made by the Google Cloud SDK CLI (gcloud). * + `AppEngine-Google; (+http://code.google.com/appengine; appid: s~my-project`: * The request was made from the `my-project` App Engine app. * * Generated from protobuf field string caller_supplied_user_agent = 2; * @param string $var * @return $this */ public function setCallerSuppliedUserAgent($var) { GPBUtil::checkString($var, True); $this->caller_supplied_user_agent = $var; return $this; } } src/Cloud/Iam/V1/Binding.php000064400000012301151742740600011463 0ustar00google.iam.v1.Binding */ class Binding extends \Google\Protobuf\Internal\Message { /** * Role that is assigned to `members`. * For example, `roles/viewer`, `roles/editor`, or `roles/owner`. * Required * * Generated from protobuf field string role = 1; */ private $role = ''; /** * Specifies the identities requesting access for a Cloud Platform resource. * `members` can have the following values: * * `allUsers`: A special identifier that represents anyone who is * on the internet; with or without a Google account. * * `allAuthenticatedUsers`: A special identifier that represents anyone * who is authenticated with a Google account or a service account. * * `user:{emailid}`: An email address that represents a specific Google * account. For example, `alice@gmail.com` or `joe@example.com`. * * `serviceAccount:{emailid}`: An email address that represents a service * account. For example, `my-other-app@appspot.gserviceaccount.com`. * * `group:{emailid}`: An email address that represents a Google group. * For example, `admins@example.com`. * * `domain:{domain}`: A Google Apps domain name that represents all the * users of that domain. For example, `google.com` or `example.com`. * * Generated from protobuf field repeated string members = 2; */ private $members; public function __construct() { \GPBMetadata\Google\Iam\V1\Policy::initOnce(); parent::__construct(); } /** * Role that is assigned to `members`. * For example, `roles/viewer`, `roles/editor`, or `roles/owner`. * Required * * Generated from protobuf field string role = 1; * @return string */ public function getRole() { return $this->role; } /** * Role that is assigned to `members`. * For example, `roles/viewer`, `roles/editor`, or `roles/owner`. * Required * * Generated from protobuf field string role = 1; * @param string $var * @return $this */ public function setRole($var) { GPBUtil::checkString($var, True); $this->role = $var; return $this; } /** * Specifies the identities requesting access for a Cloud Platform resource. * `members` can have the following values: * * `allUsers`: A special identifier that represents anyone who is * on the internet; with or without a Google account. * * `allAuthenticatedUsers`: A special identifier that represents anyone * who is authenticated with a Google account or a service account. * * `user:{emailid}`: An email address that represents a specific Google * account. For example, `alice@gmail.com` or `joe@example.com`. * * `serviceAccount:{emailid}`: An email address that represents a service * account. For example, `my-other-app@appspot.gserviceaccount.com`. * * `group:{emailid}`: An email address that represents a Google group. * For example, `admins@example.com`. * * `domain:{domain}`: A Google Apps domain name that represents all the * users of that domain. For example, `google.com` or `example.com`. * * Generated from protobuf field repeated string members = 2; * @return \Google\Protobuf\Internal\RepeatedField */ public function getMembers() { return $this->members; } /** * Specifies the identities requesting access for a Cloud Platform resource. * `members` can have the following values: * * `allUsers`: A special identifier that represents anyone who is * on the internet; with or without a Google account. * * `allAuthenticatedUsers`: A special identifier that represents anyone * who is authenticated with a Google account or a service account. * * `user:{emailid}`: An email address that represents a specific Google * account. For example, `alice@gmail.com` or `joe@example.com`. * * `serviceAccount:{emailid}`: An email address that represents a service * account. For example, `my-other-app@appspot.gserviceaccount.com`. * * `group:{emailid}`: An email address that represents a Google group. * For example, `admins@example.com`. * * `domain:{domain}`: A Google Apps domain name that represents all the * users of that domain. For example, `google.com` or `example.com`. * * Generated from protobuf field repeated string members = 2; * @param string[]|\Google\Protobuf\Internal\RepeatedField $var * @return $this */ public function setMembers($var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); $this->members = $arr; return $this; } } src/Cloud/Iam/V1/BindingDelta.php000064400000006736151742740600012454 0ustar00google.iam.v1.BindingDelta */ class BindingDelta extends \Google\Protobuf\Internal\Message { /** * The action that was performed on a Binding. * Required * * Generated from protobuf field .google.iam.v1.BindingDelta.Action action = 1; */ private $action = 0; /** * Role that is assigned to `members`. * For example, `roles/viewer`, `roles/editor`, or `roles/owner`. * Required * * Generated from protobuf field string role = 2; */ private $role = ''; /** * A single identity requesting access for a Cloud Platform resource. * Follows the same format of Binding.members. * Required * * Generated from protobuf field string member = 3; */ private $member = ''; public function __construct() { \GPBMetadata\Google\Iam\V1\Policy::initOnce(); parent::__construct(); } /** * The action that was performed on a Binding. * Required * * Generated from protobuf field .google.iam.v1.BindingDelta.Action action = 1; * @return int */ public function getAction() { return $this->action; } /** * The action that was performed on a Binding. * Required * * Generated from protobuf field .google.iam.v1.BindingDelta.Action action = 1; * @param int $var * @return $this */ public function setAction($var) { GPBUtil::checkEnum($var, \Google\Cloud\Iam\V1\BindingDelta_Action::class); $this->action = $var; return $this; } /** * Role that is assigned to `members`. * For example, `roles/viewer`, `roles/editor`, or `roles/owner`. * Required * * Generated from protobuf field string role = 2; * @return string */ public function getRole() { return $this->role; } /** * Role that is assigned to `members`. * For example, `roles/viewer`, `roles/editor`, or `roles/owner`. * Required * * Generated from protobuf field string role = 2; * @param string $var * @return $this */ public function setRole($var) { GPBUtil::checkString($var, True); $this->role = $var; return $this; } /** * A single identity requesting access for a Cloud Platform resource. * Follows the same format of Binding.members. * Required * * Generated from protobuf field string member = 3; * @return string */ public function getMember() { return $this->member; } /** * A single identity requesting access for a Cloud Platform resource. * Follows the same format of Binding.members. * Required * * Generated from protobuf field string member = 3; * @param string $var * @return $this */ public function setMember($var) { GPBUtil::checkString($var, True); $this->member = $var; return $this; } } src/Cloud/Iam/V1/BindingDelta_Action.php000064400000001312151742740600013732 0ustar00Google\Iam\V1\BindingDelta\Action */ class BindingDelta_Action { /** * Unspecified. * * Generated from protobuf enum ACTION_UNSPECIFIED = 0; */ const ACTION_UNSPECIFIED = 0; /** * Addition of a Binding. * * Generated from protobuf enum ADD = 1; */ const ADD = 1; /** * Removal of a Binding. * * Generated from protobuf enum REMOVE = 2; */ const REMOVE = 2; } src/Cloud/Iam/V1/GetIamPolicyRequest.php000064400000003415151742740600014016 0ustar00google.iam.v1.GetIamPolicyRequest */ class GetIamPolicyRequest extends \Google\Protobuf\Internal\Message { /** * REQUIRED: The resource for which the policy is being requested. * `resource` is usually specified as a path. For example, a Project * resource is specified as `projects/{project}`. * * Generated from protobuf field string resource = 1; */ private $resource = ''; public function __construct() { \GPBMetadata\Google\Iam\V1\IamPolicy::initOnce(); parent::__construct(); } /** * REQUIRED: The resource for which the policy is being requested. * `resource` is usually specified as a path. For example, a Project * resource is specified as `projects/{project}`. * * Generated from protobuf field string resource = 1; * @return string */ public function getResource() { return $this->resource; } /** * REQUIRED: The resource for which the policy is being requested. * `resource` is usually specified as a path. For example, a Project * resource is specified as `projects/{project}`. * * Generated from protobuf field string resource = 1; * @param string $var * @return $this */ public function setResource($var) { GPBUtil::checkString($var, True); $this->resource = $var; return $this; } } src/Cloud/Iam/V1/IAMPolicyGrpcClient.php000064400000007620151742740600013662 0ustar00_simpleRequest('/google.iam.v1.IAMPolicy/SetIamPolicy', $argument, ['\Google\Cloud\Iam\V1\Policy', 'decode'], $metadata, $options); } /** * Gets the access control policy for a resource. * Returns an empty policy if the resource exists and does not have a policy * set. * @param \Google\Cloud\Iam\V1\GetIamPolicyRequest $argument input argument * @param array $metadata metadata * @param array $options call options */ public function GetIamPolicy(\Google\Cloud\Iam\V1\GetIamPolicyRequest $argument, $metadata = [], $options = []) { return $this->_simpleRequest('/google.iam.v1.IAMPolicy/GetIamPolicy', $argument, ['\Google\Cloud\Iam\V1\Policy', 'decode'], $metadata, $options); } /** * Returns permissions that a caller has on the specified resource. * If the resource does not exist, this will return an empty set of * permissions, not a NOT_FOUND error. * @param \Google\Cloud\Iam\V1\TestIamPermissionsRequest $argument input argument * @param array $metadata metadata * @param array $options call options */ public function TestIamPermissions(\Google\Cloud\Iam\V1\TestIamPermissionsRequest $argument, $metadata = [], $options = []) { return $this->_simpleRequest('/google.iam.v1.IAMPolicy/TestIamPermissions', $argument, ['\Google\Cloud\Iam\V1\TestIamPermissionsResponse', 'decode'], $metadata, $options); } } src/Cloud/Iam/V1/Policy.php000064400000014166151742740600011363 0ustar00google.iam.v1.Policy */ class Policy extends \Google\Protobuf\Internal\Message { /** * Version of the `Policy`. The default version is 0. * * Generated from protobuf field int32 version = 1; */ private $version = 0; /** * Associates a list of `members` to a `role`. * Multiple `bindings` must not be specified for the same `role`. * `bindings` with no members will result in an error. * * Generated from protobuf field repeated .google.iam.v1.Binding bindings = 4; */ private $bindings; /** * `etag` is used for optimistic concurrency control as a way to help * prevent simultaneous updates of a policy from overwriting each other. * It is strongly suggested that systems make use of the `etag` in the * read-modify-write cycle to perform policy updates in order to avoid race * conditions: An `etag` is returned in the response to `getIamPolicy`, and * systems are expected to put that etag in the request to `setIamPolicy` to * ensure that their change will be applied to the same version of the policy. * If no `etag` is provided in the call to `setIamPolicy`, then the existing * policy is overwritten blindly. * * Generated from protobuf field bytes etag = 3; */ private $etag = ''; public function __construct() { \GPBMetadata\Google\Iam\V1\Policy::initOnce(); parent::__construct(); } /** * Version of the `Policy`. The default version is 0. * * Generated from protobuf field int32 version = 1; * @return int */ public function getVersion() { return $this->version; } /** * Version of the `Policy`. The default version is 0. * * Generated from protobuf field int32 version = 1; * @param int $var * @return $this */ public function setVersion($var) { GPBUtil::checkInt32($var); $this->version = $var; return $this; } /** * Associates a list of `members` to a `role`. * Multiple `bindings` must not be specified for the same `role`. * `bindings` with no members will result in an error. * * Generated from protobuf field repeated .google.iam.v1.Binding bindings = 4; * @return \Google\Protobuf\Internal\RepeatedField */ public function getBindings() { return $this->bindings; } /** * Associates a list of `members` to a `role`. * Multiple `bindings` must not be specified for the same `role`. * `bindings` with no members will result in an error. * * Generated from protobuf field repeated .google.iam.v1.Binding bindings = 4; * @param \Google\Cloud\Iam\V1\Binding[]|\Google\Protobuf\Internal\RepeatedField $var * @return $this */ public function setBindings($var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Iam\V1\Binding::class); $this->bindings = $arr; return $this; } /** * `etag` is used for optimistic concurrency control as a way to help * prevent simultaneous updates of a policy from overwriting each other. * It is strongly suggested that systems make use of the `etag` in the * read-modify-write cycle to perform policy updates in order to avoid race * conditions: An `etag` is returned in the response to `getIamPolicy`, and * systems are expected to put that etag in the request to `setIamPolicy` to * ensure that their change will be applied to the same version of the policy. * If no `etag` is provided in the call to `setIamPolicy`, then the existing * policy is overwritten blindly. * * Generated from protobuf field bytes etag = 3; * @return string */ public function getEtag() { return $this->etag; } /** * `etag` is used for optimistic concurrency control as a way to help * prevent simultaneous updates of a policy from overwriting each other. * It is strongly suggested that systems make use of the `etag` in the * read-modify-write cycle to perform policy updates in order to avoid race * conditions: An `etag` is returned in the response to `getIamPolicy`, and * systems are expected to put that etag in the request to `setIamPolicy` to * ensure that their change will be applied to the same version of the policy. * If no `etag` is provided in the call to `setIamPolicy`, then the existing * policy is overwritten blindly. * * Generated from protobuf field bytes etag = 3; * @param string $var * @return $this */ public function setEtag($var) { GPBUtil::checkString($var, False); $this->etag = $var; return $this; } } src/Cloud/Iam/V1/PolicyDelta.php000064400000003207151742740600012327 0ustar00google.iam.v1.PolicyDelta */ class PolicyDelta extends \Google\Protobuf\Internal\Message { /** * The delta for Bindings between two policies. * * Generated from protobuf field repeated .google.iam.v1.BindingDelta binding_deltas = 1; */ private $binding_deltas; public function __construct() { \GPBMetadata\Google\Iam\V1\Policy::initOnce(); parent::__construct(); } /** * The delta for Bindings between two policies. * * Generated from protobuf field repeated .google.iam.v1.BindingDelta binding_deltas = 1; * @return \Google\Protobuf\Internal\RepeatedField */ public function getBindingDeltas() { return $this->binding_deltas; } /** * The delta for Bindings between two policies. * * Generated from protobuf field repeated .google.iam.v1.BindingDelta binding_deltas = 1; * @param \Google\Cloud\Iam\V1\BindingDelta[]|\Google\Protobuf\Internal\RepeatedField $var * @return $this */ public function setBindingDeltas($var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Iam\V1\BindingDelta::class); $this->binding_deltas = $arr; return $this; } } src/Cloud/Iam/V1/SetIamPolicyRequest.php000064400000006312151742740600014031 0ustar00google.iam.v1.SetIamPolicyRequest */ class SetIamPolicyRequest extends \Google\Protobuf\Internal\Message { /** * REQUIRED: The resource for which the policy is being specified. * `resource` is usually specified as a path. For example, a Project * resource is specified as `projects/{project}`. * * Generated from protobuf field string resource = 1; */ private $resource = ''; /** * REQUIRED: The complete policy to be applied to the `resource`. The size of * the policy is limited to a few 10s of KB. An empty policy is a * valid policy but certain Cloud Platform services (such as Projects) * might reject them. * * Generated from protobuf field .google.iam.v1.Policy policy = 2; */ private $policy = null; public function __construct() { \GPBMetadata\Google\Iam\V1\IamPolicy::initOnce(); parent::__construct(); } /** * REQUIRED: The resource for which the policy is being specified. * `resource` is usually specified as a path. For example, a Project * resource is specified as `projects/{project}`. * * Generated from protobuf field string resource = 1; * @return string */ public function getResource() { return $this->resource; } /** * REQUIRED: The resource for which the policy is being specified. * `resource` is usually specified as a path. For example, a Project * resource is specified as `projects/{project}`. * * Generated from protobuf field string resource = 1; * @param string $var * @return $this */ public function setResource($var) { GPBUtil::checkString($var, True); $this->resource = $var; return $this; } /** * REQUIRED: The complete policy to be applied to the `resource`. The size of * the policy is limited to a few 10s of KB. An empty policy is a * valid policy but certain Cloud Platform services (such as Projects) * might reject them. * * Generated from protobuf field .google.iam.v1.Policy policy = 2; * @return \Google\Cloud\Iam\V1\Policy */ public function getPolicy() { return $this->policy; } /** * REQUIRED: The complete policy to be applied to the `resource`. The size of * the policy is limited to a few 10s of KB. An empty policy is a * valid policy but certain Cloud Platform services (such as Projects) * might reject them. * * Generated from protobuf field .google.iam.v1.Policy policy = 2; * @param \Google\Cloud\Iam\V1\Policy $var * @return $this */ public function setPolicy($var) { GPBUtil::checkMessage($var, \Google\Cloud\Iam\V1\Policy::class); $this->policy = $var; return $this; } } src/Cloud/Iam/V1/TestIamPermissionsRequest.php000064400000006454151742740600015300 0ustar00google.iam.v1.TestIamPermissionsRequest */ class TestIamPermissionsRequest extends \Google\Protobuf\Internal\Message { /** * REQUIRED: The resource for which the policy detail is being requested. * `resource` is usually specified as a path. For example, a Project * resource is specified as `projects/{project}`. * * Generated from protobuf field string resource = 1; */ private $resource = ''; /** * The set of permissions to check for the `resource`. Permissions with * wildcards (such as '*' or 'storage.*') are not allowed. For more * information see * [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions). * * Generated from protobuf field repeated string permissions = 2; */ private $permissions; public function __construct() { \GPBMetadata\Google\Iam\V1\IamPolicy::initOnce(); parent::__construct(); } /** * REQUIRED: The resource for which the policy detail is being requested. * `resource` is usually specified as a path. For example, a Project * resource is specified as `projects/{project}`. * * Generated from protobuf field string resource = 1; * @return string */ public function getResource() { return $this->resource; } /** * REQUIRED: The resource for which the policy detail is being requested. * `resource` is usually specified as a path. For example, a Project * resource is specified as `projects/{project}`. * * Generated from protobuf field string resource = 1; * @param string $var * @return $this */ public function setResource($var) { GPBUtil::checkString($var, True); $this->resource = $var; return $this; } /** * The set of permissions to check for the `resource`. Permissions with * wildcards (such as '*' or 'storage.*') are not allowed. For more * information see * [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions). * * Generated from protobuf field repeated string permissions = 2; * @return \Google\Protobuf\Internal\RepeatedField */ public function getPermissions() { return $this->permissions; } /** * The set of permissions to check for the `resource`. Permissions with * wildcards (such as '*' or 'storage.*') are not allowed. For more * information see * [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions). * * Generated from protobuf field repeated string permissions = 2; * @param string[]|\Google\Protobuf\Internal\RepeatedField $var * @return $this */ public function setPermissions($var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); $this->permissions = $arr; return $this; } } src/Cloud/Iam/V1/TestIamPermissionsResponse.php000064400000003215151742740600015436 0ustar00google.iam.v1.TestIamPermissionsResponse */ class TestIamPermissionsResponse extends \Google\Protobuf\Internal\Message { /** * A subset of `TestPermissionsRequest.permissions` that the caller is * allowed. * * Generated from protobuf field repeated string permissions = 1; */ private $permissions; public function __construct() { \GPBMetadata\Google\Iam\V1\IamPolicy::initOnce(); parent::__construct(); } /** * A subset of `TestPermissionsRequest.permissions` that the caller is * allowed. * * Generated from protobuf field repeated string permissions = 1; * @return \Google\Protobuf\Internal\RepeatedField */ public function getPermissions() { return $this->permissions; } /** * A subset of `TestPermissionsRequest.permissions` that the caller is * allowed. * * Generated from protobuf field repeated string permissions = 1; * @param string[]|\Google\Protobuf\Internal\RepeatedField $var * @return $this */ public function setPermissions($var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); $this->permissions = $arr; return $this; } } src/Cloud/Logging/Type/HttpRequest.php000064400000036415151742740600013730 0ustar00google.logging.type.HttpRequest */ class HttpRequest extends \Google\Protobuf\Internal\Message { /** * The request method. Examples: `"GET"`, `"HEAD"`, `"PUT"`, `"POST"`. * * Generated from protobuf field string request_method = 1; */ private $request_method = ''; /** * The scheme (http, https), the host name, the path and the query * portion of the URL that was requested. * Example: `"http://example.com/some/info?color=red"`. * * Generated from protobuf field string request_url = 2; */ private $request_url = ''; /** * The size of the HTTP request message in bytes, including the request * headers and the request body. * * Generated from protobuf field int64 request_size = 3; */ private $request_size = 0; /** * The response code indicating the status of response. * Examples: 200, 404. * * Generated from protobuf field int32 status = 4; */ private $status = 0; /** * The size of the HTTP response message sent back to the client, in bytes, * including the response headers and the response body. * * Generated from protobuf field int64 response_size = 5; */ private $response_size = 0; /** * The user agent sent by the client. Example: * `"Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; Q312461; .NET CLR 1.0.3705)"`. * * Generated from protobuf field string user_agent = 6; */ private $user_agent = ''; /** * The IP address (IPv4 or IPv6) of the client that issued the HTTP * request. Examples: `"192.168.1.1"`, `"FE80::0202:B3FF:FE1E:8329"`. * * Generated from protobuf field string remote_ip = 7; */ private $remote_ip = ''; /** * The IP address (IPv4 or IPv6) of the origin server that the request was * sent to. * * Generated from protobuf field string server_ip = 13; */ private $server_ip = ''; /** * The referer URL of the request, as defined in * [HTTP/1.1 Header Field Definitions](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html). * * Generated from protobuf field string referer = 8; */ private $referer = ''; /** * The request processing latency on the server, from the time the request was * received until the response was sent. * * Generated from protobuf field .google.protobuf.Duration latency = 14; */ private $latency = null; /** * Whether or not a cache lookup was attempted. * * Generated from protobuf field bool cache_lookup = 11; */ private $cache_lookup = false; /** * Whether or not an entity was served from cache * (with or without validation). * * Generated from protobuf field bool cache_hit = 9; */ private $cache_hit = false; /** * Whether or not the response was validated with the origin server before * being served from cache. This field is only meaningful if `cache_hit` is * True. * * Generated from protobuf field bool cache_validated_with_origin_server = 10; */ private $cache_validated_with_origin_server = false; /** * The number of HTTP response bytes inserted into cache. Set only when a * cache fill was attempted. * * Generated from protobuf field int64 cache_fill_bytes = 12; */ private $cache_fill_bytes = 0; /** * Protocol used for the request. Examples: "HTTP/1.1", "HTTP/2", "websocket" * * Generated from protobuf field string protocol = 15; */ private $protocol = ''; public function __construct() { \GPBMetadata\Google\Logging\Type\HttpRequest::initOnce(); parent::__construct(); } /** * The request method. Examples: `"GET"`, `"HEAD"`, `"PUT"`, `"POST"`. * * Generated from protobuf field string request_method = 1; * @return string */ public function getRequestMethod() { return $this->request_method; } /** * The request method. Examples: `"GET"`, `"HEAD"`, `"PUT"`, `"POST"`. * * Generated from protobuf field string request_method = 1; * @param string $var * @return $this */ public function setRequestMethod($var) { GPBUtil::checkString($var, True); $this->request_method = $var; return $this; } /** * The scheme (http, https), the host name, the path and the query * portion of the URL that was requested. * Example: `"http://example.com/some/info?color=red"`. * * Generated from protobuf field string request_url = 2; * @return string */ public function getRequestUrl() { return $this->request_url; } /** * The scheme (http, https), the host name, the path and the query * portion of the URL that was requested. * Example: `"http://example.com/some/info?color=red"`. * * Generated from protobuf field string request_url = 2; * @param string $var * @return $this */ public function setRequestUrl($var) { GPBUtil::checkString($var, True); $this->request_url = $var; return $this; } /** * The size of the HTTP request message in bytes, including the request * headers and the request body. * * Generated from protobuf field int64 request_size = 3; * @return int|string */ public function getRequestSize() { return $this->request_size; } /** * The size of the HTTP request message in bytes, including the request * headers and the request body. * * Generated from protobuf field int64 request_size = 3; * @param int|string $var * @return $this */ public function setRequestSize($var) { GPBUtil::checkInt64($var); $this->request_size = $var; return $this; } /** * The response code indicating the status of response. * Examples: 200, 404. * * Generated from protobuf field int32 status = 4; * @return int */ public function getStatus() { return $this->status; } /** * The response code indicating the status of response. * Examples: 200, 404. * * Generated from protobuf field int32 status = 4; * @param int $var * @return $this */ public function setStatus($var) { GPBUtil::checkInt32($var); $this->status = $var; return $this; } /** * The size of the HTTP response message sent back to the client, in bytes, * including the response headers and the response body. * * Generated from protobuf field int64 response_size = 5; * @return int|string */ public function getResponseSize() { return $this->response_size; } /** * The size of the HTTP response message sent back to the client, in bytes, * including the response headers and the response body. * * Generated from protobuf field int64 response_size = 5; * @param int|string $var * @return $this */ public function setResponseSize($var) { GPBUtil::checkInt64($var); $this->response_size = $var; return $this; } /** * The user agent sent by the client. Example: * `"Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; Q312461; .NET CLR 1.0.3705)"`. * * Generated from protobuf field string user_agent = 6; * @return string */ public function getUserAgent() { return $this->user_agent; } /** * The user agent sent by the client. Example: * `"Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; Q312461; .NET CLR 1.0.3705)"`. * * Generated from protobuf field string user_agent = 6; * @param string $var * @return $this */ public function setUserAgent($var) { GPBUtil::checkString($var, True); $this->user_agent = $var; return $this; } /** * The IP address (IPv4 or IPv6) of the client that issued the HTTP * request. Examples: `"192.168.1.1"`, `"FE80::0202:B3FF:FE1E:8329"`. * * Generated from protobuf field string remote_ip = 7; * @return string */ public function getRemoteIp() { return $this->remote_ip; } /** * The IP address (IPv4 or IPv6) of the client that issued the HTTP * request. Examples: `"192.168.1.1"`, `"FE80::0202:B3FF:FE1E:8329"`. * * Generated from protobuf field string remote_ip = 7; * @param string $var * @return $this */ public function setRemoteIp($var) { GPBUtil::checkString($var, True); $this->remote_ip = $var; return $this; } /** * The IP address (IPv4 or IPv6) of the origin server that the request was * sent to. * * Generated from protobuf field string server_ip = 13; * @return string */ public function getServerIp() { return $this->server_ip; } /** * The IP address (IPv4 or IPv6) of the origin server that the request was * sent to. * * Generated from protobuf field string server_ip = 13; * @param string $var * @return $this */ public function setServerIp($var) { GPBUtil::checkString($var, True); $this->server_ip = $var; return $this; } /** * The referer URL of the request, as defined in * [HTTP/1.1 Header Field Definitions](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html). * * Generated from protobuf field string referer = 8; * @return string */ public function getReferer() { return $this->referer; } /** * The referer URL of the request, as defined in * [HTTP/1.1 Header Field Definitions](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html). * * Generated from protobuf field string referer = 8; * @param string $var * @return $this */ public function setReferer($var) { GPBUtil::checkString($var, True); $this->referer = $var; return $this; } /** * The request processing latency on the server, from the time the request was * received until the response was sent. * * Generated from protobuf field .google.protobuf.Duration latency = 14; * @return \Google\Protobuf\Duration */ public function getLatency() { return $this->latency; } /** * The request processing latency on the server, from the time the request was * received until the response was sent. * * Generated from protobuf field .google.protobuf.Duration latency = 14; * @param \Google\Protobuf\Duration $var * @return $this */ public function setLatency($var) { GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class); $this->latency = $var; return $this; } /** * Whether or not a cache lookup was attempted. * * Generated from protobuf field bool cache_lookup = 11; * @return bool */ public function getCacheLookup() { return $this->cache_lookup; } /** * Whether or not a cache lookup was attempted. * * Generated from protobuf field bool cache_lookup = 11; * @param bool $var * @return $this */ public function setCacheLookup($var) { GPBUtil::checkBool($var); $this->cache_lookup = $var; return $this; } /** * Whether or not an entity was served from cache * (with or without validation). * * Generated from protobuf field bool cache_hit = 9; * @return bool */ public function getCacheHit() { return $this->cache_hit; } /** * Whether or not an entity was served from cache * (with or without validation). * * Generated from protobuf field bool cache_hit = 9; * @param bool $var * @return $this */ public function setCacheHit($var) { GPBUtil::checkBool($var); $this->cache_hit = $var; return $this; } /** * Whether or not the response was validated with the origin server before * being served from cache. This field is only meaningful if `cache_hit` is * True. * * Generated from protobuf field bool cache_validated_with_origin_server = 10; * @return bool */ public function getCacheValidatedWithOriginServer() { return $this->cache_validated_with_origin_server; } /** * Whether or not the response was validated with the origin server before * being served from cache. This field is only meaningful if `cache_hit` is * True. * * Generated from protobuf field bool cache_validated_with_origin_server = 10; * @param bool $var * @return $this */ public function setCacheValidatedWithOriginServer($var) { GPBUtil::checkBool($var); $this->cache_validated_with_origin_server = $var; return $this; } /** * The number of HTTP response bytes inserted into cache. Set only when a * cache fill was attempted. * * Generated from protobuf field int64 cache_fill_bytes = 12; * @return int|string */ public function getCacheFillBytes() { return $this->cache_fill_bytes; } /** * The number of HTTP response bytes inserted into cache. Set only when a * cache fill was attempted. * * Generated from protobuf field int64 cache_fill_bytes = 12; * @param int|string $var * @return $this */ public function setCacheFillBytes($var) { GPBUtil::checkInt64($var); $this->cache_fill_bytes = $var; return $this; } /** * Protocol used for the request. Examples: "HTTP/1.1", "HTTP/2", "websocket" * * Generated from protobuf field string protocol = 15; * @return string */ public function getProtocol() { return $this->protocol; } /** * Protocol used for the request. Examples: "HTTP/1.1", "HTTP/2", "websocket" * * Generated from protobuf field string protocol = 15; * @param string $var * @return $this */ public function setProtocol($var) { GPBUtil::checkString($var, True); $this->protocol = $var; return $this; } } src/Cloud/Logging/Type/LogSeverity.php000064400000005026151742740600013706 0ustar00 DEBUG AND severity <= WARNING * If you are writing log entries, you should map other severity encodings to * one of these standard levels. For example, you might map all of Java's FINE, * FINER, and FINEST levels to `LogSeverity.DEBUG`. You can preserve the * original severity level in the log entry payload if you wish. * * Protobuf enum Google\Logging\Type\LogSeverity */ class LogSeverity { /** * (0) The log entry has no assigned severity level. * * Generated from protobuf enum DEFAULT = 0; */ const PBDEFAULT = 0; /** * (100) Debug or trace information. * * Generated from protobuf enum DEBUG = 100; */ const DEBUG = 100; /** * (200) Routine information, such as ongoing status or performance. * * Generated from protobuf enum INFO = 200; */ const INFO = 200; /** * (300) Normal but significant events, such as start up, shut down, or * a configuration change. * * Generated from protobuf enum NOTICE = 300; */ const NOTICE = 300; /** * (400) Warning events might cause problems. * * Generated from protobuf enum WARNING = 400; */ const WARNING = 400; /** * (500) Error events are likely to cause problems. * * Generated from protobuf enum ERROR = 500; */ const ERROR = 500; /** * (600) Critical events cause more severe problems or outages. * * Generated from protobuf enum CRITICAL = 600; */ const CRITICAL = 600; /** * (700) A person must take an action immediately. * * Generated from protobuf enum ALERT = 700; */ const ALERT = 700; /** * (800) One or more systems are unusable. * * Generated from protobuf enum EMERGENCY = 800; */ const EMERGENCY = 800; } src/Iam/V1/Logging/AuditData.php000064400000003276151742740600012304 0ustar00google.iam.v1.logging.AuditData */ class AuditData extends \Google\Protobuf\Internal\Message { /** * Policy delta between the original policy and the newly set policy. * * Generated from protobuf field .google.iam.v1.PolicyDelta policy_delta = 2; */ private $policy_delta = null; public function __construct() { \GPBMetadata\Google\Iam\V1\Logging\AuditData::initOnce(); parent::__construct(); } /** * Policy delta between the original policy and the newly set policy. * * Generated from protobuf field .google.iam.v1.PolicyDelta policy_delta = 2; * @return \Google\Cloud\Iam\V1\PolicyDelta */ public function getPolicyDelta() { return $this->policy_delta; } /** * Policy delta between the original policy and the newly set policy. * * Generated from protobuf field .google.iam.v1.PolicyDelta policy_delta = 2; * @param \Google\Cloud\Iam\V1\PolicyDelta $var * @return $this */ public function setPolicyDelta($var) { GPBUtil::checkMessage($var, \Google\Cloud\Iam\V1\PolicyDelta::class); $this->policy_delta = $var; return $this; } } src/LongRunning/CancelOperationRequest.php000064400000002633151742740600014735 0ustar00google.longrunning.CancelOperationRequest */ class CancelOperationRequest extends \Google\Protobuf\Internal\Message { /** * The name of the operation resource to be cancelled. * * Generated from protobuf field string name = 1; */ private $name = ''; public function __construct() { \GPBMetadata\Google\Longrunning\Operations::initOnce(); parent::__construct(); } /** * The name of the operation resource to be cancelled. * * Generated from protobuf field string name = 1; * @return string */ public function getName() { return $this->name; } /** * The name of the operation resource to be cancelled. * * 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; } } src/LongRunning/DeleteOperationRequest.php000064400000002625151742740600014753 0ustar00google.longrunning.DeleteOperationRequest */ class DeleteOperationRequest extends \Google\Protobuf\Internal\Message { /** * The name of the operation resource to be deleted. * * Generated from protobuf field string name = 1; */ private $name = ''; public function __construct() { \GPBMetadata\Google\Longrunning\Operations::initOnce(); parent::__construct(); } /** * The name of the operation resource to be deleted. * * Generated from protobuf field string name = 1; * @return string */ public function getName() { return $this->name; } /** * The name of the operation resource to be deleted. * * 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; } } src/LongRunning/GetOperationRequest.php000064400000002537151742740600014272 0ustar00google.longrunning.GetOperationRequest */ class GetOperationRequest extends \Google\Protobuf\Internal\Message { /** * The name of the operation resource. * * Generated from protobuf field string name = 1; */ private $name = ''; public function __construct() { \GPBMetadata\Google\Longrunning\Operations::initOnce(); parent::__construct(); } /** * The name of the operation resource. * * Generated from protobuf field string name = 1; * @return string */ public function getName() { return $this->name; } /** * The name of the operation resource. * * 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; } } src/LongRunning/ListOperationsRequest.php000064400000006670151742740600014653 0ustar00google.longrunning.ListOperationsRequest */ class ListOperationsRequest extends \Google\Protobuf\Internal\Message { /** * The name of the operation collection. * * Generated from protobuf field string name = 4; */ private $name = ''; /** * The standard list filter. * * Generated from protobuf field string filter = 1; */ private $filter = ''; /** * The standard list page size. * * Generated from protobuf field int32 page_size = 2; */ private $page_size = 0; /** * The standard list page token. * * Generated from protobuf field string page_token = 3; */ private $page_token = ''; public function __construct() { \GPBMetadata\Google\Longrunning\Operations::initOnce(); parent::__construct(); } /** * The name of the operation collection. * * Generated from protobuf field string name = 4; * @return string */ public function getName() { return $this->name; } /** * The name of the operation collection. * * Generated from protobuf field string name = 4; * @param string $var * @return $this */ public function setName($var) { GPBUtil::checkString($var, True); $this->name = $var; return $this; } /** * The standard list filter. * * Generated from protobuf field string filter = 1; * @return string */ public function getFilter() { return $this->filter; } /** * The standard list filter. * * Generated from protobuf field string filter = 1; * @param string $var * @return $this */ public function setFilter($var) { GPBUtil::checkString($var, True); $this->filter = $var; return $this; } /** * The standard list page size. * * Generated from protobuf field int32 page_size = 2; * @return int */ public function getPageSize() { return $this->page_size; } /** * The standard list page size. * * 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 standard list page token. * * Generated from protobuf field string page_token = 3; * @return string */ public function getPageToken() { return $this->page_token; } /** * The standard list page token. * * 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; } } src/LongRunning/ListOperationsResponse.php000064400000005052151742740600015012 0ustar00google.longrunning.ListOperationsResponse */ class ListOperationsResponse extends \Google\Protobuf\Internal\Message { /** * A list of operations that matches the specified filter in the request. * * Generated from protobuf field repeated .google.longrunning.Operation operations = 1; */ private $operations; /** * The standard List next-page token. * * Generated from protobuf field string next_page_token = 2; */ private $next_page_token = ''; public function __construct() { \GPBMetadata\Google\Longrunning\Operations::initOnce(); parent::__construct(); } /** * A list of operations that matches the specified filter in the request. * * Generated from protobuf field repeated .google.longrunning.Operation operations = 1; * @return \Google\Protobuf\Internal\RepeatedField */ public function getOperations() { return $this->operations; } /** * A list of operations that matches the specified filter in the request. * * Generated from protobuf field repeated .google.longrunning.Operation operations = 1; * @param \Google\LongRunning\Operation[]|\Google\Protobuf\Internal\RepeatedField $var * @return $this */ public function setOperations($var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\LongRunning\Operation::class); $this->operations = $arr; return $this; } /** * The standard List next-page token. * * Generated from protobuf field string next_page_token = 2; * @return string */ public function getNextPageToken() { return $this->next_page_token; } /** * The standard List next-page 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; } } src/LongRunning/Operation.php000064400000015745151742740600012266 0ustar00google.longrunning.Operation */ class Operation extends \Google\Protobuf\Internal\Message { /** * The server-assigned name, which is only unique within the same service that * originally returns it. If you use the default HTTP mapping, the * `name` should have the format of `operations/some/unique/name`. * * Generated from protobuf field string name = 1; */ private $name = ''; /** * Service-specific metadata associated with the operation. It typically * contains progress information and common metadata such as create time. * Some services might not provide such metadata. Any method that returns a * long-running operation should document the metadata type, if any. * * Generated from protobuf field .google.protobuf.Any metadata = 2; */ private $metadata = null; /** * If the value is `false`, it means the operation is still in progress. * If true, the operation is completed, and either `error` or `response` is * available. * * Generated from protobuf field bool done = 3; */ private $done = false; protected $result; public function __construct() { \GPBMetadata\Google\Longrunning\Operations::initOnce(); parent::__construct(); } /** * The server-assigned name, which is only unique within the same service that * originally returns it. If you use the default HTTP mapping, the * `name` should have the format of `operations/some/unique/name`. * * Generated from protobuf field string name = 1; * @return string */ public function getName() { return $this->name; } /** * The server-assigned name, which is only unique within the same service that * originally returns it. If you use the default HTTP mapping, the * `name` should have the format of `operations/some/unique/name`. * * 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; } /** * Service-specific metadata associated with the operation. It typically * contains progress information and common metadata such as create time. * Some services might not provide such metadata. Any method that returns a * long-running operation should document the metadata type, if any. * * Generated from protobuf field .google.protobuf.Any metadata = 2; * @return \Google\Protobuf\Any */ public function getMetadata() { return $this->metadata; } /** * Service-specific metadata associated with the operation. It typically * contains progress information and common metadata such as create time. * Some services might not provide such metadata. Any method that returns a * long-running operation should document the metadata type, if any. * * Generated from protobuf field .google.protobuf.Any metadata = 2; * @param \Google\Protobuf\Any $var * @return $this */ public function setMetadata($var) { GPBUtil::checkMessage($var, \Google\Protobuf\Any::class); $this->metadata = $var; return $this; } /** * If the value is `false`, it means the operation is still in progress. * If true, the operation is completed, and either `error` or `response` is * available. * * Generated from protobuf field bool done = 3; * @return bool */ public function getDone() { return $this->done; } /** * If the value is `false`, it means the operation is still in progress. * If true, the operation is completed, and either `error` or `response` is * available. * * Generated from protobuf field bool done = 3; * @param bool $var * @return $this */ public function setDone($var) { GPBUtil::checkBool($var); $this->done = $var; return $this; } /** * The error result of the operation in case of failure or cancellation. * * Generated from protobuf field .google.rpc.Status error = 4; * @return \Google\Rpc\Status */ public function getError() { return $this->readOneof(4); } /** * The error result of the operation in case of failure or cancellation. * * Generated from protobuf field .google.rpc.Status error = 4; * @param \Google\Rpc\Status $var * @return $this */ public function setError($var) { GPBUtil::checkMessage($var, \Google\Rpc\Status::class); $this->writeOneof(4, $var); return $this; } /** * The normal response of the operation in case of success. If the original * method returns no data on success, such as `Delete`, the response is * `google.protobuf.Empty`. If the original method is standard * `Get`/`Create`/`Update`, the response should be the resource. For other * methods, the response should have the type `XxxResponse`, where `Xxx` * is the original method name. For example, if the original method name * is `TakeSnapshot()`, the inferred response type is * `TakeSnapshotResponse`. * * Generated from protobuf field .google.protobuf.Any response = 5; * @return \Google\Protobuf\Any */ public function getResponse() { return $this->readOneof(5); } /** * The normal response of the operation in case of success. If the original * method returns no data on success, such as `Delete`, the response is * `google.protobuf.Empty`. If the original method is standard * `Get`/`Create`/`Update`, the response should be the resource. For other * methods, the response should have the type `XxxResponse`, where `Xxx` * is the original method name. For example, if the original method name * is `TakeSnapshot()`, the inferred response type is * `TakeSnapshotResponse`. * * Generated from protobuf field .google.protobuf.Any response = 5; * @param \Google\Protobuf\Any $var * @return $this */ public function setResponse($var) { GPBUtil::checkMessage($var, \Google\Protobuf\Any::class); $this->writeOneof(5, $var); return $this; } /** * @return string */ public function getResult() { return $this->whichOneof("result"); } } src/LongRunning/OperationsGrpcClient.php000064400000012113151742740600014406 0ustar00_simpleRequest('/google.longrunning.Operations/ListOperations', $argument, ['\Google\LongRunning\ListOperationsResponse', 'decode'], $metadata, $options); } /** * Gets the latest state of a long-running operation. Clients can use this * method to poll the operation result at intervals as recommended by the API * service. * @param \Google\LongRunning\GetOperationRequest $argument input argument * @param array $metadata metadata * @param array $options call options */ public function GetOperation(\Google\LongRunning\GetOperationRequest $argument, $metadata = [], $options = []) { return $this->_simpleRequest('/google.longrunning.Operations/GetOperation', $argument, ['\Google\LongRunning\Operation', 'decode'], $metadata, $options); } /** * Deletes a long-running operation. This method indicates that the client is * no longer interested in the operation result. It does not cancel the * operation. If the server doesn't support this method, it returns * `google.rpc.Code.UNIMPLEMENTED`. * @param \Google\LongRunning\DeleteOperationRequest $argument input argument * @param array $metadata metadata * @param array $options call options */ public function DeleteOperation(\Google\LongRunning\DeleteOperationRequest $argument, $metadata = [], $options = []) { return $this->_simpleRequest('/google.longrunning.Operations/DeleteOperation', $argument, ['\Google\Protobuf\GPBEmpty', 'decode'], $metadata, $options); } /** * Starts asynchronous cancellation on a long-running operation. The server * makes a best effort to cancel the operation, but success is not * guaranteed. If the server doesn't support this method, it returns * `google.rpc.Code.UNIMPLEMENTED`. Clients can use * [Operations.GetOperation][google.longrunning.Operations.GetOperation] or * other methods to check whether the cancellation succeeded or whether the * operation completed despite cancellation. On successful cancellation, * the operation is not deleted; instead, it becomes an operation with * an [Operation.error][google.longrunning.Operation.error] value with a [google.rpc.Status.code][google.rpc.Status.code] of 1, * corresponding to `Code.CANCELLED`. * @param \Google\LongRunning\CancelOperationRequest $argument input argument * @param array $metadata metadata * @param array $options call options */ public function CancelOperation(\Google\LongRunning\CancelOperationRequest $argument, $metadata = [], $options = []) { return $this->_simpleRequest('/google.longrunning.Operations/CancelOperation', $argument, ['\Google\Protobuf\GPBEmpty', 'decode'], $metadata, $options); } } src/Protobuf/Any.php000064400000015700151742740600010404 0ustar00, * "lastName": * } * If the embedded message type is well-known and has a custom JSON * representation, that representation will be embedded adding a field * `value` which holds the custom JSON in addition to the `@type` * field. Example (for message [google.protobuf.Duration][]): * { * "@type": "type.googleapis.com/google.protobuf.Duration", * "value": "1.212s" * } * * Protobuf type Google\Protobuf\Any */ class Any extends \Google\Protobuf\Internal\Message { /** * A URL/resource name whose content describes the type of the * serialized protocol buffer message. * For URLs which use the scheme `http`, `https`, or no scheme, the * following restrictions and interpretations apply: * * If no scheme is provided, `https` is assumed. * * The last segment of the URL's path must represent the fully * qualified name of the type (as in `path/google.protobuf.Duration`). * The name should be in a canonical form (e.g., leading "." is * not accepted). * * An HTTP GET on the URL must yield a [google.protobuf.Type][] * value in binary format, or produce an error. * * Applications are allowed to cache lookup results based on the * URL, or have them precompiled into a binary to avoid any * lookup. Therefore, binary compatibility needs to be preserved * on changes to types. (Use versioned type names to manage * breaking changes.) * Schemes other than `http`, `https` (or the empty scheme) might be * used with implementation specific semantics. * * Generated from protobuf field string type_url = 1; */ private $type_url = ''; /** * Must be a valid serialized protocol buffer of the above specified type. * * Generated from protobuf field bytes value = 2; */ private $value = ''; public function __construct() { \GPBMetadata\Google\Protobuf\Any::initOnce(); parent::__construct(); } /** * A URL/resource name whose content describes the type of the * serialized protocol buffer message. * For URLs which use the scheme `http`, `https`, or no scheme, the * following restrictions and interpretations apply: * * If no scheme is provided, `https` is assumed. * * The last segment of the URL's path must represent the fully * qualified name of the type (as in `path/google.protobuf.Duration`). * The name should be in a canonical form (e.g., leading "." is * not accepted). * * An HTTP GET on the URL must yield a [google.protobuf.Type][] * value in binary format, or produce an error. * * Applications are allowed to cache lookup results based on the * URL, or have them precompiled into a binary to avoid any * lookup. Therefore, binary compatibility needs to be preserved * on changes to types. (Use versioned type names to manage * breaking changes.) * Schemes other than `http`, `https` (or the empty scheme) might be * used with implementation specific semantics. * * Generated from protobuf field string type_url = 1; * @return string */ public function getTypeUrl() { return $this->type_url; } /** * A URL/resource name whose content describes the type of the * serialized protocol buffer message. * For URLs which use the scheme `http`, `https`, or no scheme, the * following restrictions and interpretations apply: * * If no scheme is provided, `https` is assumed. * * The last segment of the URL's path must represent the fully * qualified name of the type (as in `path/google.protobuf.Duration`). * The name should be in a canonical form (e.g., leading "." is * not accepted). * * An HTTP GET on the URL must yield a [google.protobuf.Type][] * value in binary format, or produce an error. * * Applications are allowed to cache lookup results based on the * URL, or have them precompiled into a binary to avoid any * lookup. Therefore, binary compatibility needs to be preserved * on changes to types. (Use versioned type names to manage * breaking changes.) * Schemes other than `http`, `https` (or the empty scheme) might be * used with implementation specific semantics. * * Generated from protobuf field string type_url = 1; * @param string $var */ public function setTypeUrl($var) { GPBUtil::checkString($var, True); $this->type_url = $var; } /** * Must be a valid serialized protocol buffer of the above specified type. * * Generated from protobuf field bytes value = 2; * @return string */ public function getValue() { return $this->value; } /** * Must be a valid serialized protocol buffer of the above specified type. * * Generated from protobuf field bytes value = 2; * @param string $var */ public function setValue($var) { GPBUtil::checkString($var, False); $this->value = $var; } } src/Protobuf/Api.php000064400000023073151742740600010370 0ustar00Google\Protobuf\Api */ class Api extends \Google\Protobuf\Internal\Message { /** * The fully qualified name of this api, including package name * followed by the api's simple name. * * Generated from protobuf field string name = 1; */ private $name = ''; /** * The methods of this api, in unspecified order. * * Generated from protobuf field repeated .google.protobuf.Method methods = 2; */ private $methods; /** * Any metadata attached to the API. * * Generated from protobuf field repeated .google.protobuf.Option options = 3; */ private $options; /** * A version string for this api. If specified, must have the form * `major-version.minor-version`, as in `1.10`. If the minor version * is omitted, it defaults to zero. If the entire version field is * empty, the major version is derived from the package name, as * outlined below. If the field is not empty, the version in the * package name will be verified to be consistent with what is * provided here. * The versioning schema uses [semantic * versioning](http://semver.org) where the major version number * indicates a breaking change and the minor version an additive, * non-breaking change. Both version numbers are signals to users * what to expect from different versions, and should be carefully * chosen based on the product plan. * The major version is also reflected in the package name of the * API, which must end in `v`, as in * `google.feature.v1`. For major versions 0 and 1, the suffix can * be omitted. Zero major versions must only be used for * experimental, none-GA apis. * * Generated from protobuf field string version = 4; */ private $version = ''; /** * Source context for the protocol buffer service represented by this * message. * * Generated from protobuf field .google.protobuf.SourceContext source_context = 5; */ private $source_context = null; /** * Included APIs. See [Mixin][]. * * Generated from protobuf field repeated .google.protobuf.Mixin mixins = 6; */ private $mixins; /** * The source syntax of the service. * * Generated from protobuf field .google.protobuf.Syntax syntax = 7; */ private $syntax = 0; public function __construct() { \GPBMetadata\Google\Protobuf\Api::initOnce(); parent::__construct(); } /** * The fully qualified name of this api, including package name * followed by the api's simple name. * * Generated from protobuf field string name = 1; * @return string */ public function getName() { return $this->name; } /** * The fully qualified name of this api, including package name * followed by the api's simple name. * * Generated from protobuf field string name = 1; * @param string $var */ public function setName($var) { GPBUtil::checkString($var, True); $this->name = $var; } /** * The methods of this api, in unspecified order. * * Generated from protobuf field repeated .google.protobuf.Method methods = 2; * @return \Google\Protobuf\Internal\RepeatedField */ public function getMethods() { return $this->methods; } /** * The methods of this api, in unspecified order. * * Generated from protobuf field repeated .google.protobuf.Method methods = 2; * @param array|\Google\Protobuf\Internal\RepeatedField $var */ public function setMethods(&$var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Method::class); $this->methods = $arr; } /** * Any metadata attached to the API. * * Generated from protobuf field repeated .google.protobuf.Option options = 3; * @return \Google\Protobuf\Internal\RepeatedField */ public function getOptions() { return $this->options; } /** * Any metadata attached to the API. * * Generated from protobuf field repeated .google.protobuf.Option options = 3; * @param array|\Google\Protobuf\Internal\RepeatedField $var */ public function setOptions(&$var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Option::class); $this->options = $arr; } /** * A version string for this api. If specified, must have the form * `major-version.minor-version`, as in `1.10`. If the minor version * is omitted, it defaults to zero. If the entire version field is * empty, the major version is derived from the package name, as * outlined below. If the field is not empty, the version in the * package name will be verified to be consistent with what is * provided here. * The versioning schema uses [semantic * versioning](http://semver.org) where the major version number * indicates a breaking change and the minor version an additive, * non-breaking change. Both version numbers are signals to users * what to expect from different versions, and should be carefully * chosen based on the product plan. * The major version is also reflected in the package name of the * API, which must end in `v`, as in * `google.feature.v1`. For major versions 0 and 1, the suffix can * be omitted. Zero major versions must only be used for * experimental, none-GA apis. * * Generated from protobuf field string version = 4; * @return string */ public function getVersion() { return $this->version; } /** * A version string for this api. If specified, must have the form * `major-version.minor-version`, as in `1.10`. If the minor version * is omitted, it defaults to zero. If the entire version field is * empty, the major version is derived from the package name, as * outlined below. If the field is not empty, the version in the * package name will be verified to be consistent with what is * provided here. * The versioning schema uses [semantic * versioning](http://semver.org) where the major version number * indicates a breaking change and the minor version an additive, * non-breaking change. Both version numbers are signals to users * what to expect from different versions, and should be carefully * chosen based on the product plan. * The major version is also reflected in the package name of the * API, which must end in `v`, as in * `google.feature.v1`. For major versions 0 and 1, the suffix can * be omitted. Zero major versions must only be used for * experimental, none-GA apis. * * Generated from protobuf field string version = 4; * @param string $var */ public function setVersion($var) { GPBUtil::checkString($var, True); $this->version = $var; } /** * Source context for the protocol buffer service represented by this * message. * * Generated from protobuf field .google.protobuf.SourceContext source_context = 5; * @return \Google\Protobuf\SourceContext */ public function getSourceContext() { return $this->source_context; } /** * Source context for the protocol buffer service represented by this * message. * * Generated from protobuf field .google.protobuf.SourceContext source_context = 5; * @param \Google\Protobuf\SourceContext $var */ public function setSourceContext(&$var) { GPBUtil::checkMessage($var, \Google\Protobuf\SourceContext::class); $this->source_context = $var; } /** * Included APIs. See [Mixin][]. * * Generated from protobuf field repeated .google.protobuf.Mixin mixins = 6; * @return \Google\Protobuf\Internal\RepeatedField */ public function getMixins() { return $this->mixins; } /** * Included APIs. See [Mixin][]. * * Generated from protobuf field repeated .google.protobuf.Mixin mixins = 6; * @param array|\Google\Protobuf\Internal\RepeatedField $var */ public function setMixins(&$var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Mixin::class); $this->mixins = $arr; } /** * The source syntax of the service. * * Generated from protobuf field .google.protobuf.Syntax syntax = 7; * @return int */ public function getSyntax() { return $this->syntax; } /** * The source syntax of the service. * * Generated from protobuf field .google.protobuf.Syntax syntax = 7; * @param int $var */ public function setSyntax($var) { GPBUtil::checkEnum($var, \Google\Protobuf\Syntax::class); $this->syntax = $var; } } src/Protobuf/BoolValue.php000064400000002276151742740600011551 0ustar00Google\Protobuf\BoolValue */ class BoolValue extends \Google\Protobuf\Internal\Message { /** * The bool value. * * Generated from protobuf field bool value = 1; */ private $value = false; public function __construct() { \GPBMetadata\Google\Protobuf\Wrappers::initOnce(); parent::__construct(); } /** * The bool value. * * Generated from protobuf field bool value = 1; * @return bool */ public function getValue() { return $this->value; } /** * The bool value. * * Generated from protobuf field bool value = 1; * @param bool $var */ public function setValue($var) { GPBUtil::checkBool($var); $this->value = $var; } } src/Protobuf/BytesValue.php000064400000002306151742740600011736 0ustar00Google\Protobuf\BytesValue */ class BytesValue extends \Google\Protobuf\Internal\Message { /** * The bytes value. * * Generated from protobuf field bytes value = 1; */ private $value = ''; public function __construct() { \GPBMetadata\Google\Protobuf\Wrappers::initOnce(); parent::__construct(); } /** * The bytes value. * * Generated from protobuf field bytes value = 1; * @return string */ public function getValue() { return $this->value; } /** * The bytes value. * * Generated from protobuf field bytes value = 1; * @param string $var */ public function setValue($var) { GPBUtil::checkString($var, False); $this->value = $var; } } src/Protobuf/DoubleValue.php000064400000002310151742740600012055 0ustar00Google\Protobuf\DoubleValue */ class DoubleValue extends \Google\Protobuf\Internal\Message { /** * The double value. * * Generated from protobuf field double value = 1; */ private $value = 0.0; public function __construct() { \GPBMetadata\Google\Protobuf\Wrappers::initOnce(); parent::__construct(); } /** * The double value. * * Generated from protobuf field double value = 1; * @return float */ public function getValue() { return $this->value; } /** * The double value. * * Generated from protobuf field double value = 1; * @param float $var */ public function setValue($var) { GPBUtil::checkDouble($var); $this->value = $var; } } src/Protobuf/Duration.php000064400000012776151742740600011454 0ustar00 0) { * duration.seconds += 1; * duration.nanos -= 1000000000; * } else if (durations.seconds > 0 && duration.nanos < 0) { * duration.seconds -= 1; * duration.nanos += 1000000000; * } * Example 2: Compute Timestamp from Timestamp + Duration in pseudo code. * Timestamp start = ...; * Duration duration = ...; * Timestamp end = ...; * end.seconds = start.seconds + duration.seconds; * end.nanos = start.nanos + duration.nanos; * if (end.nanos < 0) { * end.seconds -= 1; * end.nanos += 1000000000; * } else if (end.nanos >= 1000000000) { * end.seconds += 1; * end.nanos -= 1000000000; * } * Example 3: Compute Duration from datetime.timedelta in Python. * td = datetime.timedelta(days=3, minutes=10) * duration = Duration() * duration.FromTimedelta(td) * # JSON Mapping * In JSON format, the Duration type is encoded as a string rather than an * object, where the string ends in the suffix "s" (indicating seconds) and * is preceded by the number of seconds, with nanoseconds expressed as * fractional seconds. For example, 3 seconds with 0 nanoseconds should be * encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should * be expressed in JSON format as "3.000000001s", and 3 seconds and 1 * microsecond should be expressed in JSON format as "3.000001s". * * Protobuf type Google\Protobuf\Duration */ class Duration extends \Google\Protobuf\Internal\Message { /** * Signed seconds of the span of time. Must be from -315,576,000,000 * to +315,576,000,000 inclusive. Note: these bounds are computed from: * 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years * * Generated from protobuf field int64 seconds = 1; */ private $seconds = 0; /** * Signed fractions of a second at nanosecond resolution of the span * of time. Durations less than one second are represented with a 0 * `seconds` field and a positive or negative `nanos` field. For durations * of one second or more, a non-zero value for the `nanos` field must be * of the same sign as the `seconds` field. Must be from -999,999,999 * to +999,999,999 inclusive. * * Generated from protobuf field int32 nanos = 2; */ private $nanos = 0; public function __construct() { \GPBMetadata\Google\Protobuf\Duration::initOnce(); parent::__construct(); } /** * Signed seconds of the span of time. Must be from -315,576,000,000 * to +315,576,000,000 inclusive. Note: these bounds are computed from: * 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years * * Generated from protobuf field int64 seconds = 1; * @return int|string */ public function getSeconds() { return $this->seconds; } /** * Signed seconds of the span of time. Must be from -315,576,000,000 * to +315,576,000,000 inclusive. Note: these bounds are computed from: * 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years * * Generated from protobuf field int64 seconds = 1; * @param int|string $var */ public function setSeconds($var) { GPBUtil::checkInt64($var); $this->seconds = $var; } /** * Signed fractions of a second at nanosecond resolution of the span * of time. Durations less than one second are represented with a 0 * `seconds` field and a positive or negative `nanos` field. For durations * of one second or more, a non-zero value for the `nanos` field must be * of the same sign as the `seconds` field. Must be from -999,999,999 * to +999,999,999 inclusive. * * Generated from protobuf field int32 nanos = 2; * @return int */ public function getNanos() { return $this->nanos; } /** * Signed fractions of a second at nanosecond resolution of the span * of time. Durations less than one second are represented with a 0 * `seconds` field and a positive or negative `nanos` field. For durations * of one second or more, a non-zero value for the `nanos` field must be * of the same sign as the `seconds` field. Must be from -999,999,999 * to +999,999,999 inclusive. * * Generated from protobuf field int32 nanos = 2; * @param int $var */ public function setNanos($var) { GPBUtil::checkInt32($var); $this->nanos = $var; } } src/Protobuf/Enum.php000064400000010541151742740600010557 0ustar00Google\Protobuf\Enum */ class Enum extends \Google\Protobuf\Internal\Message { /** * Enum type name. * * Generated from protobuf field string name = 1; */ private $name = ''; /** * Enum value definitions. * * Generated from protobuf field repeated .google.protobuf.EnumValue enumvalue = 2; */ private $enumvalue; /** * Protocol buffer options. * * Generated from protobuf field repeated .google.protobuf.Option options = 3; */ private $options; /** * The source context. * * Generated from protobuf field .google.protobuf.SourceContext source_context = 4; */ private $source_context = null; /** * The source syntax. * * Generated from protobuf field .google.protobuf.Syntax syntax = 5; */ private $syntax = 0; public function __construct() { \GPBMetadata\Google\Protobuf\Type::initOnce(); parent::__construct(); } /** * Enum type name. * * Generated from protobuf field string name = 1; * @return string */ public function getName() { return $this->name; } /** * Enum type name. * * Generated from protobuf field string name = 1; * @param string $var */ public function setName($var) { GPBUtil::checkString($var, True); $this->name = $var; } /** * Enum value definitions. * * Generated from protobuf field repeated .google.protobuf.EnumValue enumvalue = 2; * @return \Google\Protobuf\Internal\RepeatedField */ public function getEnumvalue() { return $this->enumvalue; } /** * Enum value definitions. * * Generated from protobuf field repeated .google.protobuf.EnumValue enumvalue = 2; * @param array|\Google\Protobuf\Internal\RepeatedField $var */ public function setEnumvalue(&$var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\EnumValue::class); $this->enumvalue = $arr; } /** * Protocol buffer options. * * Generated from protobuf field repeated .google.protobuf.Option options = 3; * @return \Google\Protobuf\Internal\RepeatedField */ public function getOptions() { return $this->options; } /** * Protocol buffer options. * * Generated from protobuf field repeated .google.protobuf.Option options = 3; * @param array|\Google\Protobuf\Internal\RepeatedField $var */ public function setOptions(&$var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Option::class); $this->options = $arr; } /** * The source context. * * Generated from protobuf field .google.protobuf.SourceContext source_context = 4; * @return \Google\Protobuf\SourceContext */ public function getSourceContext() { return $this->source_context; } /** * The source context. * * Generated from protobuf field .google.protobuf.SourceContext source_context = 4; * @param \Google\Protobuf\SourceContext $var */ public function setSourceContext(&$var) { GPBUtil::checkMessage($var, \Google\Protobuf\SourceContext::class); $this->source_context = $var; } /** * The source syntax. * * Generated from protobuf field .google.protobuf.Syntax syntax = 5; * @return int */ public function getSyntax() { return $this->syntax; } /** * The source syntax. * * Generated from protobuf field .google.protobuf.Syntax syntax = 5; * @param int $var */ public function setSyntax($var) { GPBUtil::checkEnum($var, \Google\Protobuf\Syntax::class); $this->syntax = $var; } } src/Protobuf/EnumValue.php000064400000005103151742740600011552 0ustar00Google\Protobuf\EnumValue */ class EnumValue extends \Google\Protobuf\Internal\Message { /** * Enum value name. * * Generated from protobuf field string name = 1; */ private $name = ''; /** * Enum value number. * * Generated from protobuf field int32 number = 2; */ private $number = 0; /** * Protocol buffer options. * * Generated from protobuf field repeated .google.protobuf.Option options = 3; */ private $options; public function __construct() { \GPBMetadata\Google\Protobuf\Type::initOnce(); parent::__construct(); } /** * Enum value name. * * Generated from protobuf field string name = 1; * @return string */ public function getName() { return $this->name; } /** * Enum value name. * * Generated from protobuf field string name = 1; * @param string $var */ public function setName($var) { GPBUtil::checkString($var, True); $this->name = $var; } /** * Enum value number. * * Generated from protobuf field int32 number = 2; * @return int */ public function getNumber() { return $this->number; } /** * Enum value number. * * Generated from protobuf field int32 number = 2; * @param int $var */ public function setNumber($var) { GPBUtil::checkInt32($var); $this->number = $var; } /** * Protocol buffer options. * * Generated from protobuf field repeated .google.protobuf.Option options = 3; * @return \Google\Protobuf\Internal\RepeatedField */ public function getOptions() { return $this->options; } /** * Protocol buffer options. * * Generated from protobuf field repeated .google.protobuf.Option options = 3; * @param array|\Google\Protobuf\Internal\RepeatedField $var */ public function setOptions(&$var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Option::class); $this->options = $arr; } } src/Protobuf/Field.php000064400000020273151742740600010701 0ustar00Google\Protobuf\Field */ class Field extends \Google\Protobuf\Internal\Message { /** * The field type. * * Generated from protobuf field .google.protobuf.Field.Kind kind = 1; */ private $kind = 0; /** * The field cardinality. * * Generated from protobuf field .google.protobuf.Field.Cardinality cardinality = 2; */ private $cardinality = 0; /** * The field number. * * Generated from protobuf field int32 number = 3; */ private $number = 0; /** * The field name. * * Generated from protobuf field string name = 4; */ private $name = ''; /** * The field type URL, without the scheme, for message or enumeration * types. Example: `"type.googleapis.com/google.protobuf.Timestamp"`. * * Generated from protobuf field string type_url = 6; */ private $type_url = ''; /** * The index of the field type in `Type.oneofs`, for message or enumeration * types. The first type has index 1; zero means the type is not in the list. * * Generated from protobuf field int32 oneof_index = 7; */ private $oneof_index = 0; /** * Whether to use alternative packed wire representation. * * Generated from protobuf field bool packed = 8; */ private $packed = false; /** * The protocol buffer options. * * Generated from protobuf field repeated .google.protobuf.Option options = 9; */ private $options; /** * The field JSON name. * * Generated from protobuf field string json_name = 10; */ private $json_name = ''; /** * The string value of the default value of this field. Proto2 syntax only. * * Generated from protobuf field string default_value = 11; */ private $default_value = ''; public function __construct() { \GPBMetadata\Google\Protobuf\Type::initOnce(); parent::__construct(); } /** * The field type. * * Generated from protobuf field .google.protobuf.Field.Kind kind = 1; * @return int */ public function getKind() { return $this->kind; } /** * The field type. * * Generated from protobuf field .google.protobuf.Field.Kind kind = 1; * @param int $var */ public function setKind($var) { GPBUtil::checkEnum($var, \Google\Protobuf\Field_Kind::class); $this->kind = $var; } /** * The field cardinality. * * Generated from protobuf field .google.protobuf.Field.Cardinality cardinality = 2; * @return int */ public function getCardinality() { return $this->cardinality; } /** * The field cardinality. * * Generated from protobuf field .google.protobuf.Field.Cardinality cardinality = 2; * @param int $var */ public function setCardinality($var) { GPBUtil::checkEnum($var, \Google\Protobuf\Field_Cardinality::class); $this->cardinality = $var; } /** * The field number. * * Generated from protobuf field int32 number = 3; * @return int */ public function getNumber() { return $this->number; } /** * The field number. * * Generated from protobuf field int32 number = 3; * @param int $var */ public function setNumber($var) { GPBUtil::checkInt32($var); $this->number = $var; } /** * The field name. * * Generated from protobuf field string name = 4; * @return string */ public function getName() { return $this->name; } /** * The field name. * * Generated from protobuf field string name = 4; * @param string $var */ public function setName($var) { GPBUtil::checkString($var, True); $this->name = $var; } /** * The field type URL, without the scheme, for message or enumeration * types. Example: `"type.googleapis.com/google.protobuf.Timestamp"`. * * Generated from protobuf field string type_url = 6; * @return string */ public function getTypeUrl() { return $this->type_url; } /** * The field type URL, without the scheme, for message or enumeration * types. Example: `"type.googleapis.com/google.protobuf.Timestamp"`. * * Generated from protobuf field string type_url = 6; * @param string $var */ public function setTypeUrl($var) { GPBUtil::checkString($var, True); $this->type_url = $var; } /** * The index of the field type in `Type.oneofs`, for message or enumeration * types. The first type has index 1; zero means the type is not in the list. * * Generated from protobuf field int32 oneof_index = 7; * @return int */ public function getOneofIndex() { return $this->oneof_index; } /** * The index of the field type in `Type.oneofs`, for message or enumeration * types. The first type has index 1; zero means the type is not in the list. * * Generated from protobuf field int32 oneof_index = 7; * @param int $var */ public function setOneofIndex($var) { GPBUtil::checkInt32($var); $this->oneof_index = $var; } /** * Whether to use alternative packed wire representation. * * Generated from protobuf field bool packed = 8; * @return bool */ public function getPacked() { return $this->packed; } /** * Whether to use alternative packed wire representation. * * Generated from protobuf field bool packed = 8; * @param bool $var */ public function setPacked($var) { GPBUtil::checkBool($var); $this->packed = $var; } /** * The protocol buffer options. * * Generated from protobuf field repeated .google.protobuf.Option options = 9; * @return \Google\Protobuf\Internal\RepeatedField */ public function getOptions() { return $this->options; } /** * The protocol buffer options. * * Generated from protobuf field repeated .google.protobuf.Option options = 9; * @param array|\Google\Protobuf\Internal\RepeatedField $var */ public function setOptions(&$var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Option::class); $this->options = $arr; } /** * The field JSON name. * * Generated from protobuf field string json_name = 10; * @return string */ public function getJsonName() { return $this->json_name; } /** * The field JSON name. * * Generated from protobuf field string json_name = 10; * @param string $var */ public function setJsonName($var) { GPBUtil::checkString($var, True); $this->json_name = $var; } /** * The string value of the default value of this field. Proto2 syntax only. * * Generated from protobuf field string default_value = 11; * @return string */ public function getDefaultValue() { return $this->default_value; } /** * The string value of the default value of this field. Proto2 syntax only. * * Generated from protobuf field string default_value = 11; * @param string $var */ public function setDefaultValue($var) { GPBUtil::checkString($var, True); $this->default_value = $var; } } src/Protobuf/FieldMask.php000064400000015543151742740600011521 0ustar00Google\Protobuf\FieldMask */ class FieldMask extends \Google\Protobuf\Internal\Message { /** * The set of field mask paths. * * Generated from protobuf field repeated string paths = 1; */ private $paths; public function __construct() { \GPBMetadata\Google\Protobuf\FieldMask::initOnce(); parent::__construct(); } /** * The set of field mask paths. * * Generated from protobuf field repeated string paths = 1; * @return \Google\Protobuf\Internal\RepeatedField */ public function getPaths() { return $this->paths; } /** * The set of field mask paths. * * Generated from protobuf field repeated string paths = 1; * @param array|\Google\Protobuf\Internal\RepeatedField $var */ public function setPaths(&$var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); $this->paths = $arr; } } src/Protobuf/Field_Cardinality.php000064400000001714151742740600013223 0ustar00Google\Protobuf\Field\Cardinality */ class Field_Cardinality { /** * For fields with unknown cardinality. * * Generated from protobuf enum CARDINALITY_UNKNOWN = 0; */ const CARDINALITY_UNKNOWN = 0; /** * For optional fields. * * Generated from protobuf enum CARDINALITY_OPTIONAL = 1; */ const CARDINALITY_OPTIONAL = 1; /** * For required fields. Proto2 syntax only. * * Generated from protobuf enum CARDINALITY_REQUIRED = 2; */ const CARDINALITY_REQUIRED = 2; /** * For repeated fields. * * Generated from protobuf enum CARDINALITY_REPEATED = 3; */ const CARDINALITY_REPEATED = 3; } src/Protobuf/Field_Kind.php000064400000005660151742740600011651 0ustar00Google\Protobuf\Field\Kind */ class Field_Kind { /** * Field type unknown. * * Generated from protobuf enum TYPE_UNKNOWN = 0; */ const TYPE_UNKNOWN = 0; /** * Field type double. * * Generated from protobuf enum TYPE_DOUBLE = 1; */ const TYPE_DOUBLE = 1; /** * Field type float. * * Generated from protobuf enum TYPE_FLOAT = 2; */ const TYPE_FLOAT = 2; /** * Field type int64. * * Generated from protobuf enum TYPE_INT64 = 3; */ const TYPE_INT64 = 3; /** * Field type uint64. * * Generated from protobuf enum TYPE_UINT64 = 4; */ const TYPE_UINT64 = 4; /** * Field type int32. * * Generated from protobuf enum TYPE_INT32 = 5; */ const TYPE_INT32 = 5; /** * Field type fixed64. * * Generated from protobuf enum TYPE_FIXED64 = 6; */ const TYPE_FIXED64 = 6; /** * Field type fixed32. * * Generated from protobuf enum TYPE_FIXED32 = 7; */ const TYPE_FIXED32 = 7; /** * Field type bool. * * Generated from protobuf enum TYPE_BOOL = 8; */ const TYPE_BOOL = 8; /** * Field type string. * * Generated from protobuf enum TYPE_STRING = 9; */ const TYPE_STRING = 9; /** * Field type group. Proto2 syntax only, and deprecated. * * Generated from protobuf enum TYPE_GROUP = 10; */ const TYPE_GROUP = 10; /** * Field type message. * * Generated from protobuf enum TYPE_MESSAGE = 11; */ const TYPE_MESSAGE = 11; /** * Field type bytes. * * Generated from protobuf enum TYPE_BYTES = 12; */ const TYPE_BYTES = 12; /** * Field type uint32. * * Generated from protobuf enum TYPE_UINT32 = 13; */ const TYPE_UINT32 = 13; /** * Field type enum. * * Generated from protobuf enum TYPE_ENUM = 14; */ const TYPE_ENUM = 14; /** * Field type sfixed32. * * Generated from protobuf enum TYPE_SFIXED32 = 15; */ const TYPE_SFIXED32 = 15; /** * Field type sfixed64. * * Generated from protobuf enum TYPE_SFIXED64 = 16; */ const TYPE_SFIXED64 = 16; /** * Field type sint32. * * Generated from protobuf enum TYPE_SINT32 = 17; */ const TYPE_SINT32 = 17; /** * Field type sint64. * * Generated from protobuf enum TYPE_SINT64 = 18; */ const TYPE_SINT64 = 18; } src/Protobuf/FloatValue.php000064400000002275151742740600011722 0ustar00Google\Protobuf\FloatValue */ class FloatValue extends \Google\Protobuf\Internal\Message { /** * The float value. * * Generated from protobuf field float value = 1; */ private $value = 0.0; public function __construct() { \GPBMetadata\Google\Protobuf\Wrappers::initOnce(); parent::__construct(); } /** * The float value. * * Generated from protobuf field float value = 1; * @return float */ public function getValue() { return $this->value; } /** * The float value. * * Generated from protobuf field float value = 1; * @param float $var */ public function setValue($var) { GPBUtil::checkFloat($var); $this->value = $var; } } src/Protobuf/GPBEmpty.php000064400000001573151742740600011307 0ustar00Google\Protobuf\Empty */ class GPBEmpty extends \Google\Protobuf\Internal\Message { public function __construct() { \GPBMetadata\Google\Protobuf\GPBEmpty::initOnce(); parent::__construct(); } } src/Protobuf/Int32Value.php000064400000002267151742740600011555 0ustar00Google\Protobuf\Int32Value */ class Int32Value extends \Google\Protobuf\Internal\Message { /** * The int32 value. * * Generated from protobuf field int32 value = 1; */ private $value = 0; public function __construct() { \GPBMetadata\Google\Protobuf\Wrappers::initOnce(); parent::__construct(); } /** * The int32 value. * * Generated from protobuf field int32 value = 1; * @return int */ public function getValue() { return $this->value; } /** * The int32 value. * * Generated from protobuf field int32 value = 1; * @param int $var */ public function setValue($var) { GPBUtil::checkInt32($var); $this->value = $var; } } src/Protobuf/Int64Value.php000064400000002305151742740600011553 0ustar00Google\Protobuf\Int64Value */ class Int64Value extends \Google\Protobuf\Internal\Message { /** * The int64 value. * * Generated from protobuf field int64 value = 1; */ private $value = 0; public function __construct() { \GPBMetadata\Google\Protobuf\Wrappers::initOnce(); parent::__construct(); } /** * The int64 value. * * Generated from protobuf field int64 value = 1; * @return int|string */ public function getValue() { return $this->value; } /** * The int64 value. * * Generated from protobuf field int64 value = 1; * @param int|string $var */ public function setValue($var) { GPBUtil::checkInt64($var); $this->value = $var; } } src/Protobuf/ListValue.php000064400000003032151742740600011560 0ustar00Google\Protobuf\ListValue */ class ListValue extends \Google\Protobuf\Internal\Message { /** * Repeated field of dynamically typed values. * * Generated from protobuf field repeated .google.protobuf.Value values = 1; */ private $values; public function __construct() { \GPBMetadata\Google\Protobuf\Struct::initOnce(); parent::__construct(); } /** * Repeated field of dynamically typed values. * * Generated from protobuf field repeated .google.protobuf.Value values = 1; * @return \Google\Protobuf\Internal\RepeatedField */ public function getValues() { return $this->values; } /** * Repeated field of dynamically typed values. * * Generated from protobuf field repeated .google.protobuf.Value values = 1; * @param array|\Google\Protobuf\Internal\RepeatedField $var */ public function setValues(&$var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Value::class); $this->values = $arr; } } src/Protobuf/Method.php000064400000013315151742740600011075 0ustar00Google\Protobuf\Method */ class Method extends \Google\Protobuf\Internal\Message { /** * The simple name of this method. * * Generated from protobuf field string name = 1; */ private $name = ''; /** * A URL of the input message type. * * Generated from protobuf field string request_type_url = 2; */ private $request_type_url = ''; /** * If true, the request is streamed. * * Generated from protobuf field bool request_streaming = 3; */ private $request_streaming = false; /** * The URL of the output message type. * * Generated from protobuf field string response_type_url = 4; */ private $response_type_url = ''; /** * If true, the response is streamed. * * Generated from protobuf field bool response_streaming = 5; */ private $response_streaming = false; /** * Any metadata attached to the method. * * Generated from protobuf field repeated .google.protobuf.Option options = 6; */ private $options; /** * The source syntax of this method. * * Generated from protobuf field .google.protobuf.Syntax syntax = 7; */ private $syntax = 0; public function __construct() { \GPBMetadata\Google\Protobuf\Api::initOnce(); parent::__construct(); } /** * The simple name of this method. * * Generated from protobuf field string name = 1; * @return string */ public function getName() { return $this->name; } /** * The simple name of this method. * * Generated from protobuf field string name = 1; * @param string $var */ public function setName($var) { GPBUtil::checkString($var, True); $this->name = $var; } /** * A URL of the input message type. * * Generated from protobuf field string request_type_url = 2; * @return string */ public function getRequestTypeUrl() { return $this->request_type_url; } /** * A URL of the input message type. * * Generated from protobuf field string request_type_url = 2; * @param string $var */ public function setRequestTypeUrl($var) { GPBUtil::checkString($var, True); $this->request_type_url = $var; } /** * If true, the request is streamed. * * Generated from protobuf field bool request_streaming = 3; * @return bool */ public function getRequestStreaming() { return $this->request_streaming; } /** * If true, the request is streamed. * * Generated from protobuf field bool request_streaming = 3; * @param bool $var */ public function setRequestStreaming($var) { GPBUtil::checkBool($var); $this->request_streaming = $var; } /** * The URL of the output message type. * * Generated from protobuf field string response_type_url = 4; * @return string */ public function getResponseTypeUrl() { return $this->response_type_url; } /** * The URL of the output message type. * * Generated from protobuf field string response_type_url = 4; * @param string $var */ public function setResponseTypeUrl($var) { GPBUtil::checkString($var, True); $this->response_type_url = $var; } /** * If true, the response is streamed. * * Generated from protobuf field bool response_streaming = 5; * @return bool */ public function getResponseStreaming() { return $this->response_streaming; } /** * If true, the response is streamed. * * Generated from protobuf field bool response_streaming = 5; * @param bool $var */ public function setResponseStreaming($var) { GPBUtil::checkBool($var); $this->response_streaming = $var; } /** * Any metadata attached to the method. * * Generated from protobuf field repeated .google.protobuf.Option options = 6; * @return \Google\Protobuf\Internal\RepeatedField */ public function getOptions() { return $this->options; } /** * Any metadata attached to the method. * * Generated from protobuf field repeated .google.protobuf.Option options = 6; * @param array|\Google\Protobuf\Internal\RepeatedField $var */ public function setOptions(&$var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Option::class); $this->options = $arr; } /** * The source syntax of this method. * * Generated from protobuf field .google.protobuf.Syntax syntax = 7; * @return int */ public function getSyntax() { return $this->syntax; } /** * The source syntax of this method. * * Generated from protobuf field .google.protobuf.Syntax syntax = 7; * @param int $var */ public function setSyntax($var) { GPBUtil::checkEnum($var, \Google\Protobuf\Syntax::class); $this->syntax = $var; } } src/Protobuf/Mixin.php000064400000010736151742740600010745 0ustar00Google\Protobuf\Mixin */ class Mixin extends \Google\Protobuf\Internal\Message { /** * The fully qualified name of the API which is included. * * Generated from protobuf field string name = 1; */ private $name = ''; /** * If non-empty specifies a path under which inherited HTTP paths * are rooted. * * Generated from protobuf field string root = 2; */ private $root = ''; public function __construct() { \GPBMetadata\Google\Protobuf\Api::initOnce(); parent::__construct(); } /** * The fully qualified name of the API which is included. * * Generated from protobuf field string name = 1; * @return string */ public function getName() { return $this->name; } /** * The fully qualified name of the API which is included. * * Generated from protobuf field string name = 1; * @param string $var */ public function setName($var) { GPBUtil::checkString($var, True); $this->name = $var; } /** * If non-empty specifies a path under which inherited HTTP paths * are rooted. * * Generated from protobuf field string root = 2; * @return string */ public function getRoot() { return $this->root; } /** * If non-empty specifies a path under which inherited HTTP paths * are rooted. * * Generated from protobuf field string root = 2; * @param string $var */ public function setRoot($var) { GPBUtil::checkString($var, True); $this->root = $var; } } src/Protobuf/NullValue.php000064400000001003151742740600011553 0ustar00Google\Protobuf\NullValue */ class NullValue { /** * Null value. * * Generated from protobuf enum NULL_VALUE = 0; */ const NULL_VALUE = 0; } src/Protobuf/Option.php000064400000006556151742740600011136 0ustar00Google\Protobuf\Option */ class Option extends \Google\Protobuf\Internal\Message { /** * The option's name. For protobuf built-in options (options defined in * descriptor.proto), this is the short name. For example, `"map_entry"`. * For custom options, it should be the fully-qualified name. For example, * `"google.api.http"`. * * Generated from protobuf field string name = 1; */ private $name = ''; /** * The option's value packed in an Any message. If the value is a primitive, * the corresponding wrapper type defined in google/protobuf/wrappers.proto * should be used. If the value is an enum, it should be stored as an int32 * value using the google.protobuf.Int32Value type. * * Generated from protobuf field .google.protobuf.Any value = 2; */ private $value = null; public function __construct() { \GPBMetadata\Google\Protobuf\Type::initOnce(); parent::__construct(); } /** * The option's name. For protobuf built-in options (options defined in * descriptor.proto), this is the short name. For example, `"map_entry"`. * For custom options, it should be the fully-qualified name. For example, * `"google.api.http"`. * * Generated from protobuf field string name = 1; * @return string */ public function getName() { return $this->name; } /** * The option's name. For protobuf built-in options (options defined in * descriptor.proto), this is the short name. For example, `"map_entry"`. * For custom options, it should be the fully-qualified name. For example, * `"google.api.http"`. * * Generated from protobuf field string name = 1; * @param string $var */ public function setName($var) { GPBUtil::checkString($var, True); $this->name = $var; } /** * The option's value packed in an Any message. If the value is a primitive, * the corresponding wrapper type defined in google/protobuf/wrappers.proto * should be used. If the value is an enum, it should be stored as an int32 * value using the google.protobuf.Int32Value type. * * Generated from protobuf field .google.protobuf.Any value = 2; * @return \Google\Protobuf\Any */ public function getValue() { return $this->value; } /** * The option's value packed in an Any message. If the value is a primitive, * the corresponding wrapper type defined in google/protobuf/wrappers.proto * should be used. If the value is an enum, it should be stored as an int32 * value using the google.protobuf.Int32Value type. * * Generated from protobuf field .google.protobuf.Any value = 2; * @param \Google\Protobuf\Any $var */ public function setValue(&$var) { GPBUtil::checkMessage($var, \Google\Protobuf\Any::class); $this->value = $var; } } src/Protobuf/SourceContext.php000064400000003261151742740600012461 0ustar00Google\Protobuf\SourceContext */ class SourceContext extends \Google\Protobuf\Internal\Message { /** * The path-qualified name of the .proto file that contained the associated * protobuf element. For example: `"google/protobuf/source_context.proto"`. * * Generated from protobuf field string file_name = 1; */ private $file_name = ''; public function __construct() { \GPBMetadata\Google\Protobuf\SourceContext::initOnce(); parent::__construct(); } /** * The path-qualified name of the .proto file that contained the associated * protobuf element. For example: `"google/protobuf/source_context.proto"`. * * Generated from protobuf field string file_name = 1; * @return string */ public function getFileName() { return $this->file_name; } /** * The path-qualified name of the .proto file that contained the associated * protobuf element. For example: `"google/protobuf/source_context.proto"`. * * Generated from protobuf field string file_name = 1; * @param string $var */ public function setFileName($var) { GPBUtil::checkString($var, True); $this->file_name = $var; } } src/Protobuf/StringValue.php000064400000002317151742740600012120 0ustar00Google\Protobuf\StringValue */ class StringValue extends \Google\Protobuf\Internal\Message { /** * The string value. * * Generated from protobuf field string value = 1; */ private $value = ''; public function __construct() { \GPBMetadata\Google\Protobuf\Wrappers::initOnce(); parent::__construct(); } /** * The string value. * * Generated from protobuf field string value = 1; * @return string */ public function getValue() { return $this->value; } /** * The string value. * * Generated from protobuf field string value = 1; * @param string $var */ public function setValue($var) { GPBUtil::checkString($var, True); $this->value = $var; } } src/Protobuf/Struct.php000064400000003575151742740600011150 0ustar00Google\Protobuf\Struct */ class Struct extends \Google\Protobuf\Internal\Message { /** * Unordered map of dynamically typed values. * * Generated from protobuf field map fields = 1; */ private $fields; public function __construct() { \GPBMetadata\Google\Protobuf\Struct::initOnce(); parent::__construct(); } /** * Unordered map of dynamically typed values. * * Generated from protobuf field map fields = 1; * @return \Google\Protobuf\Internal\RepeatedField */ public function getFields() { return $this->fields; } /** * Unordered map of dynamically typed values. * * Generated from protobuf field map fields = 1; * @param array|\Google\Protobuf\Internal\RepeatedField $var */ public function setFields(&$var) { $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Value::class); $this->fields = $arr; } } src/Protobuf/Syntax.php000064400000001062151742740600011137 0ustar00Google\Protobuf\Syntax */ class Syntax { /** * Syntax `proto2`. * * Generated from protobuf enum SYNTAX_PROTO2 = 0; */ const SYNTAX_PROTO2 = 0; /** * Syntax `proto3`. * * Generated from protobuf enum SYNTAX_PROTO3 = 1; */ const SYNTAX_PROTO3 = 1; } src/Protobuf/Timestamp.php000064400000014123151742740600011616 0ustar00Google\Protobuf\Timestamp */ class Timestamp extends \Google\Protobuf\Internal\Message { /** * Represents seconds of UTC time since Unix epoch * 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to * 9999-12-31T23:59:59Z inclusive. * * Generated from protobuf field int64 seconds = 1; */ private $seconds = 0; /** * Non-negative fractions of a second at nanosecond resolution. Negative * second values with fractions must still have non-negative nanos values * that count forward in time. Must be from 0 to 999,999,999 * inclusive. * * Generated from protobuf field int32 nanos = 2; */ private $nanos = 0; public function __construct() { \GPBMetadata\Google\Protobuf\Timestamp::initOnce(); parent::__construct(); } /** * Represents seconds of UTC time since Unix epoch * 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to * 9999-12-31T23:59:59Z inclusive. * * Generated from protobuf field int64 seconds = 1; * @return int|string */ public function getSeconds() { return $this->seconds; } /** * Represents seconds of UTC time since Unix epoch * 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to * 9999-12-31T23:59:59Z inclusive. * * Generated from protobuf field int64 seconds = 1; * @param int|string $var */ public function setSeconds($var) { GPBUtil::checkInt64($var); $this->seconds = $var; } /** * Non-negative fractions of a second at nanosecond resolution. Negative * second values with fractions must still have non-negative nanos values * that count forward in time. Must be from 0 to 999,999,999 * inclusive. * * Generated from protobuf field int32 nanos = 2; * @return int */ public function getNanos() { return $this->nanos; } /** * Non-negative fractions of a second at nanosecond resolution. Negative * second values with fractions must still have non-negative nanos values * that count forward in time. Must be from 0 to 999,999,999 * inclusive. * * Generated from protobuf field int32 nanos = 2; * @param int $var */ public function setNanos($var) { GPBUtil::checkInt32($var); $this->nanos = $var; } } src/Protobuf/Type.php000064400000012405151742740600010575 0ustar00Google\Protobuf\Type */ class Type extends \Google\Protobuf\Internal\Message { /** * The fully qualified message name. * * Generated from protobuf field string name = 1; */ private $name = ''; /** * The list of fields. * * Generated from protobuf field repeated .google.protobuf.Field fields = 2; */ private $fields; /** * The list of types appearing in `oneof` definitions in this type. * * Generated from protobuf field repeated string oneofs = 3; */ private $oneofs; /** * The protocol buffer options. * * Generated from protobuf field repeated .google.protobuf.Option options = 4; */ private $options; /** * The source context. * * Generated from protobuf field .google.protobuf.SourceContext source_context = 5; */ private $source_context = null; /** * The source syntax. * * Generated from protobuf field .google.protobuf.Syntax syntax = 6; */ private $syntax = 0; public function __construct() { \GPBMetadata\Google\Protobuf\Type::initOnce(); parent::__construct(); } /** * The fully qualified message name. * * Generated from protobuf field string name = 1; * @return string */ public function getName() { return $this->name; } /** * The fully qualified message name. * * Generated from protobuf field string name = 1; * @param string $var */ public function setName($var) { GPBUtil::checkString($var, True); $this->name = $var; } /** * The list of fields. * * Generated from protobuf field repeated .google.protobuf.Field fields = 2; * @return \Google\Protobuf\Internal\RepeatedField */ public function getFields() { return $this->fields; } /** * The list of fields. * * Generated from protobuf field repeated .google.protobuf.Field fields = 2; * @param array|\Google\Protobuf\Internal\RepeatedField $var */ public function setFields(&$var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Field::class); $this->fields = $arr; } /** * The list of types appearing in `oneof` definitions in this type. * * Generated from protobuf field repeated string oneofs = 3; * @return \Google\Protobuf\Internal\RepeatedField */ public function getOneofs() { return $this->oneofs; } /** * The list of types appearing in `oneof` definitions in this type. * * Generated from protobuf field repeated string oneofs = 3; * @param array|\Google\Protobuf\Internal\RepeatedField $var */ public function setOneofs(&$var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); $this->oneofs = $arr; } /** * The protocol buffer options. * * Generated from protobuf field repeated .google.protobuf.Option options = 4; * @return \Google\Protobuf\Internal\RepeatedField */ public function getOptions() { return $this->options; } /** * The protocol buffer options. * * Generated from protobuf field repeated .google.protobuf.Option options = 4; * @param array|\Google\Protobuf\Internal\RepeatedField $var */ public function setOptions(&$var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Option::class); $this->options = $arr; } /** * The source context. * * Generated from protobuf field .google.protobuf.SourceContext source_context = 5; * @return \Google\Protobuf\SourceContext */ public function getSourceContext() { return $this->source_context; } /** * The source context. * * Generated from protobuf field .google.protobuf.SourceContext source_context = 5; * @param \Google\Protobuf\SourceContext $var */ public function setSourceContext(&$var) { GPBUtil::checkMessage($var, \Google\Protobuf\SourceContext::class); $this->source_context = $var; } /** * The source syntax. * * Generated from protobuf field .google.protobuf.Syntax syntax = 6; * @return int */ public function getSyntax() { return $this->syntax; } /** * The source syntax. * * Generated from protobuf field .google.protobuf.Syntax syntax = 6; * @param int $var */ public function setSyntax($var) { GPBUtil::checkEnum($var, \Google\Protobuf\Syntax::class); $this->syntax = $var; } } src/Protobuf/UInt32Value.php000064400000002302151742740600011670 0ustar00Google\Protobuf\UInt32Value */ class UInt32Value extends \Google\Protobuf\Internal\Message { /** * The uint32 value. * * Generated from protobuf field uint32 value = 1; */ private $value = 0; public function __construct() { \GPBMetadata\Google\Protobuf\Wrappers::initOnce(); parent::__construct(); } /** * The uint32 value. * * Generated from protobuf field uint32 value = 1; * @return int */ public function getValue() { return $this->value; } /** * The uint32 value. * * Generated from protobuf field uint32 value = 1; * @param int $var */ public function setValue($var) { GPBUtil::checkUint32($var); $this->value = $var; } } src/Protobuf/UInt64Value.php000064400000002320151742740600011675 0ustar00Google\Protobuf\UInt64Value */ class UInt64Value extends \Google\Protobuf\Internal\Message { /** * The uint64 value. * * Generated from protobuf field uint64 value = 1; */ private $value = 0; public function __construct() { \GPBMetadata\Google\Protobuf\Wrappers::initOnce(); parent::__construct(); } /** * The uint64 value. * * Generated from protobuf field uint64 value = 1; * @return int|string */ public function getValue() { return $this->value; } /** * The uint64 value. * * Generated from protobuf field uint64 value = 1; * @param int|string $var */ public function setValue($var) { GPBUtil::checkUint64($var); $this->value = $var; } } src/Protobuf/Value.php000064400000010441151742740600010726 0ustar00Google\Protobuf\Value */ class Value extends \Google\Protobuf\Internal\Message { protected $kind; public function __construct() { \GPBMetadata\Google\Protobuf\Struct::initOnce(); parent::__construct(); } /** * Represents a null value. * * Generated from protobuf field .google.protobuf.NullValue null_value = 1; * @return int */ public function getNullValue() { return $this->readOneof(1); } /** * Represents a null value. * * Generated from protobuf field .google.protobuf.NullValue null_value = 1; * @param int $var */ public function setNullValue($var) { GPBUtil::checkEnum($var, \Google\Protobuf\NullValue::class); $this->writeOneof(1, $var); } /** * Represents a double value. * * Generated from protobuf field double number_value = 2; * @return float */ public function getNumberValue() { return $this->readOneof(2); } /** * Represents a double value. * * Generated from protobuf field double number_value = 2; * @param float $var */ public function setNumberValue($var) { GPBUtil::checkDouble($var); $this->writeOneof(2, $var); } /** * Represents a string value. * * Generated from protobuf field string string_value = 3; * @return string */ public function getStringValue() { return $this->readOneof(3); } /** * Represents a string value. * * Generated from protobuf field string string_value = 3; * @param string $var */ public function setStringValue($var) { GPBUtil::checkString($var, True); $this->writeOneof(3, $var); } /** * Represents a boolean value. * * Generated from protobuf field bool bool_value = 4; * @return bool */ public function getBoolValue() { return $this->readOneof(4); } /** * Represents a boolean value. * * Generated from protobuf field bool bool_value = 4; * @param bool $var */ public function setBoolValue($var) { GPBUtil::checkBool($var); $this->writeOneof(4, $var); } /** * Represents a structured value. * * Generated from protobuf field .google.protobuf.Struct struct_value = 5; * @return \Google\Protobuf\Struct */ public function getStructValue() { return $this->readOneof(5); } /** * Represents a structured value. * * Generated from protobuf field .google.protobuf.Struct struct_value = 5; * @param \Google\Protobuf\Struct $var */ public function setStructValue(&$var) { GPBUtil::checkMessage($var, \Google\Protobuf\Struct::class); $this->writeOneof(5, $var); } /** * Represents a repeated `Value`. * * Generated from protobuf field .google.protobuf.ListValue list_value = 6; * @return \Google\Protobuf\ListValue */ public function getListValue() { return $this->readOneof(6); } /** * Represents a repeated `Value`. * * Generated from protobuf field .google.protobuf.ListValue list_value = 6; * @param \Google\Protobuf\ListValue $var */ public function setListValue(&$var) { GPBUtil::checkMessage($var, \Google\Protobuf\ListValue::class); $this->writeOneof(6, $var); } /** * @return string */ public function getKind() { return $this->whichOneof("kind"); } } src/Rpc/BadRequest.php000064400000003374151742740600010644 0ustar00google.rpc.BadRequest */ class BadRequest extends \Google\Protobuf\Internal\Message { /** * Describes all violations in a client request. * * Generated from protobuf field repeated .google.rpc.BadRequest.FieldViolation field_violations = 1; */ private $field_violations; public function __construct() { \GPBMetadata\Google\Rpc\ErrorDetails::initOnce(); parent::__construct(); } /** * Describes all violations in a client request. * * Generated from protobuf field repeated .google.rpc.BadRequest.FieldViolation field_violations = 1; * @return \Google\Protobuf\Internal\RepeatedField */ public function getFieldViolations() { return $this->field_violations; } /** * Describes all violations in a client request. * * Generated from protobuf field repeated .google.rpc.BadRequest.FieldViolation field_violations = 1; * @param \Google\Rpc\BadRequest_FieldViolation[]|\Google\Protobuf\Internal\RepeatedField $var * @return $this */ public function setFieldViolations($var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Rpc\BadRequest_FieldViolation::class); $this->field_violations = $arr; return $this; } } src/Rpc/BadRequest_FieldViolation.php000064400000005157151742740600013635 0ustar00google.rpc.BadRequest.FieldViolation */ class BadRequest_FieldViolation extends \Google\Protobuf\Internal\Message { /** * A path leading to a field in the request body. The value will be a * sequence of dot-separated identifiers that identify a protocol buffer * field. E.g., "field_violations.field" would identify this field. * * Generated from protobuf field string field = 1; */ private $field = ''; /** * A description of why the request element is bad. * * Generated from protobuf field string description = 2; */ private $description = ''; public function __construct() { \GPBMetadata\Google\Rpc\ErrorDetails::initOnce(); parent::__construct(); } /** * A path leading to a field in the request body. The value will be a * sequence of dot-separated identifiers that identify a protocol buffer * field. E.g., "field_violations.field" would identify this field. * * Generated from protobuf field string field = 1; * @return string */ public function getField() { return $this->field; } /** * A path leading to a field in the request body. The value will be a * sequence of dot-separated identifiers that identify a protocol buffer * field. E.g., "field_violations.field" would identify this field. * * Generated from protobuf field string field = 1; * @param string $var * @return $this */ public function setField($var) { GPBUtil::checkString($var, True); $this->field = $var; return $this; } /** * A description of why the request element is bad. * * Generated from protobuf field string description = 2; * @return string */ public function getDescription() { return $this->description; } /** * A description of why the request element is bad. * * Generated from protobuf field string description = 2; * @param string $var * @return $this */ public function setDescription($var) { GPBUtil::checkString($var, True); $this->description = $var; return $this; } } src/Rpc/Code.php000064400000017650151742740600007461 0ustar00Google\Rpc\Code */ class Code { /** * Not an error; returned on success * HTTP Mapping: 200 OK * * Generated from protobuf enum OK = 0; */ const OK = 0; /** * The operation was cancelled, typically by the caller. * HTTP Mapping: 499 Client Closed Request * * Generated from protobuf enum CANCELLED = 1; */ const CANCELLED = 1; /** * Unknown error. For example, this error may be returned when * a `Status` value received from another address space belongs to * an error space that is not known in this address space. Also * errors raised by APIs that do not return enough error information * may be converted to this error. * HTTP Mapping: 500 Internal Server Error * * Generated from protobuf enum UNKNOWN = 2; */ const UNKNOWN = 2; /** * The client specified an invalid argument. Note that this differs * from `FAILED_PRECONDITION`. `INVALID_ARGUMENT` indicates arguments * that are problematic regardless of the state of the system * (e.g., a malformed file name). * HTTP Mapping: 400 Bad Request * * Generated from protobuf enum INVALID_ARGUMENT = 3; */ const INVALID_ARGUMENT = 3; /** * The deadline expired before the operation could complete. For operations * that change the state of the system, this error may be returned * even if the operation has completed successfully. For example, a * successful response from a server could have been delayed long * enough for the deadline to expire. * HTTP Mapping: 504 Gateway Timeout * * Generated from protobuf enum DEADLINE_EXCEEDED = 4; */ const DEADLINE_EXCEEDED = 4; /** * Some requested entity (e.g., file or directory) was not found. * Note to server developers: if a request is denied for an entire class * of users, such as gradual feature rollout or undocumented whitelist, * `NOT_FOUND` may be used. If a request is denied for some users within * a class of users, such as user-based access control, `PERMISSION_DENIED` * must be used. * HTTP Mapping: 404 Not Found * * Generated from protobuf enum NOT_FOUND = 5; */ const NOT_FOUND = 5; /** * The entity that a client attempted to create (e.g., file or directory) * already exists. * HTTP Mapping: 409 Conflict * * Generated from protobuf enum ALREADY_EXISTS = 6; */ const ALREADY_EXISTS = 6; /** * The caller does not have permission to execute the specified * operation. `PERMISSION_DENIED` must not be used for rejections * caused by exhausting some resource (use `RESOURCE_EXHAUSTED` * instead for those errors). `PERMISSION_DENIED` must not be * used if the caller can not be identified (use `UNAUTHENTICATED` * instead for those errors). This error code does not imply the * request is valid or the requested entity exists or satisfies * other pre-conditions. * HTTP Mapping: 403 Forbidden * * Generated from protobuf enum PERMISSION_DENIED = 7; */ const PERMISSION_DENIED = 7; /** * The request does not have valid authentication credentials for the * operation. * HTTP Mapping: 401 Unauthorized * * Generated from protobuf enum UNAUTHENTICATED = 16; */ const UNAUTHENTICATED = 16; /** * Some resource has been exhausted, perhaps a per-user quota, or * perhaps the entire file system is out of space. * HTTP Mapping: 429 Too Many Requests * * Generated from protobuf enum RESOURCE_EXHAUSTED = 8; */ const RESOURCE_EXHAUSTED = 8; /** * The operation was rejected because the system is not in a state * required for the operation's execution. For example, the directory * to be deleted is non-empty, an rmdir operation is applied to * a non-directory, etc. * Service implementors can use the following guidelines to decide * between `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`: * (a) Use `UNAVAILABLE` if the client can retry just the failing call. * (b) Use `ABORTED` if the client should retry at a higher level * (e.g., when a client-specified test-and-set fails, indicating the * client should restart a read-modify-write sequence). * (c) Use `FAILED_PRECONDITION` if the client should not retry until * the system state has been explicitly fixed. E.g., if an "rmdir" * fails because the directory is non-empty, `FAILED_PRECONDITION` * should be returned since the client should not retry unless * the files are deleted from the directory. * HTTP Mapping: 400 Bad Request * * Generated from protobuf enum FAILED_PRECONDITION = 9; */ const FAILED_PRECONDITION = 9; /** * The operation was aborted, typically due to a concurrency issue such as * a sequencer check failure or transaction abort. * See the guidelines above for deciding between `FAILED_PRECONDITION`, * `ABORTED`, and `UNAVAILABLE`. * HTTP Mapping: 409 Conflict * * Generated from protobuf enum ABORTED = 10; */ const ABORTED = 10; /** * The operation was attempted past the valid range. E.g., seeking or * reading past end-of-file. * Unlike `INVALID_ARGUMENT`, this error indicates a problem that may * be fixed if the system state changes. For example, a 32-bit file * system will generate `INVALID_ARGUMENT` if asked to read at an * offset that is not in the range [0,2^32-1], but it will generate * `OUT_OF_RANGE` if asked to read from an offset past the current * file size. * There is a fair bit of overlap between `FAILED_PRECONDITION` and * `OUT_OF_RANGE`. We recommend using `OUT_OF_RANGE` (the more specific * error) when it applies so that callers who are iterating through * a space can easily look for an `OUT_OF_RANGE` error to detect when * they are done. * HTTP Mapping: 400 Bad Request * * Generated from protobuf enum OUT_OF_RANGE = 11; */ const OUT_OF_RANGE = 11; /** * The operation is not implemented or is not supported/enabled in this * service. * HTTP Mapping: 501 Not Implemented * * Generated from protobuf enum UNIMPLEMENTED = 12; */ const UNIMPLEMENTED = 12; /** * Internal errors. This means that some invariants expected by the * underlying system have been broken. This error code is reserved * for serious errors. * HTTP Mapping: 500 Internal Server Error * * Generated from protobuf enum INTERNAL = 13; */ const INTERNAL = 13; /** * The service is currently unavailable. This is most likely a * transient condition, which can be corrected by retrying with * a backoff. * See the guidelines above for deciding between `FAILED_PRECONDITION`, * `ABORTED`, and `UNAVAILABLE`. * HTTP Mapping: 503 Service Unavailable * * Generated from protobuf enum UNAVAILABLE = 14; */ const UNAVAILABLE = 14; /** * Unrecoverable data loss or corruption. * HTTP Mapping: 500 Internal Server Error * * Generated from protobuf enum DATA_LOSS = 15; */ const DATA_LOSS = 15; } src/Rpc/DebugInfo.php000064400000004451151742740600010444 0ustar00google.rpc.DebugInfo */ class DebugInfo extends \Google\Protobuf\Internal\Message { /** * The stack trace entries indicating where the error occurred. * * Generated from protobuf field repeated string stack_entries = 1; */ private $stack_entries; /** * Additional debugging information provided by the server. * * Generated from protobuf field string detail = 2; */ private $detail = ''; public function __construct() { \GPBMetadata\Google\Rpc\ErrorDetails::initOnce(); parent::__construct(); } /** * The stack trace entries indicating where the error occurred. * * Generated from protobuf field repeated string stack_entries = 1; * @return \Google\Protobuf\Internal\RepeatedField */ public function getStackEntries() { return $this->stack_entries; } /** * The stack trace entries indicating where the error occurred. * * Generated from protobuf field repeated string stack_entries = 1; * @param string[]|\Google\Protobuf\Internal\RepeatedField $var * @return $this */ public function setStackEntries($var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); $this->stack_entries = $arr; return $this; } /** * Additional debugging information provided by the server. * * Generated from protobuf field string detail = 2; * @return string */ public function getDetail() { return $this->detail; } /** * Additional debugging information provided by the server. * * Generated from protobuf field string detail = 2; * @param string $var * @return $this */ public function setDetail($var) { GPBUtil::checkString($var, True); $this->detail = $var; return $this; } } src/Rpc/Help.php000064400000003534151742740600007473 0ustar00google.rpc.Help */ class Help extends \Google\Protobuf\Internal\Message { /** * URL(s) pointing to additional information on handling the current error. * * Generated from protobuf field repeated .google.rpc.Help.Link links = 1; */ private $links; public function __construct() { \GPBMetadata\Google\Rpc\ErrorDetails::initOnce(); parent::__construct(); } /** * URL(s) pointing to additional information on handling the current error. * * Generated from protobuf field repeated .google.rpc.Help.Link links = 1; * @return \Google\Protobuf\Internal\RepeatedField */ public function getLinks() { return $this->links; } /** * URL(s) pointing to additional information on handling the current error. * * Generated from protobuf field repeated .google.rpc.Help.Link links = 1; * @param \Google\Rpc\Help_Link[]|\Google\Protobuf\Internal\RepeatedField $var * @return $this */ public function setLinks($var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Rpc\Help_Link::class); $this->links = $arr; return $this; } } src/Rpc/Help_Link.php000064400000003635151742740600010452 0ustar00google.rpc.Help.Link */ class Help_Link extends \Google\Protobuf\Internal\Message { /** * Describes what the link offers. * * Generated from protobuf field string description = 1; */ private $description = ''; /** * The URL of the link. * * Generated from protobuf field string url = 2; */ private $url = ''; public function __construct() { \GPBMetadata\Google\Rpc\ErrorDetails::initOnce(); parent::__construct(); } /** * Describes what the link offers. * * Generated from protobuf field string description = 1; * @return string */ public function getDescription() { return $this->description; } /** * Describes what the link offers. * * Generated from protobuf field string description = 1; * @param string $var * @return $this */ public function setDescription($var) { GPBUtil::checkString($var, True); $this->description = $var; return $this; } /** * The URL of the link. * * Generated from protobuf field string url = 2; * @return string */ public function getUrl() { return $this->url; } /** * The URL of the link. * * Generated from protobuf field string url = 2; * @param string $var * @return $this */ public function setUrl($var) { GPBUtil::checkString($var, True); $this->url = $var; return $this; } } src/Rpc/LocalizedMessage.php000064400000004677151742740600012027 0ustar00google.rpc.LocalizedMessage */ class LocalizedMessage extends \Google\Protobuf\Internal\Message { /** * The locale used following the specification defined at * http://www.rfc-editor.org/rfc/bcp/bcp47.txt. * Examples are: "en-US", "fr-CH", "es-MX" * * Generated from protobuf field string locale = 1; */ private $locale = ''; /** * The localized error message in the above locale. * * Generated from protobuf field string message = 2; */ private $message = ''; public function __construct() { \GPBMetadata\Google\Rpc\ErrorDetails::initOnce(); parent::__construct(); } /** * The locale used following the specification defined at * http://www.rfc-editor.org/rfc/bcp/bcp47.txt. * Examples are: "en-US", "fr-CH", "es-MX" * * Generated from protobuf field string locale = 1; * @return string */ public function getLocale() { return $this->locale; } /** * The locale used following the specification defined at * http://www.rfc-editor.org/rfc/bcp/bcp47.txt. * Examples are: "en-US", "fr-CH", "es-MX" * * Generated from protobuf field string locale = 1; * @param string $var * @return $this */ public function setLocale($var) { GPBUtil::checkString($var, True); $this->locale = $var; return $this; } /** * The localized error message in the above locale. * * Generated from protobuf field string message = 2; * @return string */ public function getMessage() { return $this->message; } /** * The localized error message in the above locale. * * Generated from protobuf field string message = 2; * @param string $var * @return $this */ public function setMessage($var) { GPBUtil::checkString($var, True); $this->message = $var; return $this; } } src/Rpc/PreconditionFailure.php000064400000003520151742740600012543 0ustar00google.rpc.PreconditionFailure */ class PreconditionFailure extends \Google\Protobuf\Internal\Message { /** * Describes all precondition violations. * * Generated from protobuf field repeated .google.rpc.PreconditionFailure.Violation violations = 1; */ private $violations; public function __construct() { \GPBMetadata\Google\Rpc\ErrorDetails::initOnce(); parent::__construct(); } /** * Describes all precondition violations. * * Generated from protobuf field repeated .google.rpc.PreconditionFailure.Violation violations = 1; * @return \Google\Protobuf\Internal\RepeatedField */ public function getViolations() { return $this->violations; } /** * Describes all precondition violations. * * Generated from protobuf field repeated .google.rpc.PreconditionFailure.Violation violations = 1; * @param \Google\Rpc\PreconditionFailure_Violation[]|\Google\Protobuf\Internal\RepeatedField $var * @return $this */ public function setViolations($var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Rpc\PreconditionFailure_Violation::class); $this->violations = $arr; return $this; } } src/Rpc/PreconditionFailure_Violation.php000064400000010130151742740600014562 0ustar00google.rpc.PreconditionFailure.Violation */ class PreconditionFailure_Violation extends \Google\Protobuf\Internal\Message { /** * The type of PreconditionFailure. We recommend using a service-specific * enum type to define the supported precondition violation types. For * example, "TOS" for "Terms of Service violation". * * Generated from protobuf field string type = 1; */ private $type = ''; /** * The subject, relative to the type, that failed. * For example, "google.com/cloud" relative to the "TOS" type would * indicate which terms of service is being referenced. * * Generated from protobuf field string subject = 2; */ private $subject = ''; /** * A description of how the precondition failed. Developers can use this * description to understand how to fix the failure. * For example: "Terms of service not accepted". * * Generated from protobuf field string description = 3; */ private $description = ''; public function __construct() { \GPBMetadata\Google\Rpc\ErrorDetails::initOnce(); parent::__construct(); } /** * The type of PreconditionFailure. We recommend using a service-specific * enum type to define the supported precondition violation types. For * example, "TOS" for "Terms of Service violation". * * Generated from protobuf field string type = 1; * @return string */ public function getType() { return $this->type; } /** * The type of PreconditionFailure. We recommend using a service-specific * enum type to define the supported precondition violation types. For * example, "TOS" for "Terms of Service violation". * * Generated from protobuf field string type = 1; * @param string $var * @return $this */ public function setType($var) { GPBUtil::checkString($var, True); $this->type = $var; return $this; } /** * The subject, relative to the type, that failed. * For example, "google.com/cloud" relative to the "TOS" type would * indicate which terms of service is being referenced. * * Generated from protobuf field string subject = 2; * @return string */ public function getSubject() { return $this->subject; } /** * The subject, relative to the type, that failed. * For example, "google.com/cloud" relative to the "TOS" type would * indicate which terms of service is being referenced. * * Generated from protobuf field string subject = 2; * @param string $var * @return $this */ public function setSubject($var) { GPBUtil::checkString($var, True); $this->subject = $var; return $this; } /** * A description of how the precondition failed. Developers can use this * description to understand how to fix the failure. * For example: "Terms of service not accepted". * * Generated from protobuf field string description = 3; * @return string */ public function getDescription() { return $this->description; } /** * A description of how the precondition failed. Developers can use this * description to understand how to fix the failure. * For example: "Terms of service not accepted". * * Generated from protobuf field string description = 3; * @param string $var * @return $this */ public function setDescription($var) { GPBUtil::checkString($var, True); $this->description = $var; return $this; } } src/Rpc/QuotaFailure.php000064400000004051151742740600011177 0ustar00google.rpc.QuotaFailure */ class QuotaFailure extends \Google\Protobuf\Internal\Message { /** * Describes all quota violations. * * Generated from protobuf field repeated .google.rpc.QuotaFailure.Violation violations = 1; */ private $violations; public function __construct() { \GPBMetadata\Google\Rpc\ErrorDetails::initOnce(); parent::__construct(); } /** * Describes all quota violations. * * Generated from protobuf field repeated .google.rpc.QuotaFailure.Violation violations = 1; * @return \Google\Protobuf\Internal\RepeatedField */ public function getViolations() { return $this->violations; } /** * Describes all quota violations. * * Generated from protobuf field repeated .google.rpc.QuotaFailure.Violation violations = 1; * @param \Google\Rpc\QuotaFailure_Violation[]|\Google\Protobuf\Internal\RepeatedField $var * @return $this */ public function setViolations($var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Rpc\QuotaFailure_Violation::class); $this->violations = $arr; return $this; } } src/Rpc/QuotaFailure_Violation.php000064400000006552151742740600013233 0ustar00google.rpc.QuotaFailure.Violation */ class QuotaFailure_Violation extends \Google\Protobuf\Internal\Message { /** * The subject on which the quota check failed. * For example, "clientip:" or "project:". * * Generated from protobuf field string subject = 1; */ private $subject = ''; /** * A description of how the quota check failed. Clients can use this * description to find more about the quota configuration in the service's * public documentation, or find the relevant quota limit to adjust through * developer console. * For example: "Service disabled" or "Daily Limit for read operations * exceeded". * * Generated from protobuf field string description = 2; */ private $description = ''; public function __construct() { \GPBMetadata\Google\Rpc\ErrorDetails::initOnce(); parent::__construct(); } /** * The subject on which the quota check failed. * For example, "clientip:" or "project:". * * Generated from protobuf field string subject = 1; * @return string */ public function getSubject() { return $this->subject; } /** * The subject on which the quota check failed. * For example, "clientip:" or "project:". * * Generated from protobuf field string subject = 1; * @param string $var * @return $this */ public function setSubject($var) { GPBUtil::checkString($var, True); $this->subject = $var; return $this; } /** * A description of how the quota check failed. Clients can use this * description to find more about the quota configuration in the service's * public documentation, or find the relevant quota limit to adjust through * developer console. * For example: "Service disabled" or "Daily Limit for read operations * exceeded". * * Generated from protobuf field string description = 2; * @return string */ public function getDescription() { return $this->description; } /** * A description of how the quota check failed. Clients can use this * description to find more about the quota configuration in the service's * public documentation, or find the relevant quota limit to adjust through * developer console. * For example: "Service disabled" or "Daily Limit for read operations * exceeded". * * Generated from protobuf field string description = 2; * @param string $var * @return $this */ public function setDescription($var) { GPBUtil::checkString($var, True); $this->description = $var; return $this; } } src/Rpc/RequestInfo.php000064400000005501151742740600011043 0ustar00google.rpc.RequestInfo */ class RequestInfo extends \Google\Protobuf\Internal\Message { /** * An opaque string that should only be interpreted by the service generating * it. For example, it can be used to identify requests in the service's logs. * * Generated from protobuf field string request_id = 1; */ private $request_id = ''; /** * Any data that was used to serve this request. For example, an encrypted * stack trace that can be sent back to the service provider for debugging. * * Generated from protobuf field string serving_data = 2; */ private $serving_data = ''; public function __construct() { \GPBMetadata\Google\Rpc\ErrorDetails::initOnce(); parent::__construct(); } /** * An opaque string that should only be interpreted by the service generating * it. For example, it can be used to identify requests in the service's logs. * * Generated from protobuf field string request_id = 1; * @return string */ public function getRequestId() { return $this->request_id; } /** * An opaque string that should only be interpreted by the service generating * it. For example, it can be used to identify requests in the service's logs. * * Generated from protobuf field string request_id = 1; * @param string $var * @return $this */ public function setRequestId($var) { GPBUtil::checkString($var, True); $this->request_id = $var; return $this; } /** * Any data that was used to serve this request. For example, an encrypted * stack trace that can be sent back to the service provider for debugging. * * Generated from protobuf field string serving_data = 2; * @return string */ public function getServingData() { return $this->serving_data; } /** * Any data that was used to serve this request. For example, an encrypted * stack trace that can be sent back to the service provider for debugging. * * Generated from protobuf field string serving_data = 2; * @param string $var * @return $this */ public function setServingData($var) { GPBUtil::checkString($var, True); $this->serving_data = $var; return $this; } } src/Rpc/ResourceInfo.php000064400000012600151742740600011200 0ustar00google.rpc.ResourceInfo */ class ResourceInfo extends \Google\Protobuf\Internal\Message { /** * A name for the type of resource being accessed, e.g. "sql table", * "cloud storage bucket", "file", "Google calendar"; or the type URL * of the resource: e.g. "type.googleapis.com/google.pubsub.v1.Topic". * * Generated from protobuf field string resource_type = 1; */ private $resource_type = ''; /** * The name of the resource being accessed. For example, a shared calendar * name: "example.com_4fghdhgsrgh@group.calendar.google.com", if the current * error is [google.rpc.Code.PERMISSION_DENIED][google.rpc.Code.PERMISSION_DENIED]. * * Generated from protobuf field string resource_name = 2; */ private $resource_name = ''; /** * The owner of the resource (optional). * For example, "user:" or "project:". * * Generated from protobuf field string owner = 3; */ private $owner = ''; /** * Describes what error is encountered when accessing this resource. * For example, updating a cloud project may require the `writer` permission * on the developer console project. * * Generated from protobuf field string description = 4; */ private $description = ''; public function __construct() { \GPBMetadata\Google\Rpc\ErrorDetails::initOnce(); parent::__construct(); } /** * A name for the type of resource being accessed, e.g. "sql table", * "cloud storage bucket", "file", "Google calendar"; or the type URL * of the resource: e.g. "type.googleapis.com/google.pubsub.v1.Topic". * * Generated from protobuf field string resource_type = 1; * @return string */ public function getResourceType() { return $this->resource_type; } /** * A name for the type of resource being accessed, e.g. "sql table", * "cloud storage bucket", "file", "Google calendar"; or the type URL * of the resource: e.g. "type.googleapis.com/google.pubsub.v1.Topic". * * Generated from protobuf field string resource_type = 1; * @param string $var * @return $this */ public function setResourceType($var) { GPBUtil::checkString($var, True); $this->resource_type = $var; return $this; } /** * The name of the resource being accessed. For example, a shared calendar * name: "example.com_4fghdhgsrgh@group.calendar.google.com", if the current * error is [google.rpc.Code.PERMISSION_DENIED][google.rpc.Code.PERMISSION_DENIED]. * * Generated from protobuf field string resource_name = 2; * @return string */ public function getResourceName() { return $this->resource_name; } /** * The name of the resource being accessed. For example, a shared calendar * name: "example.com_4fghdhgsrgh@group.calendar.google.com", if the current * error is [google.rpc.Code.PERMISSION_DENIED][google.rpc.Code.PERMISSION_DENIED]. * * Generated from protobuf field string resource_name = 2; * @param string $var * @return $this */ public function setResourceName($var) { GPBUtil::checkString($var, True); $this->resource_name = $var; return $this; } /** * The owner of the resource (optional). * For example, "user:" or "project:". * * Generated from protobuf field string owner = 3; * @return string */ public function getOwner() { return $this->owner; } /** * The owner of the resource (optional). * For example, "user:" or "project:". * * Generated from protobuf field string owner = 3; * @param string $var * @return $this */ public function setOwner($var) { GPBUtil::checkString($var, True); $this->owner = $var; return $this; } /** * Describes what error is encountered when accessing this resource. * For example, updating a cloud project may require the `writer` permission * on the developer console project. * * Generated from protobuf field string description = 4; * @return string */ public function getDescription() { return $this->description; } /** * Describes what error is encountered when accessing this resource. * For example, updating a cloud project may require the `writer` permission * on the developer console project. * * Generated from protobuf field string description = 4; * @param string $var * @return $this */ public function setDescription($var) { GPBUtil::checkString($var, True); $this->description = $var; return $this; } } src/Rpc/RetryInfo.php000064400000004206151742740600010521 0ustar00google.rpc.RetryInfo */ class RetryInfo extends \Google\Protobuf\Internal\Message { /** * Clients should wait at least this long between retrying the same request. * * Generated from protobuf field .google.protobuf.Duration retry_delay = 1; */ private $retry_delay = null; public function __construct() { \GPBMetadata\Google\Rpc\ErrorDetails::initOnce(); parent::__construct(); } /** * Clients should wait at least this long between retrying the same request. * * Generated from protobuf field .google.protobuf.Duration retry_delay = 1; * @return \Google\Protobuf\Duration */ public function getRetryDelay() { return $this->retry_delay; } /** * Clients should wait at least this long between retrying the same request. * * Generated from protobuf field .google.protobuf.Duration retry_delay = 1; * @param \Google\Protobuf\Duration $var * @return $this */ public function setRetryDelay($var) { GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class); $this->retry_delay = $var; return $this; } } src/Rpc/Status.php000064400000014414151742740600010065 0ustar00google.rpc.Status */ class Status extends \Google\Protobuf\Internal\Message { /** * The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code]. * * Generated from protobuf field int32 code = 1; */ private $code = 0; /** * A developer-facing error message, which should be in English. Any * user-facing error message should be localized and sent in the * [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client. * * Generated from protobuf field string message = 2; */ private $message = ''; /** * A list of messages that carry the error details. There is a common set of * message types for APIs to use. * * Generated from protobuf field repeated .google.protobuf.Any details = 3; */ private $details; public function __construct() { \GPBMetadata\Google\Rpc\Status::initOnce(); parent::__construct(); } /** * The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code]. * * Generated from protobuf field int32 code = 1; * @return int */ public function getCode() { return $this->code; } /** * The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code]. * * Generated from protobuf field int32 code = 1; * @param int $var * @return $this */ public function setCode($var) { GPBUtil::checkInt32($var); $this->code = $var; return $this; } /** * A developer-facing error message, which should be in English. Any * user-facing error message should be localized and sent in the * [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client. * * Generated from protobuf field string message = 2; * @return string */ public function getMessage() { return $this->message; } /** * A developer-facing error message, which should be in English. Any * user-facing error message should be localized and sent in the * [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client. * * Generated from protobuf field string message = 2; * @param string $var * @return $this */ public function setMessage($var) { GPBUtil::checkString($var, True); $this->message = $var; return $this; } /** * A list of messages that carry the error details. There is a common set of * message types for APIs to use. * * Generated from protobuf field repeated .google.protobuf.Any details = 3; * @return \Google\Protobuf\Internal\RepeatedField */ public function getDetails() { return $this->details; } /** * A list of messages that carry the error details. There is a common set of * message types for APIs to use. * * Generated from protobuf field repeated .google.protobuf.Any details = 3; * @param \Google\Protobuf\Any[]|\Google\Protobuf\Internal\RepeatedField $var * @return $this */ public function setDetails($var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Any::class); $this->details = $arr; return $this; } } src/Type/Color.php000064400000022601151742740600010052 0ustar00google.type.Color */ class Color extends \Google\Protobuf\Internal\Message { /** * The amount of red in the color as a value in the interval [0, 1]. * * Generated from protobuf field float red = 1; */ private $red = 0.0; /** * The amount of green in the color as a value in the interval [0, 1]. * * Generated from protobuf field float green = 2; */ private $green = 0.0; /** * The amount of blue in the color as a value in the interval [0, 1]. * * Generated from protobuf field float blue = 3; */ private $blue = 0.0; /** * The fraction of this color that should be applied to the pixel. That is, * the final pixel color is defined by the equation: * pixel color = alpha * (this color) + (1.0 - alpha) * (background color) * This means that a value of 1.0 corresponds to a solid color, whereas * a value of 0.0 corresponds to a completely transparent color. This * uses a wrapper message rather than a simple float scalar so that it is * possible to distinguish between a default value and the value being unset. * If omitted, this color object is to be rendered as a solid color * (as if the alpha value had been explicitly given with a value of 1.0). * * Generated from protobuf field .google.protobuf.FloatValue alpha = 4; */ private $alpha = null; public function __construct() { \GPBMetadata\Google\Type\Color::initOnce(); parent::__construct(); } /** * The amount of red in the color as a value in the interval [0, 1]. * * Generated from protobuf field float red = 1; * @return float */ public function getRed() { return $this->red; } /** * The amount of red in the color as a value in the interval [0, 1]. * * Generated from protobuf field float red = 1; * @param float $var * @return $this */ public function setRed($var) { GPBUtil::checkFloat($var); $this->red = $var; return $this; } /** * The amount of green in the color as a value in the interval [0, 1]. * * Generated from protobuf field float green = 2; * @return float */ public function getGreen() { return $this->green; } /** * The amount of green in the color as a value in the interval [0, 1]. * * Generated from protobuf field float green = 2; * @param float $var * @return $this */ public function setGreen($var) { GPBUtil::checkFloat($var); $this->green = $var; return $this; } /** * The amount of blue in the color as a value in the interval [0, 1]. * * Generated from protobuf field float blue = 3; * @return float */ public function getBlue() { return $this->blue; } /** * The amount of blue in the color as a value in the interval [0, 1]. * * Generated from protobuf field float blue = 3; * @param float $var * @return $this */ public function setBlue($var) { GPBUtil::checkFloat($var); $this->blue = $var; return $this; } /** * The fraction of this color that should be applied to the pixel. That is, * the final pixel color is defined by the equation: * pixel color = alpha * (this color) + (1.0 - alpha) * (background color) * This means that a value of 1.0 corresponds to a solid color, whereas * a value of 0.0 corresponds to a completely transparent color. This * uses a wrapper message rather than a simple float scalar so that it is * possible to distinguish between a default value and the value being unset. * If omitted, this color object is to be rendered as a solid color * (as if the alpha value had been explicitly given with a value of 1.0). * * Generated from protobuf field .google.protobuf.FloatValue alpha = 4; * @return \Google\Protobuf\FloatValue */ public function getAlpha() { return $this->alpha; } /** * The fraction of this color that should be applied to the pixel. That is, * the final pixel color is defined by the equation: * pixel color = alpha * (this color) + (1.0 - alpha) * (background color) * This means that a value of 1.0 corresponds to a solid color, whereas * a value of 0.0 corresponds to a completely transparent color. This * uses a wrapper message rather than a simple float scalar so that it is * possible to distinguish between a default value and the value being unset. * If omitted, this color object is to be rendered as a solid color * (as if the alpha value had been explicitly given with a value of 1.0). * * Generated from protobuf field .google.protobuf.FloatValue alpha = 4; * @param \Google\Protobuf\FloatValue $var * @return $this */ public function setAlpha($var) { GPBUtil::checkMessage($var, \Google\Protobuf\FloatValue::class); $this->alpha = $var; return $this; } } src/Type/Date.php000064400000006746151742740600007665 0ustar00google.type.Date */ class Date extends \Google\Protobuf\Internal\Message { /** * Year of date. Must be from 1 to 9999, or 0 if specifying a date without * a year. * * Generated from protobuf field int32 year = 1; */ private $year = 0; /** * Month of year. Must be from 1 to 12. * * Generated from protobuf field int32 month = 2; */ private $month = 0; /** * Day of month. Must be from 1 to 31 and valid for the year and month, or 0 * if specifying a year/month where the day is not significant. * * Generated from protobuf field int32 day = 3; */ private $day = 0; public function __construct() { \GPBMetadata\Google\Type\Date::initOnce(); parent::__construct(); } /** * Year of date. Must be from 1 to 9999, or 0 if specifying a date without * a year. * * Generated from protobuf field int32 year = 1; * @return int */ public function getYear() { return $this->year; } /** * Year of date. Must be from 1 to 9999, or 0 if specifying a date without * a year. * * Generated from protobuf field int32 year = 1; * @param int $var * @return $this */ public function setYear($var) { GPBUtil::checkInt32($var); $this->year = $var; return $this; } /** * Month of year. Must be from 1 to 12. * * Generated from protobuf field int32 month = 2; * @return int */ public function getMonth() { return $this->month; } /** * Month of year. Must be from 1 to 12. * * Generated from protobuf field int32 month = 2; * @param int $var * @return $this */ public function setMonth($var) { GPBUtil::checkInt32($var); $this->month = $var; return $this; } /** * Day of month. Must be from 1 to 31 and valid for the year and month, or 0 * if specifying a year/month where the day is not significant. * * Generated from protobuf field int32 day = 3; * @return int */ public function getDay() { return $this->day; } /** * Day of month. Must be from 1 to 31 and valid for the year and month, or 0 * if specifying a year/month where the day is not significant. * * Generated from protobuf field int32 day = 3; * @param int $var * @return $this */ public function setDay($var) { GPBUtil::checkInt32($var); $this->day = $var; return $this; } } src/Type/DayOfWeek.php000064400000002615151742740600010615 0ustar00Google\Type\DayOfWeek */ class DayOfWeek { /** * The unspecified day-of-week. * * Generated from protobuf enum DAY_OF_WEEK_UNSPECIFIED = 0; */ const DAY_OF_WEEK_UNSPECIFIED = 0; /** * The day-of-week of Monday. * * Generated from protobuf enum MONDAY = 1; */ const MONDAY = 1; /** * The day-of-week of Tuesday. * * Generated from protobuf enum TUESDAY = 2; */ const TUESDAY = 2; /** * The day-of-week of Wednesday. * * Generated from protobuf enum WEDNESDAY = 3; */ const WEDNESDAY = 3; /** * The day-of-week of Thursday. * * Generated from protobuf enum THURSDAY = 4; */ const THURSDAY = 4; /** * The day-of-week of Friday. * * Generated from protobuf enum FRIDAY = 5; */ const FRIDAY = 5; /** * The day-of-week of Saturday. * * Generated from protobuf enum SATURDAY = 6; */ const SATURDAY = 6; /** * The day-of-week of Sunday. * * Generated from protobuf enum SUNDAY = 7; */ const SUNDAY = 7; } src/Type/LatLng.php000064400000007601151742740600010160 0ustar00WGS84 * standard. Values must be within normalized ranges. * Example of normalization code in Python: * def NormalizeLongitude(longitude): * """Wraps decimal degrees longitude to [-180.0, 180.0].""" * q, r = divmod(longitude, 360.0) * if r > 180.0 or (r == 180.0 and q <= -1.0): * return r - 360.0 * return r * def NormalizeLatLng(latitude, longitude): * """Wraps decimal degrees latitude and longitude to * [-90.0, 90.0] and [-180.0, 180.0], respectively.""" * r = latitude % 360.0 * if r <= 90.0: * return r, NormalizeLongitude(longitude) * elif r >= 270.0: * return r - 360, NormalizeLongitude(longitude) * else: * return 180 - r, NormalizeLongitude(longitude + 180.0) * assert 180.0 == NormalizeLongitude(180.0) * assert -180.0 == NormalizeLongitude(-180.0) * assert -179.0 == NormalizeLongitude(181.0) * assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0) * assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0) * assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0) * assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0) * assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0) * assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0) * assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0) * assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0) * assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0) * assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0) * * Generated from protobuf message google.type.LatLng */ class LatLng extends \Google\Protobuf\Internal\Message { /** * The latitude in degrees. It must be in the range [-90.0, +90.0]. * * Generated from protobuf field double latitude = 1; */ private $latitude = 0.0; /** * The longitude in degrees. It must be in the range [-180.0, +180.0]. * * Generated from protobuf field double longitude = 2; */ private $longitude = 0.0; public function __construct() { \GPBMetadata\Google\Type\Latlng::initOnce(); parent::__construct(); } /** * The latitude in degrees. It must be in the range [-90.0, +90.0]. * * Generated from protobuf field double latitude = 1; * @return float */ public function getLatitude() { return $this->latitude; } /** * The latitude in degrees. It must be in the range [-90.0, +90.0]. * * Generated from protobuf field double latitude = 1; * @param float $var * @return $this */ public function setLatitude($var) { GPBUtil::checkDouble($var); $this->latitude = $var; return $this; } /** * The longitude in degrees. It must be in the range [-180.0, +180.0]. * * Generated from protobuf field double longitude = 2; * @return float */ public function getLongitude() { return $this->longitude; } /** * The longitude in degrees. It must be in the range [-180.0, +180.0]. * * Generated from protobuf field double longitude = 2; * @param float $var * @return $this */ public function setLongitude($var) { GPBUtil::checkDouble($var); $this->longitude = $var; return $this; } } src/Type/Money.php000064400000007772151742740600010077 0ustar00google.type.Money */ class Money extends \Google\Protobuf\Internal\Message { /** * The 3-letter currency code defined in ISO 4217. * * Generated from protobuf field string currency_code = 1; */ private $currency_code = ''; /** * The whole units of the amount. * For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar. * * Generated from protobuf field int64 units = 2; */ private $units = 0; /** * Number of nano (10^-9) units of the amount. * The value must be between -999,999,999 and +999,999,999 inclusive. * If `units` is positive, `nanos` must be positive or zero. * If `units` is zero, `nanos` can be positive, zero, or negative. * If `units` is negative, `nanos` must be negative or zero. * For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000. * * Generated from protobuf field int32 nanos = 3; */ private $nanos = 0; public function __construct() { \GPBMetadata\Google\Type\Money::initOnce(); parent::__construct(); } /** * The 3-letter currency code defined in ISO 4217. * * Generated from protobuf field string currency_code = 1; * @return string */ public function getCurrencyCode() { return $this->currency_code; } /** * The 3-letter currency code defined in ISO 4217. * * Generated from protobuf field string currency_code = 1; * @param string $var * @return $this */ public function setCurrencyCode($var) { GPBUtil::checkString($var, True); $this->currency_code = $var; return $this; } /** * The whole units of the amount. * For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar. * * Generated from protobuf field int64 units = 2; * @return int|string */ public function getUnits() { return $this->units; } /** * The whole units of the amount. * For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar. * * Generated from protobuf field int64 units = 2; * @param int|string $var * @return $this */ public function setUnits($var) { GPBUtil::checkInt64($var); $this->units = $var; return $this; } /** * Number of nano (10^-9) units of the amount. * The value must be between -999,999,999 and +999,999,999 inclusive. * If `units` is positive, `nanos` must be positive or zero. * If `units` is zero, `nanos` can be positive, zero, or negative. * If `units` is negative, `nanos` must be negative or zero. * For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000. * * Generated from protobuf field int32 nanos = 3; * @return int */ public function getNanos() { return $this->nanos; } /** * Number of nano (10^-9) units of the amount. * The value must be between -999,999,999 and +999,999,999 inclusive. * If `units` is positive, `nanos` must be positive or zero. * If `units` is zero, `nanos` can be positive, zero, or negative. * If `units` is negative, `nanos` must be negative or zero. * For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000. * * Generated from protobuf field int32 nanos = 3; * @param int $var * @return $this */ public function setNanos($var) { GPBUtil::checkInt32($var); $this->nanos = $var; return $this; } } src/Type/PostalAddress.php000064400000051363151742740600011553 0ustar00google.type.PostalAddress */ class PostalAddress extends \Google\Protobuf\Internal\Message { /** * The schema revision of the `PostalAddress`. * All new revisions **must** be backward compatible with old revisions. * * Generated from protobuf field int32 revision = 1; */ private $revision = 0; /** * Required. CLDR region code of the country/region of the address. This * is never inferred and it is up to the user to ensure the value is * correct. See http://cldr.unicode.org/ and * http://www.unicode.org/cldr/charts/30/supplemental/territory_information.html * for details. Example: "CH" for Switzerland. * * Generated from protobuf field string region_code = 2; */ private $region_code = ''; /** * Optional. BCP-47 language code of the contents of this address (if * known). This is often the UI language of the input form or is expected * to match one of the languages used in the address' country/region, or their * transliterated equivalents. * This can affect formatting in certain countries, but is not critical * to the correctness of the data and will never affect any validation or * other non-formatting related operations. * If this value is not known, it should be omitted (rather than specifying a * possibly incorrect default). * Examples: "zh-Hant", "ja", "ja-Latn", "en". * * Generated from protobuf field string language_code = 3; */ private $language_code = ''; /** * Optional. Postal code of the address. Not all countries use or require * postal codes to be present, but where they are used, they may trigger * additional validation with other parts of the address (e.g. state/zip * validation in the U.S.A.). * * Generated from protobuf field string postal_code = 4; */ private $postal_code = ''; /** * Optional. Additional, country-specific, sorting code. This is not used * in most regions. Where it is used, the value is either a string like * "CEDEX", optionally followed by a number (e.g. "CEDEX 7"), or just a number * alone, representing the "sector code" (Jamaica), "delivery area indicator" * (Malawi) or "post office indicator" (e.g. CĂ´te d'Ivoire). * * Generated from protobuf field string sorting_code = 5; */ private $sorting_code = ''; /** * Optional. Highest administrative subdivision which is used for postal * addresses of a country or region. * For example, this can be a state, a province, an oblast, or a prefecture. * Specifically, for Spain this is the province and not the autonomous * community (e.g. "Barcelona" and not "Catalonia"). * Many countries don't use an administrative area in postal addresses. E.g. * in Switzerland this should be left unpopulated. * * Generated from protobuf field string administrative_area = 6; */ private $administrative_area = ''; /** * Optional. Generally refers to the city/town portion of the address. * Examples: US city, IT comune, UK post town. * In regions of the world where localities are not well defined or do not fit * into this structure well, leave locality empty and use address_lines. * * Generated from protobuf field string locality = 7; */ private $locality = ''; /** * Optional. Sublocality of the address. * For example, this can be neighborhoods, boroughs, districts. * * Generated from protobuf field string sublocality = 8; */ private $sublocality = ''; /** * Unstructured address lines describing the lower levels of an address. * Because values in address_lines do not have type information and may * sometimes contain multiple values in a single field (e.g. * "Austin, TX"), it is important that the line order is clear. The order of * address lines should be "envelope order" for the country/region of the * address. In places where this can vary (e.g. Japan), address_language is * used to make it explicit (e.g. "ja" for large-to-small ordering and * "ja-Latn" or "en" for small-to-large). This way, the most specific line of * an address can be selected based on the language. * The minimum permitted structural representation of an address consists * of a region_code with all remaining information placed in the * address_lines. It would be possible to format such an address very * approximately without geocoding, but no semantic reasoning could be * made about any of the address components until it was at least * partially resolved. * Creating an address only containing a region_code and address_lines, and * then geocoding is the recommended way to handle completely unstructured * addresses (as opposed to guessing which parts of the address should be * localities or administrative areas). * * Generated from protobuf field repeated string address_lines = 9; */ private $address_lines; /** * Optional. The recipient at the address. * This field may, under certain circumstances, contain multiline information. * For example, it might contain "care of" information. * * Generated from protobuf field repeated string recipients = 10; */ private $recipients; /** * Optional. The name of the organization at the address. * * Generated from protobuf field string organization = 11; */ private $organization = ''; public function __construct() { \GPBMetadata\Google\Type\PostalAddress::initOnce(); parent::__construct(); } /** * The schema revision of the `PostalAddress`. * All new revisions **must** be backward compatible with old revisions. * * Generated from protobuf field int32 revision = 1; * @return int */ public function getRevision() { return $this->revision; } /** * The schema revision of the `PostalAddress`. * All new revisions **must** be backward compatible with old revisions. * * Generated from protobuf field int32 revision = 1; * @param int $var * @return $this */ public function setRevision($var) { GPBUtil::checkInt32($var); $this->revision = $var; return $this; } /** * Required. CLDR region code of the country/region of the address. This * is never inferred and it is up to the user to ensure the value is * correct. See http://cldr.unicode.org/ and * http://www.unicode.org/cldr/charts/30/supplemental/territory_information.html * for details. Example: "CH" for Switzerland. * * Generated from protobuf field string region_code = 2; * @return string */ public function getRegionCode() { return $this->region_code; } /** * Required. CLDR region code of the country/region of the address. This * is never inferred and it is up to the user to ensure the value is * correct. See http://cldr.unicode.org/ and * http://www.unicode.org/cldr/charts/30/supplemental/territory_information.html * for details. Example: "CH" for Switzerland. * * Generated from protobuf field string region_code = 2; * @param string $var * @return $this */ public function setRegionCode($var) { GPBUtil::checkString($var, True); $this->region_code = $var; return $this; } /** * Optional. BCP-47 language code of the contents of this address (if * known). This is often the UI language of the input form or is expected * to match one of the languages used in the address' country/region, or their * transliterated equivalents. * This can affect formatting in certain countries, but is not critical * to the correctness of the data and will never affect any validation or * other non-formatting related operations. * If this value is not known, it should be omitted (rather than specifying a * possibly incorrect default). * Examples: "zh-Hant", "ja", "ja-Latn", "en". * * Generated from protobuf field string language_code = 3; * @return string */ public function getLanguageCode() { return $this->language_code; } /** * Optional. BCP-47 language code of the contents of this address (if * known). This is often the UI language of the input form or is expected * to match one of the languages used in the address' country/region, or their * transliterated equivalents. * This can affect formatting in certain countries, but is not critical * to the correctness of the data and will never affect any validation or * other non-formatting related operations. * If this value is not known, it should be omitted (rather than specifying a * possibly incorrect default). * Examples: "zh-Hant", "ja", "ja-Latn", "en". * * Generated from protobuf field string language_code = 3; * @param string $var * @return $this */ public function setLanguageCode($var) { GPBUtil::checkString($var, True); $this->language_code = $var; return $this; } /** * Optional. Postal code of the address. Not all countries use or require * postal codes to be present, but where they are used, they may trigger * additional validation with other parts of the address (e.g. state/zip * validation in the U.S.A.). * * Generated from protobuf field string postal_code = 4; * @return string */ public function getPostalCode() { return $this->postal_code; } /** * Optional. Postal code of the address. Not all countries use or require * postal codes to be present, but where they are used, they may trigger * additional validation with other parts of the address (e.g. state/zip * validation in the U.S.A.). * * Generated from protobuf field string postal_code = 4; * @param string $var * @return $this */ public function setPostalCode($var) { GPBUtil::checkString($var, True); $this->postal_code = $var; return $this; } /** * Optional. Additional, country-specific, sorting code. This is not used * in most regions. Where it is used, the value is either a string like * "CEDEX", optionally followed by a number (e.g. "CEDEX 7"), or just a number * alone, representing the "sector code" (Jamaica), "delivery area indicator" * (Malawi) or "post office indicator" (e.g. CĂ´te d'Ivoire). * * Generated from protobuf field string sorting_code = 5; * @return string */ public function getSortingCode() { return $this->sorting_code; } /** * Optional. Additional, country-specific, sorting code. This is not used * in most regions. Where it is used, the value is either a string like * "CEDEX", optionally followed by a number (e.g. "CEDEX 7"), or just a number * alone, representing the "sector code" (Jamaica), "delivery area indicator" * (Malawi) or "post office indicator" (e.g. CĂ´te d'Ivoire). * * Generated from protobuf field string sorting_code = 5; * @param string $var * @return $this */ public function setSortingCode($var) { GPBUtil::checkString($var, True); $this->sorting_code = $var; return $this; } /** * Optional. Highest administrative subdivision which is used for postal * addresses of a country or region. * For example, this can be a state, a province, an oblast, or a prefecture. * Specifically, for Spain this is the province and not the autonomous * community (e.g. "Barcelona" and not "Catalonia"). * Many countries don't use an administrative area in postal addresses. E.g. * in Switzerland this should be left unpopulated. * * Generated from protobuf field string administrative_area = 6; * @return string */ public function getAdministrativeArea() { return $this->administrative_area; } /** * Optional. Highest administrative subdivision which is used for postal * addresses of a country or region. * For example, this can be a state, a province, an oblast, or a prefecture. * Specifically, for Spain this is the province and not the autonomous * community (e.g. "Barcelona" and not "Catalonia"). * Many countries don't use an administrative area in postal addresses. E.g. * in Switzerland this should be left unpopulated. * * Generated from protobuf field string administrative_area = 6; * @param string $var * @return $this */ public function setAdministrativeArea($var) { GPBUtil::checkString($var, True); $this->administrative_area = $var; return $this; } /** * Optional. Generally refers to the city/town portion of the address. * Examples: US city, IT comune, UK post town. * In regions of the world where localities are not well defined or do not fit * into this structure well, leave locality empty and use address_lines. * * Generated from protobuf field string locality = 7; * @return string */ public function getLocality() { return $this->locality; } /** * Optional. Generally refers to the city/town portion of the address. * Examples: US city, IT comune, UK post town. * In regions of the world where localities are not well defined or do not fit * into this structure well, leave locality empty and use address_lines. * * Generated from protobuf field string locality = 7; * @param string $var * @return $this */ public function setLocality($var) { GPBUtil::checkString($var, True); $this->locality = $var; return $this; } /** * Optional. Sublocality of the address. * For example, this can be neighborhoods, boroughs, districts. * * Generated from protobuf field string sublocality = 8; * @return string */ public function getSublocality() { return $this->sublocality; } /** * Optional. Sublocality of the address. * For example, this can be neighborhoods, boroughs, districts. * * Generated from protobuf field string sublocality = 8; * @param string $var * @return $this */ public function setSublocality($var) { GPBUtil::checkString($var, True); $this->sublocality = $var; return $this; } /** * Unstructured address lines describing the lower levels of an address. * Because values in address_lines do not have type information and may * sometimes contain multiple values in a single field (e.g. * "Austin, TX"), it is important that the line order is clear. The order of * address lines should be "envelope order" for the country/region of the * address. In places where this can vary (e.g. Japan), address_language is * used to make it explicit (e.g. "ja" for large-to-small ordering and * "ja-Latn" or "en" for small-to-large). This way, the most specific line of * an address can be selected based on the language. * The minimum permitted structural representation of an address consists * of a region_code with all remaining information placed in the * address_lines. It would be possible to format such an address very * approximately without geocoding, but no semantic reasoning could be * made about any of the address components until it was at least * partially resolved. * Creating an address only containing a region_code and address_lines, and * then geocoding is the recommended way to handle completely unstructured * addresses (as opposed to guessing which parts of the address should be * localities or administrative areas). * * Generated from protobuf field repeated string address_lines = 9; * @return \Google\Protobuf\Internal\RepeatedField */ public function getAddressLines() { return $this->address_lines; } /** * Unstructured address lines describing the lower levels of an address. * Because values in address_lines do not have type information and may * sometimes contain multiple values in a single field (e.g. * "Austin, TX"), it is important that the line order is clear. The order of * address lines should be "envelope order" for the country/region of the * address. In places where this can vary (e.g. Japan), address_language is * used to make it explicit (e.g. "ja" for large-to-small ordering and * "ja-Latn" or "en" for small-to-large). This way, the most specific line of * an address can be selected based on the language. * The minimum permitted structural representation of an address consists * of a region_code with all remaining information placed in the * address_lines. It would be possible to format such an address very * approximately without geocoding, but no semantic reasoning could be * made about any of the address components until it was at least * partially resolved. * Creating an address only containing a region_code and address_lines, and * then geocoding is the recommended way to handle completely unstructured * addresses (as opposed to guessing which parts of the address should be * localities or administrative areas). * * Generated from protobuf field repeated string address_lines = 9; * @param string[]|\Google\Protobuf\Internal\RepeatedField $var * @return $this */ public function setAddressLines($var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); $this->address_lines = $arr; return $this; } /** * Optional. The recipient at the address. * This field may, under certain circumstances, contain multiline information. * For example, it might contain "care of" information. * * Generated from protobuf field repeated string recipients = 10; * @return \Google\Protobuf\Internal\RepeatedField */ public function getRecipients() { return $this->recipients; } /** * Optional. The recipient at the address. * This field may, under certain circumstances, contain multiline information. * For example, it might contain "care of" information. * * Generated from protobuf field repeated string recipients = 10; * @param string[]|\Google\Protobuf\Internal\RepeatedField $var * @return $this */ public function setRecipients($var) { $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); $this->recipients = $arr; return $this; } /** * Optional. The name of the organization at the address. * * Generated from protobuf field string organization = 11; * @return string */ public function getOrganization() { return $this->organization; } /** * Optional. The name of the organization at the address. * * Generated from protobuf field string organization = 11; * @param string $var * @return $this */ public function setOrganization($var) { GPBUtil::checkString($var, True); $this->organization = $var; return $this; } } src/Type/TimeOfDay.php000064400000010343151742740600010615 0ustar00google.type.TimeOfDay */ class TimeOfDay extends \Google\Protobuf\Internal\Message { /** * Hours of day in 24 hour format. Should be from 0 to 23. An API may choose * to allow the value "24:00:00" for scenarios like business closing time. * * Generated from protobuf field int32 hours = 1; */ private $hours = 0; /** * Minutes of hour of day. Must be from 0 to 59. * * Generated from protobuf field int32 minutes = 2; */ private $minutes = 0; /** * Seconds of minutes of the time. Must normally be from 0 to 59. An API may * allow the value 60 if it allows leap-seconds. * * Generated from protobuf field int32 seconds = 3; */ private $seconds = 0; /** * Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999. * * Generated from protobuf field int32 nanos = 4; */ private $nanos = 0; public function __construct() { \GPBMetadata\Google\Type\Timeofday::initOnce(); parent::__construct(); } /** * Hours of day in 24 hour format. Should be from 0 to 23. An API may choose * to allow the value "24:00:00" for scenarios like business closing time. * * Generated from protobuf field int32 hours = 1; * @return int */ public function getHours() { return $this->hours; } /** * Hours of day in 24 hour format. Should be from 0 to 23. An API may choose * to allow the value "24:00:00" for scenarios like business closing time. * * Generated from protobuf field int32 hours = 1; * @param int $var * @return $this */ public function setHours($var) { GPBUtil::checkInt32($var); $this->hours = $var; return $this; } /** * Minutes of hour of day. Must be from 0 to 59. * * Generated from protobuf field int32 minutes = 2; * @return int */ public function getMinutes() { return $this->minutes; } /** * Minutes of hour of day. Must be from 0 to 59. * * Generated from protobuf field int32 minutes = 2; * @param int $var * @return $this */ public function setMinutes($var) { GPBUtil::checkInt32($var); $this->minutes = $var; return $this; } /** * Seconds of minutes of the time. Must normally be from 0 to 59. An API may * allow the value 60 if it allows leap-seconds. * * Generated from protobuf field int32 seconds = 3; * @return int */ public function getSeconds() { return $this->seconds; } /** * Seconds of minutes of the time. Must normally be from 0 to 59. An API may * allow the value 60 if it allows leap-seconds. * * Generated from protobuf field int32 seconds = 3; * @param int $var * @return $this */ public function setSeconds($var) { GPBUtil::checkInt32($var); $this->seconds = $var; return $this; } /** * Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999. * * Generated from protobuf field int32 nanos = 4; * @return int */ public function getNanos() { return $this->nanos; } /** * Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999. * * Generated from protobuf field int32 nanos = 4; * @param int $var * @return $this */ public function setNanos($var) { GPBUtil::checkInt32($var); $this->nanos = $var; return $this; } } tests/ApiCore/LongRunning/Tests/Unit/MockOperationsImpl.php000064400000003553151742740600020015 0ustar00 'unknown-service-address', 'port' => OperationsClient::DEFAULT_SERVICE_PORT, 'scopes' => ['unknown-service-scopes'], ]); return $grpcCredentialsHelper->createStub($createGrpcStub); } /** * @return OperationsClient */ private function createClient($createStubFuncName, $grpcStub, $options = []) { return new OperationsClient($options + [ $createStubFuncName => function ($hostname, $opts) use ($grpcStub) { return $grpcStub; }, 'serviceAddress' => 'unknown-service-address', 'scopes' => ['unknown-service-scopes'], ]); } /** * @test */ public function getOperationTest() { $grpcStub = $this->createStub([$this, 'createMockOperationsImpl']); $client = $this->createClient('createOperationsStubFunction', $grpcStub); $this->assertTrue($grpcStub->isExhausted()); // Mock response $name2 = 'name2-1052831874'; $done = true; $expectedResponse = new Operation(); $expectedResponse->setName($name2); $expectedResponse->setDone($done); $grpcStub->addResponse($expectedResponse); // Mock request $name = 'name3373707'; $response = $client->getOperation($name); $this->assertEquals($expectedResponse, $response); $actualRequests = $grpcStub->popReceivedCalls(); $this->assertSame(1, count($actualRequests)); $actualFuncCall = $actualRequests[0]->getFuncCall(); $actualRequestObject = $actualRequests[0]->getRequestObject(); $this->assertSame('/google.longrunning.Operations/GetOperation', $actualFuncCall); $this->assertProtobufEquals($name, $actualRequestObject->getName()); $this->assertTrue($grpcStub->isExhausted()); } /** * @test */ public function getOperationExceptionTest() { $grpcStub = $this->createStub([$this, 'createMockOperationsImpl']); $client = $this->createClient('createOperationsStubFunction', $grpcStub); $this->assertTrue($grpcStub->isExhausted()); $status = new stdClass(); $status->code = Grpc\STATUS_DATA_LOSS; $status->details = 'internal error'; $expectedExceptionMessage = json_encode([ 'message' => 'internal error', 'code' => Grpc\STATUS_DATA_LOSS, 'status' => 'DATA_LOSS', 'details' => [], ], JSON_PRETTY_PRINT); $grpcStub->addResponse(null, $status); // Mock request $name = 'name3373707'; try { $client->getOperation($name); // 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 $grpcStub->popReceivedCalls(); $this->assertTrue($grpcStub->isExhausted()); } /** * @test */ public function listOperationsTest() { $grpcStub = $this->createStub([$this, 'createMockOperationsImpl']); $client = $this->createClient('createOperationsStubFunction', $grpcStub); $this->assertTrue($grpcStub->isExhausted()); // Mock response $nextPageToken = ''; $operationsElement = new Operation(); $operations = [$operationsElement]; $expectedResponse = new ListOperationsResponse(); $expectedResponse->setNextPageToken($nextPageToken); $expectedResponse->setOperations($operations); $grpcStub->addResponse($expectedResponse); // Mock request $name = 'name3373707'; $filter = 'filter-1274492040'; $response = $client->listOperations($name, $filter); $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject()); $resources = iterator_to_array($response->iterateAllElements()); $this->assertSame(1, count($resources)); $this->assertEquals($expectedResponse->getOperations()[0], $resources[0]); $actualRequests = $grpcStub->popReceivedCalls(); $this->assertSame(1, count($actualRequests)); $actualFuncCall = $actualRequests[0]->getFuncCall(); $actualRequestObject = $actualRequests[0]->getRequestObject(); $this->assertSame('/google.longrunning.Operations/ListOperations', $actualFuncCall); $this->assertProtobufEquals($name, $actualRequestObject->getName()); $this->assertProtobufEquals($filter, $actualRequestObject->getFilter()); $this->assertTrue($grpcStub->isExhausted()); } /** * @test */ public function listOperationsExceptionTest() { $grpcStub = $this->createStub([$this, 'createMockOperationsImpl']); $client = $this->createClient('createOperationsStubFunction', $grpcStub); $this->assertTrue($grpcStub->isExhausted()); $status = new stdClass(); $status->code = Grpc\STATUS_DATA_LOSS; $status->details = 'internal error'; $expectedExceptionMessage = json_encode([ 'message' => 'internal error', 'code' => Grpc\STATUS_DATA_LOSS, 'status' => 'DATA_LOSS', 'details' => [], ], JSON_PRETTY_PRINT); $grpcStub->addResponse(null, $status); // Mock request $name = 'name3373707'; $filter = 'filter-1274492040'; try { $client->listOperations($name, $filter); // 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 $grpcStub->popReceivedCalls(); $this->assertTrue($grpcStub->isExhausted()); } /** * @test */ public function cancelOperationTest() { $grpcStub = $this->createStub([$this, 'createMockOperationsImpl']); $client = $this->createClient('createOperationsStubFunction', $grpcStub); $this->assertTrue($grpcStub->isExhausted()); // Mock response $expectedResponse = new GPBEmpty(); $grpcStub->addResponse($expectedResponse); // Mock request $name = 'name3373707'; $client->cancelOperation($name); $actualRequests = $grpcStub->popReceivedCalls(); $this->assertSame(1, count($actualRequests)); $actualFuncCall = $actualRequests[0]->getFuncCall(); $actualRequestObject = $actualRequests[0]->getRequestObject(); $this->assertSame('/google.longrunning.Operations/CancelOperation', $actualFuncCall); $this->assertProtobufEquals($name, $actualRequestObject->getName()); $this->assertTrue($grpcStub->isExhausted()); } /** * @test */ public function cancelOperationExceptionTest() { $grpcStub = $this->createStub([$this, 'createMockOperationsImpl']); $client = $this->createClient('createOperationsStubFunction', $grpcStub); $this->assertTrue($grpcStub->isExhausted()); $status = new stdClass(); $status->code = Grpc\STATUS_DATA_LOSS; $status->details = 'internal error'; $expectedExceptionMessage = json_encode([ 'message' => 'internal error', 'code' => Grpc\STATUS_DATA_LOSS, 'status' => 'DATA_LOSS', 'details' => [], ], JSON_PRETTY_PRINT); $grpcStub->addResponse(null, $status); // Mock request $name = 'name3373707'; try { $client->cancelOperation($name); // 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 $grpcStub->popReceivedCalls(); $this->assertTrue($grpcStub->isExhausted()); } /** * @test */ public function deleteOperationTest() { $grpcStub = $this->createStub([$this, 'createMockOperationsImpl']); $client = $this->createClient('createOperationsStubFunction', $grpcStub); $this->assertTrue($grpcStub->isExhausted()); // Mock response $expectedResponse = new GPBEmpty(); $grpcStub->addResponse($expectedResponse); // Mock request $name = 'name3373707'; $client->deleteOperation($name); $actualRequests = $grpcStub->popReceivedCalls(); $this->assertSame(1, count($actualRequests)); $actualFuncCall = $actualRequests[0]->getFuncCall(); $actualRequestObject = $actualRequests[0]->getRequestObject(); $this->assertSame('/google.longrunning.Operations/DeleteOperation', $actualFuncCall); $this->assertProtobufEquals($name, $actualRequestObject->getName()); $this->assertTrue($grpcStub->isExhausted()); } /** * @test */ public function deleteOperationExceptionTest() { $grpcStub = $this->createStub([$this, 'createMockOperationsImpl']); $client = $this->createClient('createOperationsStubFunction', $grpcStub); $this->assertTrue($grpcStub->isExhausted()); $status = new stdClass(); $status->code = Grpc\STATUS_DATA_LOSS; $status->details = 'internal error'; $expectedExceptionMessage = json_encode([ 'message' => 'internal error', 'code' => Grpc\STATUS_DATA_LOSS, 'status' => 'DATA_LOSS', 'details' => [], ], JSON_PRETTY_PRINT); $grpcStub->addResponse(null, $status); // Mock request $name = 'name3373707'; try { $client->deleteOperation($name); // 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 $grpcStub->popReceivedCalls(); $this->assertTrue($grpcStub->isExhausted()); } } tests/ApiCore/Tests/Unit/AgentHeaderDescriptorTest.php000064400000007705151742740600017047 0ustar00 [ 'gl-php/' . phpversion() . ' gapic/' . ' gax/' . AgentHeaderDescriptor::API_CORE_VERSION . ' grpc/' . phpversion('grpc') ]]; $agentHeaderDescriptor = new AgentHeaderDescriptor([]); $header = $agentHeaderDescriptor->getHeader(); $this->assertSame($expectedHeader, $header); } public function testWithInput() { $expectedHeader = [AgentHeaderDescriptor::AGENT_HEADER_KEY => [ 'gl-php/4.4.4 gccl/1.1.1 gapic/2.2.2 gax/3.3.3 grpc/5.5.5' ]]; $agentHeaderDescriptor = new AgentHeaderDescriptor([ 'libName' => 'gccl', 'libVersion' => '1.1.1', 'gapicVersion' => '2.2.2', 'apiCoreVersion' => '3.3.3', 'phpVersion' => '4.4.4', 'grpcVersion' => '5.5.5', ]); $header = $agentHeaderDescriptor->getHeader(); $this->assertSame($expectedHeader, $header); } public function testWithoutVersionInput() { $expectedHeader = [AgentHeaderDescriptor::AGENT_HEADER_KEY => [ 'gl-php/' . phpversion() . ' gccl/ gapic/ gax/' . AgentHeaderDescriptor::API_CORE_VERSION . ' grpc/' . phpversion('grpc') ]]; $agentHeaderDescriptor = new AgentHeaderDescriptor([ 'libName' => 'gccl', ]); $header = $agentHeaderDescriptor->getHeader(); $this->assertSame($expectedHeader, $header); } public function testWithNullVersionInput() { $expectedHeader = [AgentHeaderDescriptor::AGENT_HEADER_KEY => [ 'gl-php/' . phpversion() . ' gccl/ gapic/ gax/' . AgentHeaderDescriptor::API_CORE_VERSION . ' grpc/' . phpversion('grpc') ]]; $agentHeaderDescriptor = new AgentHeaderDescriptor([ 'libName' => 'gccl', 'libVersion' => null, 'gapicVersion' => null, 'apiCoreVersion' => null, 'phpVersion' => null, 'grpcVersion' => null, ]); $header = $agentHeaderDescriptor->getHeader(); $this->assertSame($expectedHeader, $header); } } tests/ApiCore/Tests/Unit/ApiCallableTest.php000064400000164144151742740600014773 0ustar00 'fake_callback']; $response = "response"; $stub = MockStub::create($response); $callSettings = new CallSettings([]); $apiCall = ApiCallable::createApiCall($stub, 'takeAction', $callSettings); $actualResponse = $apiCall($request, $metadata, $options); $this->assertEquals($response, $actualResponse); $actualCalls = $stub->popReceivedCalls(); $this->assertEquals(1, count($actualCalls)); $this->assertEquals($request, $actualCalls[0]->getRequestObject()); $this->assertEquals($metadata, $actualCalls[0]->getMetadata()); $this->assertEquals($options, $actualCalls[0]->getOptions()); } public function testTimeout() { $request = "request"; $response = "response"; $stub = MockStub::create($response); $retrySettings = new RetrySettings([ 'initialRetryDelayMillis' => 100, 'retryDelayMultiplier' => 1.3, 'maxRetryDelayMillis' => 400, 'initialRpcTimeoutMillis' => 150, 'rpcTimeoutMultiplier' => 2, 'maxRpcTimeoutMillis' => 600, 'totalTimeoutMillis' => 2000, 'retryableCodes' => [], 'noRetriesRpcTimeoutMillis' => 1500 ]); $callSettings = new CallSettings([ 'retrySettings' => $retrySettings ]); $apiCall = ApiCallable::createApiCall($stub, 'takeAction', $callSettings); $actualResponse = $apiCall($request, [], []); $this->assertEquals($response, $actualResponse); $actualCalls = $stub->popReceivedCalls(); $this->assertEquals(1, count($actualCalls)); $this->assertEquals($request, $actualCalls[0]->getRequestObject()); $this->assertEquals([], $actualCalls[0]->getMetadata()); $this->assertEquals(['timeout' => 1500000], $actualCalls[0]->getOptions()); } public function testRetryNoRetryableCode() { $request = "request"; $response = "response"; $status = new MockStatus(Code::DEADLINE_EXCEEDED, 'Deadline Exceeded'); $stub = MockStub::createWithResponseSequence([[$response, $status]]); $retrySettings = new RetrySettings([ 'initialRetryDelayMillis' => 100, 'retryDelayMultiplier' => 1.3, 'maxRetryDelayMillis' => 400, 'initialRpcTimeoutMillis' => 150, 'rpcTimeoutMultiplier' => 2, 'maxRpcTimeoutMillis' => 600, 'totalTimeoutMillis' => 2000, 'retryableCodes' => [], ]); $callSettings = new CallSettings(['retrySettings' => $retrySettings]); $isExceptionRaised = false; try { $apiCall = ApiCallable::createApiCall($stub, 'takeAction', $callSettings); $response = $apiCall($request, [], []); } catch (\Exception $e) { $isExceptionRaised = true; } $actualCalls = $stub->popReceivedCalls(); $this->assertEquals(1, count($actualCalls)); $this->assertEquals($request, $actualCalls[0]->getRequestObject()); $this->assertTrue($isExceptionRaised); } public function testRetryBackoff() { $request = "request"; $responseA = "requestA"; $responseB = "requestB"; $responseC = "requestC"; $responseSequence = [ [$responseA, new MockStatus(Code::DEADLINE_EXCEEDED, 'Deadline Exceeded')], [$responseB, new MockStatus(Code::DEADLINE_EXCEEDED, 'Deadline Exceeded')], [$responseC, new MockStatus(Code::OK, '')] ]; $stub = MockStub::createWithResponseSequence($responseSequence); $retrySettings = new RetrySettings([ 'initialRetryDelayMillis' => 100, 'retryDelayMultiplier' => 1.3, 'maxRetryDelayMillis' => 400, 'initialRpcTimeoutMillis' => 150, 'rpcTimeoutMultiplier' => 2, 'maxRpcTimeoutMillis' => 500, 'totalTimeoutMillis' => 2000, 'retryableCodes' => [ApiStatus::DEADLINE_EXCEEDED], ]); $callSettings = new CallSettings(['retrySettings' => $retrySettings]); $apiCall = ApiCallable::createApiCall($stub, 'takeAction', $callSettings); $actualResponse = $apiCall($request, [], []); $this->assertEquals($responseC, $actualResponse); $actualCalls = $stub->popReceivedCalls(); $this->assertEquals(3, count($actualCalls)); $this->assertEquals($request, $actualCalls[0]->getRequestObject()); $this->assertEquals(['timeout' => 150000], $actualCalls[0]->getOptions()); $this->assertEquals($request, $actualCalls[1]->getRequestObject()); $this->assertEquals(['timeout' => 300000], $actualCalls[1]->getOptions()); $this->assertEquals($request, $actualCalls[2]->getRequestObject()); $this->assertEquals(['timeout' => 500000], $actualCalls[2]->getOptions()); } public function testRetryTimeoutExceeds() { $request = "request"; $response = "response"; $status = new MockStatus(Code::DEADLINE_EXCEEDED, 'Deadline Exceeded'); $stub = MockStub::createWithResponseSequence([ [$response, $status], [$response, $status], [$response, $status] ]); $retrySettings = new RetrySettings([ 'initialRetryDelayMillis' => 1000, 'retryDelayMultiplier' => 1.3, 'maxRetryDelayMillis' => 4000, 'initialRpcTimeoutMillis' => 150, 'rpcTimeoutMultiplier' => 2, 'maxRpcTimeoutMillis' => 600, 'totalTimeoutMillis' => 3000, 'retryableCodes' => [ApiStatus::DEADLINE_EXCEEDED], ]); $callSettings = new CallSettings(['retrySettings' => $retrySettings]); // Use time function that simulates 1100ms elapsing with each call to the stub $incrementMillis = 1100; $elapsed = 0; $timeFuncMillis = function () use ($stub, $incrementMillis, $elapsed) { $actualCalls = $stub->getReceivedCallCount(); return $actualCalls * $incrementMillis; }; $raisedException = null; try { $apiCall = ApiCallable::createApiCall( $stub, 'takeAction', $callSettings, ['timeFuncMillis' => $timeFuncMillis] ); $response = $apiCall($request, [], []); } catch (ApiException $e) { $raisedException = $e; } $actualCalls = $stub->popReceivedCalls(); $this->assertEquals(3, count($actualCalls)); $this->assertEquals($request, $actualCalls[0]->getRequestObject()); $this->assertTrue(!empty($raisedException)); $this->assertEquals(Code::DEADLINE_EXCEEDED, $raisedException->getCode()); } public function testRetryTimeoutExceedsRealTime() { $request = "request"; $response = "response"; $stub = MockStub::createWithResponseSequence([]); $retrySettings = new RetrySettings([ 'initialRetryDelayMillis' => 10, 'retryDelayMultiplier' => 1, 'maxRetryDelayMillis' => 10, 'initialRpcTimeoutMillis' => 350, 'rpcTimeoutMultiplier' => 1, 'maxRpcTimeoutMillis' => 350, 'totalTimeoutMillis' => 1000, 'retryableCodes' => [ApiStatus::DEADLINE_EXCEEDED], ]); $callSettings = new CallSettings(['retrySettings' => $retrySettings]); $raisedException = null; try { $apiCall = ApiCallable::createApiCall($stub, 'methodThatSleeps', $callSettings); $response = $apiCall($request, [], []); } catch (ApiException $e) { $raisedException = $e; } $actualCalls = $stub->popReceivedCalls(); $this->assertEquals(3, count($actualCalls)); $this->assertEquals($request, $actualCalls[0]->getRequestObject()); $this->assertTrue(!empty($raisedException)); $this->assertEquals(Code::DEADLINE_EXCEEDED, $raisedException->getCode()); } public function testPageStreamingDirectIterationNoTimeout() { $request = MockPageStreamingRequest::createPageStreamingRequest('token'); $responseA = MockPageStreamingResponse::createPageStreamingResponse('nextPageToken1', ['resource1']); $responseB = MockPageStreamingResponse::createPageStreamingResponse('nextPageToken2', ['resource2']); $responseC = MockPageStreamingResponse::createPageStreamingResponse(null, ['resource3', 'resource4']); $responseSequence = [ [$responseA, new MockStatus(Code::OK, '')], [$responseB, new MockStatus(Code::OK, '')], [$responseC, new MockStatus(Code::OK, '')] ]; $stub = MockStub::createWithResponseSequence($responseSequence); $descriptor = PageStreamingDescriptor::createFromFields([ 'requestPageTokenField' => 'pageToken', 'responsePageTokenField' => 'nextPageToken', 'resourceField' => 'resourcesList' ]); $callSettings = new CallSettings(); $apiCall = ApiCallable::createApiCall( $stub, 'takeAction', $callSettings, ['pageStreamingDescriptor' => $descriptor] ); $response = $apiCall($request, [], []); $actualCalls = $stub->popReceivedCalls(); $this->assertEquals(1, count($actualCalls)); $actualResources = []; foreach ($response->iterateAllElements() as $element) { array_push($actualResources, $element); } $actualCalls = array_merge($actualCalls, $stub->popReceivedCalls()); $this->assertEquals(3, count($actualCalls)); $this->assertEquals(['resource1', 'resource2', 'resource3', 'resource4'], $actualResources); } public function testPageStreamingPageIterationNoTimeout() { $request = MockPageStreamingRequest::createPageStreamingRequest('token'); $responseA = MockPageStreamingResponse::createPageStreamingResponse('nextPageToken1', ['resource1']); $responseB = MockPageStreamingResponse::createPageStreamingResponse('nextPageToken2', ['resource2']); $responseC = MockPageStreamingResponse::createPageStreamingResponse(null, ['resource3', 'resource4']); $responseSequence = [ [$responseA, new MockStatus(Code::OK, '')], [$responseB, new MockStatus(Code::OK, '')], [$responseC, new MockStatus(Code::OK, '')] ]; $stub = MockStub::createWithResponseSequence($responseSequence); $descriptor = PageStreamingDescriptor::createFromFields([ 'requestPageTokenField' => 'pageToken', 'responsePageTokenField' => 'nextPageToken', 'resourceField' => 'resourcesList' ]); $callSettings = new CallSettings(); $apiCall = ApiCallable::createApiCall( $stub, 'takeAction', $callSettings, ['pageStreamingDescriptor' => $descriptor] ); /** @var PagedListResponse $response */ $response = $apiCall($request, [], []); $actualCalls = $stub->popReceivedCalls(); $this->assertEquals(1, count($actualCalls)); $actualResources = []; $actualTokens = []; foreach ($response->iteratePages() as $page) { array_push($actualTokens, $page->getRequestObject()->getPageToken()); foreach ($page as $element) { array_push($actualResources, $element); } } $actualCalls = array_merge($actualCalls, $stub->popReceivedCalls()); $this->assertEquals(3, count($actualCalls)); $this->assertEquals(['resource1', 'resource2', 'resource3', 'resource4'], $actualResources); $this->assertEquals( ['token', 'nextPageToken1', 'nextPageToken2'], $actualTokens ); } public function testPageStreamingFixedSizeIterationNoTimeout() { $request = MockPageStreamingRequest::createPageStreamingRequest('token', 2); $responseA = MockPageStreamingResponse::createPageStreamingResponse('nextPageToken1', ['resource1']); $responseB = MockPageStreamingResponse::createPageStreamingResponse('nextPageToken2', ['resource2']); $responseC = MockPageStreamingResponse::createPageStreamingResponse(null, ['resource3', 'resource4']); $responseSequence = [ [$responseA, new MockStatus(Code::OK, '')], [$responseB, new MockStatus(Code::OK, '')], [$responseC, new MockStatus(Code::OK, '')] ]; $stub = MockStub::createWithResponseSequence($responseSequence); $descriptor = PageStreamingDescriptor::createFromFields([ 'requestPageTokenField' => 'pageToken', 'requestPageSizeField' => 'pageSize', 'responsePageTokenField' => 'nextPageToken', 'resourceField' => 'resourcesList' ]); $collectionSize = 2; $callSettings = new CallSettings(); $apiCall = ApiCallable::createApiCall( $stub, 'takeAction', $callSettings, ['pageStreamingDescriptor' => $descriptor] ); $response = $apiCall($request, [], []); $actualCalls = $stub->popReceivedCalls(); $this->assertEquals(1, count($actualCalls)); $actualResources = []; $collectionCount = 0; foreach ($response->iterateFixedSizeCollections($collectionSize) as $collection) { $collectionCount += 1; foreach ($collection as $element) { array_push($actualResources, $element); } } $actualCalls = array_merge($actualCalls, $stub->popReceivedCalls()); $this->assertEquals(3, count($actualCalls)); $this->assertEquals(2, $collectionCount); $this->assertEquals(['resource1', 'resource2', 'resource3', 'resource4'], $actualResources); } /** * @expectedException \Google\ApiCore\ValidationException * @expectedExceptionMessage FixedSizeCollection is not supported */ public function testPageStreamingFixedSizeFailPageSizeNotSupported() { $request = MockPageStreamingRequest::createPageStreamingRequest('token'); $responseA = MockPageStreamingResponse::createPageStreamingResponse('nextPageToken1', ['resource1']); $responseSequence = [ [$responseA, new MockStatus(Code::OK, '')], ]; $stub = MockStub::createWithResponseSequence($responseSequence); $descriptor = PageStreamingDescriptor::createFromFields([ 'requestPageTokenField' => 'pageToken', 'responsePageTokenField' => 'nextPageToken', 'resourceField' => 'resourcesList' ]); $collectionSize = 2; $callSettings = new CallSettings(); $apiCall = ApiCallable::createApiCall( $stub, 'takeAction', $callSettings, ['pageStreamingDescriptor' => $descriptor] ); $response = $apiCall($request, [], []); $response->expandToFixedSizeCollection($collectionSize); } /** * @expectedException \Google\ApiCore\ValidationException * @expectedExceptionMessage No page size parameter found */ public function testPageStreamingFixedSizeFailPageSizeNotSet() { $request = MockPageStreamingRequest::createPageStreamingRequest('token'); $responseA = MockPageStreamingResponse::createPageStreamingResponse('nextPageToken1', ['resource1']); $responseSequence = [ [$responseA, new MockStatus(Code::OK, '')], ]; $stub = MockStub::createWithResponseSequence($responseSequence); $descriptor = PageStreamingDescriptor::createFromFields([ 'requestPageTokenField' => 'pageToken', 'requestPageSizeField' => 'pageSize', 'responsePageTokenField' => 'nextPageToken', 'resourceField' => 'resourcesList' ]); $collectionSize = 2; $callSettings = new CallSettings(); $apiCall = ApiCallable::createApiCall( $stub, 'takeAction', $callSettings, ['pageStreamingDescriptor' => $descriptor] ); $response = $apiCall($request, [], []); $response->expandToFixedSizeCollection($collectionSize); } /** * @expectedException \Google\ApiCore\ValidationException * @expectedExceptionMessage collectionSize parameter is less than the page size */ public function testPageStreamingFixedSizeFailPageSizeTooLarge() { $collectionSize = 2; $request = MockPageStreamingRequest::createPageStreamingRequest('token', $collectionSize + 1); $responseA = MockPageStreamingResponse::createPageStreamingResponse('nextPageToken1', ['resource1']); $responseSequence = [ [$responseA, new MockStatus(Code::OK, '')] ]; $stub = MockStub::createWithResponseSequence($responseSequence); $descriptor = PageStreamingDescriptor::createFromFields([ 'requestPageTokenField' => 'pageToken', 'requestPageSizeField' => 'pageSize', 'responsePageTokenField' => 'nextPageToken', 'resourceField' => 'resourcesList' ]); $callSettings = new CallSettings(); $apiCall = ApiCallable::createApiCall( $stub, 'takeAction', $callSettings, ['pageStreamingDescriptor' => $descriptor] ); $response = $apiCall($request, [], []); $response->expandToFixedSizeCollection($collectionSize); } public function testPageStreamingWithTimeout() { $request = MockPageStreamingRequest::createPageStreamingRequest('token'); $responseA = MockPageStreamingResponse::createPageStreamingResponse('nextPageToken1', ['resource1']); $responseB = MockPageStreamingResponse::createPageStreamingResponse('nextPageToken2', ['resource2']); $responseC = MockPageStreamingResponse::createPageStreamingResponse(null, ['resource3', 'resource4']); $responseSequence = [ [$responseA, new MockStatus(Code::OK, '')], [$responseB, new MockStatus(Code::OK, '')], [$responseC, new MockStatus(Code::OK, '')] ]; $stub = MockStub::createWithResponseSequence($responseSequence); $descriptor = PageStreamingDescriptor::createFromFields([ 'requestPageTokenField' => 'pageToken', 'responsePageTokenField' => 'nextPageToken', 'resourceField' => 'resourcesList' ]); $callSettings = new CallSettings(['timeout' => 1000]); $apiCall = ApiCallable::createApiCall( $stub, 'takeAction', $callSettings, ['pageStreamingDescriptor' => $descriptor] ); $response = $apiCall($request, [], []); $actualCalls = $stub->popReceivedCalls(); $this->assertEquals(1, count($actualCalls)); $actualResources = []; foreach ($response->iterateAllElements() as $element) { array_push($actualResources, $element); } $actualCalls = array_merge($actualCalls, $stub->popReceivedCalls()); $this->assertEquals(3, count($actualCalls)); $this->assertEquals(['resource1', 'resource2', 'resource3', 'resource4'], $actualResources); } public function testCustomHeader() { $stub = MockStub::create(new MockPageStreamingResponse()); $headerDescriptor = new AgentHeaderDescriptor([ 'libName' => 'gccl', 'libVersion' => '0.0.0', 'gapicVersion' => '0.9.0', 'apiCoreVersion' => '1.0.0', 'phpVersion' => '5.5.0', 'grpcVersion' => '1.0.1' ]); $apiCall = ApiCallable::createApiCall( $stub, 'takeAction', new CallSettings(), ['headerDescriptor' => $headerDescriptor] ); $resources = $apiCall(new MockPageStreamingRequest(), [], []); $actualCalls = $stub->popReceivedCalls(); $this->assertEquals(1, count($actualCalls)); $expectedMetadata = [ 'x-goog-api-client' => ['gl-php/5.5.0 gccl/0.0.0 gapic/0.9.0 gax/1.0.0 grpc/1.0.1'] ]; $this->assertEquals($expectedMetadata, $actualCalls[0]->getMetadata()); } public function testUserHeaders() { $stub = MockStub::create(new MockPageStreamingResponse()); $headerDescriptor = new AgentHeaderDescriptor([ 'libName' => 'gccl', 'libVersion' => '0.0.0', 'gapicVersion' => '0.9.0', 'apiCoreVersion' => '1.0.0', 'phpVersion' => '5.5.0', 'grpcVersion' => '1.0.1' ]); $userHeaders = [ 'google-cloud-resource-prefix' => ['my-database'], ]; $callSettings = new CallSettings([ 'userHeaders' => $userHeaders, ]); $apiCall = ApiCallable::createApiCall( $stub, 'takeAction', $callSettings, ['headerDescriptor' => $headerDescriptor] ); $resources = $apiCall(new MockPageStreamingRequest(), [], []); $actualCalls = $stub->popReceivedCalls(); $this->assertEquals(1, count($actualCalls)); $expectedMetadata = [ 'x-goog-api-client' => ['gl-php/5.5.0 gccl/0.0.0 gapic/0.9.0 gax/1.0.0 grpc/1.0.1'], 'google-cloud-resource-prefix' => ['my-database'], ]; $this->assertEquals($expectedMetadata, $actualCalls[0]->getMetadata()); } public function testUserHeadersOverwriteBehavior() { $stub = MockStub::create(new MockPageStreamingResponse()); $headerDescriptor = new AgentHeaderDescriptor([ 'libName' => 'gccl', 'libVersion' => '0.0.0', 'gapicVersion' => '0.9.0', 'apiCoreVersion' => '1.0.0', 'phpVersion' => '5.5.0', 'grpcVersion' => '1.0.1' ]); $userHeaders = [ 'x-goog-api-client' => ['this-should-not-be-used'], 'new-header' => ['this-should-be-used'] ]; $callSettings = new CallSettings([ 'userHeaders' => $userHeaders, ]); $apiCall = ApiCallable::createApiCall( $stub, 'takeAction', $callSettings, ['headerDescriptor' => $headerDescriptor] ); $resources = $apiCall(new MockPageStreamingRequest(), [], []); $actualCalls = $stub->popReceivedCalls(); $this->assertEquals(1, count($actualCalls)); $expectedMetadata = [ 'x-goog-api-client' => ['gl-php/5.5.0 gccl/0.0.0 gapic/0.9.0 gax/1.0.0 grpc/1.0.1'], 'new-header' => ['this-should-be-used'], ]; $this->assertEquals($expectedMetadata, $actualCalls[0]->getMetadata()); } public static function createIncompleteOperationResponse($name, $metadataString = '') { $metadata = OperationResponseTest::createAny(OperationResponseTest::createStatus(Code::OK, $metadataString)); $op = new Operation(); $op->setName($name); $op->setMetadata($metadata); $op->setDone(false); return $op; } public static function createSuccessfulOperationResponse($name, $response, $metadataString = '') { $op = self::createIncompleteOperationResponse($name, $metadataString); $op->setDone(true); $any = OperationResponseTest::createAny($response); $op->setResponse($any); return $op; } public static function createFailedOperationResponse($name, $code, $message, $metadataString = '') { $error = OperationResponseTest::createStatus($code, $message); $op = self::createIncompleteOperationResponse($name, $metadataString); $op->setDone(true); $op->setError($error); return $op; } public function testLongRunningSuccess() { $opName = 'operation/someop'; $request = null; $result = OperationResponseTest::createStatus(Code::OK, 'someMessage'); $initialResponse = self::createIncompleteOperationResponse($opName, 'm1'); $responseA = self::createIncompleteOperationResponse($opName, 'm2'); $responseB = self::createSuccessfulOperationResponse($opName, $result, 'm3'); $responseSequence = [ [$responseA, new MockStatus(Code::OK, '')], [$responseB, new MockStatus(Code::OK, '')], ]; $callStub = MockStub::createWithResponseSequence( [[$initialResponse, new MockStatus(Code::OK, '')]], ['\Google\LongRunning\Operation', 'mergeFromString'] ); $opStub = MockStub::createWithResponseSequence( $responseSequence, ['\Google\LongRunning\Operation', 'mergeFromString'] ); $opClient = OperationResponseTest::createOperationsClient($opStub); $descriptor = [ 'operationsClient' => $opClient, 'operationReturnType' => '\Google\Rpc\Status', 'metadataReturnType' => '\Google\Rpc\Status', ]; $callSettings = new CallSettings(); $apiCall = ApiCallable::createApiCall( $callStub, 'takeAction', $callSettings, ['longRunningDescriptor' => $descriptor] ); /* @var $response \Google\ApiCore\OperationResponse */ $response = $apiCall($request, [], []); $results = [$response->getResult()]; $errors = [$response->getError()]; $metadataResponses = [$response->getMetadata()]; $isDoneResponses = [$response->isDone()]; $apiReceivedCalls = $callStub->popReceivedCalls(); $opReceivedCallsEmpty = $opStub->popReceivedCalls(); $this->assertSame(1, count($apiReceivedCalls)); $this->assertSame(0, count($opReceivedCallsEmpty)); while (!$response->isDone()) { $response->reload(); $results[] = $response->getResult(); $errors[] = $response->getError(); $metadataResponses[] = $response->getMetadata(); $isDoneResponses[] = $response->isDone(); } $apiReceivedCallsEmpty = $callStub->popReceivedCalls(); $opReceivedCalls = $opStub->popReceivedCalls(); $this->assertSame(0, count($apiReceivedCallsEmpty)); $this->assertSame(2, count($opReceivedCalls)); $this->assertSame('takeAction', $apiReceivedCalls[0]->getFuncCall()); $this->assertSame('GetOperation', $opReceivedCalls[0]->getFuncCall()); $this->assertSame('GetOperation', $opReceivedCalls[1]->getFuncCall()); $this->assertEquals([null, null, OperationResponseTest::createStatus(Code::OK, 'someMessage')], $results); $this->assertEquals([null, null, null], $errors); $this->assertEquals([ OperationResponseTest::createStatus(Code::OK, 'm1'), OperationResponseTest::createStatus(Code::OK, 'm2'), OperationResponseTest::createStatus(Code::OK, 'm3') ], $metadataResponses); $this->assertEquals([false, false, true], $isDoneResponses); } public function testLongRunningPollingInterval() { $opName = 'operation/someop'; $request = null; $result = OperationResponseTest::createStatus(Code::OK, 'someMessage'); $initialResponse = self::createIncompleteOperationResponse($opName, 'm1'); $responseA = self::createIncompleteOperationResponse($opName, 'm2'); $responseB = self::createSuccessfulOperationResponse($opName, $result, 'm3'); $responseSequence = [ [$responseA, new MockStatus(Code::OK, '')], [$responseB, new MockStatus(Code::OK, '')], ]; $callStub = MockStub::createWithResponseSequence( [[$initialResponse, new MockStatus(Code::OK, '')]], ['\Google\LongRunning\Operation', 'mergeFromString'] ); $opStub = MockStub::createWithResponseSequence( $responseSequence, ['\Google\LongRunning\Operation', 'mergeFromString'] ); $opClient = OperationResponseTest::createOperationsClient($opStub); $descriptor = [ 'operationsClient' => $opClient, 'operationReturnType' => '\Google\Rpc\Status', 'metadataReturnType' => '\Google\Rpc\Status', ]; $callSettings = new CallSettings(); $apiCall = ApiCallable::createApiCall( $callStub, 'takeAction', $callSettings, ['longRunningDescriptor' => $descriptor] ); /* @var $response \Google\ApiCore\OperationResponse */ $response = $apiCall($request, [], []); $apiReceivedCalls = $callStub->popReceivedCalls(); $opReceivedCallsEmpty = $opStub->popReceivedCalls(); $this->assertSame(1, count($apiReceivedCalls)); $this->assertSame(0, count($opReceivedCallsEmpty)); $complete = $response->pollUntilComplete(['pollingIntervalSeconds' => 0.1]); $this->assertTrue($complete); $this->assertTrue($response->isDone()); $apiReceivedCallsEmpty = $callStub->popReceivedCalls(); $opReceivedCalls = $opStub->popReceivedCalls(); $this->assertSame(0, count($apiReceivedCallsEmpty)); $this->assertSame(2, count($opReceivedCalls)); $this->assertSame('takeAction', $apiReceivedCalls[0]->getFuncCall()); $this->assertSame('GetOperation', $opReceivedCalls[0]->getFuncCall()); $this->assertSame('GetOperation', $opReceivedCalls[1]->getFuncCall()); $this->assertEquals( OperationResponseTest::createStatus(Code::OK, 'someMessage'), $response->getResult() ); $this->assertNull($response->getError()); $this->assertEquals( OperationResponseTest::createStatus(Code::OK, 'm3'), $response->getMetadata() ); } public function testLongRunningMaxPollingDuration() { $opName = 'operation/someop'; $request = null; $result = OperationResponseTest::createStatus(Code::OK, 'someMessage'); $initialResponse = self::createIncompleteOperationResponse($opName, 'm1'); $responseA = self::createIncompleteOperationResponse($opName, 'm2'); $responseB = self::createIncompleteOperationResponse($opName, 'm3'); $responseSequence = [ [$responseA, new MockStatus(Code::OK, '')], [$responseB, new MockStatus(Code::OK, '')], ]; $callStub = MockStub::createWithResponseSequence( [[$initialResponse, new MockStatus(Code::OK, '')]], ['\Google\LongRunning\Operation', 'mergeFromString'] ); $opStub = MockStub::createWithResponseSequence( $responseSequence, ['\Google\LongRunning\Operation', 'mergeFromString'] ); $opClient = OperationResponseTest::createOperationsClient($opStub); $descriptor = [ 'operationsClient' => $opClient, 'operationReturnType' => '\Google\Rpc\Status', 'metadataReturnType' => '\Google\Rpc\Status', ]; $callSettings = new CallSettings(); $apiCall = ApiCallable::createApiCall( $callStub, 'takeAction', $callSettings, ['longRunningDescriptor' => $descriptor] ); /* @var $response \Google\ApiCore\OperationResponse */ $response = $apiCall($request, [], []); $apiReceivedCalls = $callStub->popReceivedCalls(); $opReceivedCallsEmpty = $opStub->popReceivedCalls(); $this->assertSame(1, count($apiReceivedCalls)); $this->assertSame(0, count($opReceivedCallsEmpty)); $complete = $response->pollUntilComplete([ 'pollingIntervalSeconds' => 0.1, 'maxPollingDurationSeconds' => 0.15, ]); $this->assertFalse($complete); $this->assertFalse($response->isDone()); $apiReceivedCallsEmpty = $callStub->popReceivedCalls(); $opReceivedCalls = $opStub->popReceivedCalls(); $this->assertSame(0, count($apiReceivedCallsEmpty)); $this->assertSame(2, count($opReceivedCalls)); $this->assertSame('takeAction', $apiReceivedCalls[0]->getFuncCall()); $this->assertSame('GetOperation', $opReceivedCalls[0]->getFuncCall()); $this->assertNull($response->getResult()); $this->assertNull($response->getError()); $this->assertEquals( OperationResponseTest::createStatus(Code::OK, 'm3'), $response->getMetadata() ); } public function testLongRunningFailure() { $opName = 'operation/someop'; $request = null; $initialResponse = self::createIncompleteOperationResponse($opName, 'm1'); $responseA = self::createIncompleteOperationResponse($opName, 'm2'); $responseB = self::createFailedOperationResponse($opName, Code::UNKNOWN, 'someError', 'm3'); $responseSequence = [ [$responseA, new MockStatus(Code::OK, '')], [$responseB, new MockStatus(Code::OK, '')], ]; $callStub = MockStub::createWithResponseSequence( [[$initialResponse, new MockStatus(Code::OK, '')]], ['\Google\LongRunning\Operation', 'mergeFromString'] ); $opStub = MockStub::createWithResponseSequence( $responseSequence, ['\Google\LongRunning\Operation', 'mergeFromString'] ); $opClient = OperationResponseTest::createOperationsClient($opStub); $descriptor = [ 'operationsClient' => $opClient, 'operationReturnType' => '\Google\Rpc\Status', 'metadataReturnType' => '\Google\Rpc\Status', ]; $callSettings = new CallSettings(); $apiCall = ApiCallable::createApiCall( $callStub, 'takeAction', $callSettings, ['longRunningDescriptor' => $descriptor] ); /* @var $response \Google\ApiCore\OperationResponse */ $response = $apiCall($request, [], []); $results = [$response->getResult()]; $errors = [$response->getError()]; $metadataResponses = [$response->getMetadata()]; $isDoneResponses = [$response->isDone()]; $apiReceivedCalls = $callStub->popReceivedCalls(); $opReceivedCallsEmpty = $opStub->popReceivedCalls(); $this->assertSame(1, count($apiReceivedCalls)); $this->assertSame(0, count($opReceivedCallsEmpty)); while (!$response->isDone()) { $response->reload(); $results[] = $response->getResult(); $errors[] = $response->getError(); $metadataResponses[] = $response->getMetadata(); $isDoneResponses[] = $response->isDone(); } $apiReceivedCallsEmpty = $callStub->popReceivedCalls(); $opReceivedCalls = $opStub->popReceivedCalls(); $this->assertSame(0, count($apiReceivedCallsEmpty)); $this->assertSame(2, count($opReceivedCalls)); $this->assertSame('takeAction', $apiReceivedCalls[0]->getFuncCall()); $this->assertSame('GetOperation', $opReceivedCalls[0]->getFuncCall()); $this->assertSame('GetOperation', $opReceivedCalls[1]->getFuncCall()); $this->assertEquals([null, null, null], $results); $this->assertEquals( [null, null, OperationResponseTest::createStatus(Code::UNKNOWN, 'someError')], $errors ); $this->assertEquals([ OperationResponseTest::createStatus(Code::OK, 'm1'), OperationResponseTest::createStatus(Code::OK, 'm2'), OperationResponseTest::createStatus(Code::OK, 'm3') ], $metadataResponses); $this->assertEquals([false, false, true], $isDoneResponses); } public function testLongRunningCancel() { $opName = 'operation/someop'; $request = null; $initialResponse = self::createIncompleteOperationResponse($opName, 'm1'); $responseA = self::createIncompleteOperationResponse($opName, 'm2'); $responseB = self::createFailedOperationResponse( $opName, Code::CANCELLED, 'someError', 'm3' ); $responseSequence = [ [new GPBEmpty(), new MockStatus(Code::OK, '')], [$responseA, new MockStatus(Code::OK, '')], [$responseB, new MockStatus(Code::OK, '')], ]; $callStub = MockStub::createWithResponseSequence( [[$initialResponse, new MockStatus(Code::OK, '')]], ['\Google\LongRunning\Operation', 'mergeFromString'] ); $opStub = MockStub::createWithResponseSequence( $responseSequence, ['\Google\LongRunning\Operation', 'mergeFromString'] ); $opClient = OperationResponseTest::createOperationsClient($opStub); $descriptor = [ 'operationsClient' => $opClient, 'operationReturnType' => '\Google\Rpc\Status', 'metadataReturnType' => '\Google\Rpc\Status', ]; $callSettings = new CallSettings(); $apiCall = ApiCallable::createApiCall( $callStub, 'takeAction', $callSettings, ['longRunningDescriptor' => $descriptor] ); /* @var $response \Google\ApiCore\OperationResponse */ $response = $apiCall($request, [], []); $apiReceivedCalls = $callStub->popReceivedCalls(); $opReceivedCallsEmpty = $opStub->popReceivedCalls(); $this->assertSame(1, count($apiReceivedCalls)); $this->assertSame(0, count($opReceivedCallsEmpty)); $response->cancel(); $apiReceivedCallsEmpty = $callStub->popReceivedCalls(); $opReceivedCalls = $opStub->popReceivedCalls(); $this->assertSame(0, count($apiReceivedCallsEmpty)); $this->assertSame(1, count($opReceivedCalls)); while (!$response->isDone()) { $response->reload(); } $apiReceivedCallsEmpty = $callStub->popReceivedCalls(); $opReceivedCalls = array_merge($opReceivedCalls, $opStub->popReceivedCalls()); $this->assertSame(0, count($apiReceivedCallsEmpty)); $this->assertSame(3, count($opReceivedCalls)); $this->assertSame('takeAction', $apiReceivedCalls[0]->getFuncCall()); $this->assertSame('CancelOperation', $opReceivedCalls[0]->getFuncCall()); $this->assertSame('GetOperation', $opReceivedCalls[1]->getFuncCall()); $this->assertSame('GetOperation', $opReceivedCalls[2]->getFuncCall()); $this->assertNull($response->getResult()); $this->assertEquals(OperationResponseTest::createStatus(Code::CANCELLED, 'someError'), $response->getError()); $this->assertEquals(OperationResponseTest::createStatus(Code::OK, 'm3'), $response->getMetadata()); } /** * @expectedException \Google\ApiCore\ValidationException * @expectedExceptionMessage Cannot call reload() on a deleted operation */ public function testLongRunningDelete() { $opName = 'operation/someop'; $request = null; $initialResponse = self::createIncompleteOperationResponse($opName, 'm1'); $callStub = MockStub::createWithResponseSequence( [[$initialResponse, new MockStatus(Code::OK, '')]], ['\Google\LongRunning\Operation', 'mergeFromString'] ); $opStub = MockStub::createWithResponseSequence( [[new GPBEmpty(), new MockStatus(Code::OK, '')]], ['\Google\LongRunning\Operation', 'mergeFromString'] ); $opClient = OperationResponseTest::createOperationsClient($opStub); $descriptor = [ 'operationsClient' => $opClient, 'operationReturnType' => '\Google\Rpc\Status', 'metadataReturnType' => '\Google\Rpc\Status', ]; $callSettings = new CallSettings(); $apiCall = ApiCallable::createApiCall( $callStub, 'takeAction', $callSettings, ['longRunningDescriptor' => $descriptor] ); /* @var $response \Google\ApiCore\OperationResponse */ $response = $apiCall($request, [], []); $apiReceivedCalls = $callStub->popReceivedCalls(); $opReceivedCallsEmpty = $opStub->popReceivedCalls(); $this->assertSame(1, count($apiReceivedCalls)); $this->assertSame(0, count($opReceivedCallsEmpty)); $response->delete(); $apiReceivedCallsEmpty = $callStub->popReceivedCalls(); $opReceivedCalls = $opStub->popReceivedCalls(); $this->assertSame(0, count($apiReceivedCallsEmpty)); $this->assertSame(1, count($opReceivedCalls)); $this->assertSame('takeAction', $apiReceivedCalls[0]->getFuncCall()); $this->assertSame('DeleteOperation', $opReceivedCalls[0]->getFuncCall()); $response->reload(); } public function testClientStreamingSuccessSimple() { $request = "request"; $response = "response"; $descriptor = [ 'grpcStreamingType' => 'ClientStreaming', ]; $this->clientStreamingTestImpl($request, $response, $descriptor, null); } public function testClientStreamingSuccessObject() { $request = new Status(); $request->setCode(Code::OK); $request->setMessage('request'); $response = new Status(); $response->setCode(Code::OK); $response->setMessage('response'); $descriptor = [ 'grpcStreamingType' => 'ClientStreaming', ]; $this->clientStreamingTestImpl($request, $response, $descriptor, ['\Google\Rpc\Status', 'mergeFromString']); } private function clientStreamingTestImpl($request, $response, $descriptor, $deserialize) { $metadata = []; $options = ['call_credentials_callback' => 'fake_callback']; $stub = MockClientStreamingStub::create($response, null, $deserialize); $callSettings = new CallSettings([]); $apiCall = ApiCallable::createApiCall( $stub, 'takeAction', $callSettings, ['grpcStreamingDescriptor' => $descriptor] ); /* @var $stream \Google\ApiCore\ClientStream */ $stream = $apiCall(null, $metadata, $options); $actualResponse = $stream->writeAllAndReadResponse([$request]); $this->assertEquals($response, $actualResponse); $actualCalls = $stub->popReceivedCalls(); $this->assertSame(1, count($actualCalls)); $this->assertNull($actualCalls[0]->getRequestObject()); $this->assertEquals($metadata, $actualCalls[0]->getMetadata()); $this->assertEquals($options, $actualCalls[0]->getOptions()); /* @var $mockClientStreamingCall \Google\ApiCore\Testing\MockClientStreamingCall */ $mockClientStreamingCall = $stream->getClientStreamingCall(); $actualStreamingCalls = $mockClientStreamingCall->popReceivedCalls(); $this->assertSame(1, count($actualStreamingCalls)); $this->assertEquals($request, $actualStreamingCalls[0]); } /** * @expectedException \Google\ApiCore\ApiException * @expectedExceptionMessage client streaming failure */ public function testClientStreamingFailure() { $request = "request"; $response = "response"; $descriptor = [ 'grpcStreamingType' => 'ClientStreaming', ]; $finalStatus = new MockStatus(Code::INTERNAL, 'client streaming failure'); $metadata = []; $options = ['call_credentials_callback' => 'fake_callback']; $stub = MockClientStreamingStub::create($response, $finalStatus); $callSettings = new CallSettings([]); $apiCall = ApiCallable::createApiCall( $stub, 'takeAction', $callSettings, ['grpcStreamingDescriptor' => $descriptor] ); /* @var $stream \Google\ApiCore\ClientStream */ $stream = $apiCall(null, $metadata, $options); $stream->write($request); $actualCalls = $stub->popReceivedCalls(); $this->assertSame(1, count($actualCalls)); $this->assertNull($actualCalls[0]->getRequestObject()); $this->assertEquals($metadata, $actualCalls[0]->getMetadata()); $this->assertEquals($options, $actualCalls[0]->getOptions()); /* @var $mockClientStreamingCall \Google\ApiCore\Testing\MockClientStreamingCall */ $mockClientStreamingCall = $stream->getClientStreamingCall(); $actualStreamingCalls = $mockClientStreamingCall->popReceivedCalls(); $this->assertSame(1, count($actualStreamingCalls)); $this->assertEquals($request, $actualStreamingCalls[0]); $stream->readResponse(); } public function testServerStreamingSuccessSimple() { $request = "request"; $response = "response"; $responses = [$response]; $descriptor = [ 'grpcStreamingType' => 'ServerStreaming', ]; $this->serverStreamingTestImpl($request, $responses, $descriptor, null); } public function testServerStreamingSuccessObject() { $request = new Status(); $request->setCode(Code::OK); $request->setMessage('request'); $response = new Status(); $response->setCode(Code::OK); $response->setMessage('response'); $responses = [$response]; $descriptor = [ 'grpcStreamingType' => 'ServerStreaming', ]; $this->serverStreamingTestImpl($request, $responses, $descriptor, ['\Google\Rpc\Status', 'mergeFromString']); } private function serverStreamingTestImpl($request, $responses, $descriptor, $deserialize) { $metadata = []; $options = ['call_credentials_callback' => 'fake_callback']; $stub = MockServerStreamingStub::createWithResponseSequence($responses, null, $deserialize); $callSettings = new CallSettings([]); $apiCall = ApiCallable::createApiCall( $stub, 'takeAction', $callSettings, ['grpcStreamingDescriptor' => $descriptor] ); /* @var $stream \Google\ApiCore\ServerStream */ $stream = $apiCall($request, $metadata, $options); $actualResponses = iterator_to_array($stream->readAll()); $this->assertSame(1, count($actualResponses)); $this->assertEquals($responses, $actualResponses); $actualCalls = $stub->popReceivedCalls(); $this->assertSame(1, count($actualCalls)); $this->assertEquals($request, $actualCalls[0]->getRequestObject()); $this->assertEquals($metadata, $actualCalls[0]->getMetadata()); $this->assertEquals($options, $actualCalls[0]->getOptions()); } public function testServerStreamingSuccessResources() { $request = new Status(); $request->setCode(Code::OK); $request->setMessage('request'); $resources = ['resource1', 'resource2']; $repeatedField = new RepeatedField(GPBType::STRING); foreach ($resources as $resource) { $repeatedField[] = $resource; } $response = MockPageStreamingResponse::createPageStreamingResponse( 'nextPageToken', $repeatedField ); $responses = [$response]; $descriptor = [ 'grpcStreamingType' => 'ServerStreaming', 'resourcesGetMethod' => 'getResourcesList', ]; $metadata = []; $options = ['call_credentials_callback' => 'fake_callback']; $stub = MockServerStreamingStub::createWithResponseSequence($responses); $callSettings = new CallSettings([]); $apiCall = ApiCallable::createApiCall( $stub, 'takeAction', $callSettings, ['grpcStreamingDescriptor' => $descriptor] ); /* @var $stream \Google\ApiCore\ServerStream */ $stream = $apiCall($request, $metadata, $options); $actualResponses = iterator_to_array($stream->readAll()); $this->assertSame(2, count($actualResponses)); $this->assertEquals($resources, $actualResponses); $actualCalls = $stub->popReceivedCalls(); $this->assertSame(1, count($actualCalls)); $this->assertEquals($request, $actualCalls[0]->getRequestObject()); $this->assertEquals($metadata, $actualCalls[0]->getMetadata()); $this->assertEquals($options, $actualCalls[0]->getOptions()); } /** * @expectedException \Google\ApiCore\ApiException * @expectedExceptionMessage server streaming failure */ public function testServerStreamingFailure() { $request = "request"; $response = "response"; $responses = [$response]; $descriptor = [ 'grpcStreamingType' => 'ServerStreaming', ]; $finalStatus = new MockStatus(Code::INTERNAL, 'server streaming failure'); $metadata = []; $options = ['call_credentials_callback' => 'fake_callback']; $stub = MockServerStreamingStub::createWithResponseSequence($responses, $finalStatus); $callSettings = new CallSettings([]); $apiCall = ApiCallable::createApiCall( $stub, 'takeAction', $callSettings, ['grpcStreamingDescriptor' => $descriptor] ); /* @var $stream \Google\ApiCore\ServerStream */ $stream = $apiCall($request, $metadata, $options); foreach ($stream->readAll() as $actualResponse) { $this->assertEquals($response, $actualResponse); $actualCalls = $stub->popReceivedCalls(); $this->assertSame(1, count($actualCalls)); $this->assertEquals($request, $actualCalls[0]->getRequestObject()); $this->assertEquals($metadata, $actualCalls[0]->getMetadata()); $this->assertEquals($options, $actualCalls[0]->getOptions()); } } public function testBidiStreamingSuccessSimple() { $request = "request"; $response = "response"; $descriptor = [ 'grpcStreamingType' => 'BidiStreaming', ]; $this->bidiStreamingTestImpl($request, [$response], $descriptor, null); } public function testBidiStreamingSuccessObject() { $request = new Status(); $request->setCode(Code::OK); $request->setMessage('request'); $response = new Status(); $response->setCode(Code::OK); $response->setMessage('response'); $descriptor = [ 'grpcStreamingType' => 'BidiStreaming', ]; $this->bidiStreamingTestImpl($request, [$response], $descriptor, ['\Google\Rpc\Status', 'mergeFromString']); } private function bidiStreamingTestImpl($request, $responses, $descriptor, $deserialize) { $metadata = []; $options = ['call_credentials_callback' => 'fake_callback']; $stub = MockBidiStreamingStub::createWithResponseSequence($responses, null, $deserialize); $callSettings = new CallSettings([]); $apiCall = ApiCallable::createApiCall( $stub, 'takeAction', $callSettings, ['grpcStreamingDescriptor' => $descriptor] ); /* @var $stream \Google\ApiCore\BidiStream */ $stream = $apiCall(null, $metadata, $options); $stream->write($request); $actualResponses = iterator_to_array($stream->closeWriteAndReadAll()); $this->assertSame(1, count($actualResponses)); $this->assertEquals($responses, $actualResponses); $actualCalls = $stub->popReceivedCalls(); $this->assertSame(1, count($actualCalls)); $this->assertNull($actualCalls[0]->getRequestObject()); $this->assertEquals($metadata, $actualCalls[0]->getMetadata()); $this->assertEquals($options, $actualCalls[0]->getOptions()); /* @var $mockBidiStreamingCall \Google\ApiCore\Testing\MockBidiStreamingCall */ $mockBidiStreamingCall = $stream->getBidiStreamingCall(); $actualStreamingCalls = $mockBidiStreamingCall->popReceivedCalls(); $this->assertSame(1, count($actualStreamingCalls)); $this->assertEquals($request, $actualStreamingCalls[0]); } public function testBidiStreamingSuccessResources() { $request = new Status(); $request->setCode(Code::OK); $request->setMessage('request'); $resources = ['resource1', 'resource2']; $repeatedField = new RepeatedField(GPBType::STRING); foreach ($resources as $resource) { $repeatedField[] = $resource; } $response = MockPageStreamingResponse::createPageStreamingResponse( 'nextPageToken', $repeatedField ); $descriptor = [ 'grpcStreamingType' => 'BidiStreaming', 'resourcesGetMethod' => 'getResourcesList', ]; $metadata = []; $options = ['call_credentials_callback' => 'fake_callback']; $stub = MockBidiStreamingStub::createWithResponseSequence([$response]); $callSettings = new CallSettings([]); $apiCall = ApiCallable::createApiCall( $stub, 'takeAction', $callSettings, ['grpcStreamingDescriptor' => $descriptor] ); /* @var $stream \Google\ApiCore\BidiStream */ $stream = $apiCall(null, $metadata, $options); $stream->write($request); $actualResponses = iterator_to_array($stream->closeWriteAndReadAll()); $this->assertSame(2, count($actualResponses)); $this->assertEquals($resources, $actualResponses); $actualCalls = $stub->popReceivedCalls(); $this->assertSame(1, count($actualCalls)); $this->assertNull($actualCalls[0]->getRequestObject()); $this->assertEquals($metadata, $actualCalls[0]->getMetadata()); $this->assertEquals($options, $actualCalls[0]->getOptions()); /* @var $mockBidiStreamingCall \Google\ApiCore\Testing\MockBidiStreamingCall */ $mockBidiStreamingCall = $stream->getBidiStreamingCall(); $actualStreamingCalls = $mockBidiStreamingCall->popReceivedCalls(); $this->assertSame(1, count($actualStreamingCalls)); $this->assertEquals($request, $actualStreamingCalls[0]); } /** * @expectedException \Google\ApiCore\ApiException * @expectedExceptionMessage bidi failure */ public function testBidiStreamingFailure() { $request = "request"; $response = "response"; $descriptor = [ 'grpcStreamingType' => 'BidiStreaming', ]; $responses = [$response]; $finalStatus = new MockStatus(Code::INTERNAL, 'bidi failure'); $metadata = []; $options = ['call_credentials_callback' => 'fake_callback']; $stub = MockBidiStreamingStub::createWithResponseSequence($responses, $finalStatus); $callSettings = new CallSettings([]); $apiCall = ApiCallable::createApiCall( $stub, 'takeAction', $callSettings, ['grpcStreamingDescriptor' => $descriptor] ); /* @var $stream \Google\ApiCore\BidiStream */ $stream = $apiCall(null, $metadata, $options); $stream->write($request); $stream->closeWrite(); $actualResponse = $stream->read(); $this->assertEquals($response, $actualResponse); $actualCalls = $stub->popReceivedCalls(); $this->assertSame(1, count($actualCalls)); $this->assertNull($actualCalls[0]->getRequestObject()); $this->assertEquals($metadata, $actualCalls[0]->getMetadata()); $this->assertEquals($options, $actualCalls[0]->getOptions()); /* @var $mockBidiStreamingCall \Google\ApiCore\Testing\MockBidiStreamingCall */ $mockBidiStreamingCall = $stream->getBidiStreamingCall(); $actualStreamingCalls = $mockBidiStreamingCall->popReceivedCalls(); $this->assertSame(1, count($actualStreamingCalls)); $this->assertEquals($request, $actualStreamingCalls[0]); $stream->read(); } } tests/ApiCore/Tests/Unit/ApiExceptionTest.php000064400000014503151742740600015223 0ustar00code = Grpc\STATUS_OK; $status->details = 'testWithoutMetadata'; $apiException = ApiException::createFromStdClass($status); $expectedMessage = json_encode([ 'message' => 'testWithoutMetadata', 'code' => Grpc\STATUS_OK, 'status' => 'OK', 'details' => [] ], JSON_PRETTY_PRINT); $this->assertSame(Grpc\STATUS_OK, $apiException->getCode()); $this->assertSame($expectedMessage, $apiException->getMessage()); $this->assertNull($apiException->getMetadata()); } /** * @dataProvider getMetadata */ public function testWithMetadata($metadata, $metadataArray) { $status = new \stdClass(); $status->code = Grpc\STATUS_OK; $status->details = 'testWithMetadata'; $status->metadata = $metadata; $apiException = ApiException::createFromStdClass($status); $expectedMessage = json_encode([ 'message' => 'testWithMetadata', 'code' => Grpc\STATUS_OK, 'status' => 'OK', 'details' => $metadataArray ], JSON_PRETTY_PRINT); $this->assertSame(Grpc\STATUS_OK, $apiException->getCode()); $this->assertSame($expectedMessage, $apiException->getMessage()); $this->assertSame($metadata, $apiException->getMetadata()); } public function getMetadata() { $retryInfo = new RetryInfo(); $duration = new Duration(); $duration->setSeconds(1); $duration->setNanos(2); $retryInfo->setRetryDelay($duration); $unknownBinData = [ [ '@type' => 'unknown-bin', 'data' => '' ] ]; $asciiData = [ [ '@type' => 'ascii', 'data' => 'ascii-data' ] ]; $retryInfoData = [ [ '@type' => 'google.rpc.retryinfo-bin', 'retryDelay' => [ 'seconds' => 1, 'nanos' => 2, ], ] ]; $allKnownTypesData = [ [ '@type' => 'google.rpc.retryinfo-bin', ], [ '@type' => 'google.rpc.debuginfo-bin', "stackEntries" => [], "detail" => "" ], [ '@type' => 'google.rpc.quotafailure-bin', 'violations' => [], ], [ '@type' => 'google.rpc.badrequest-bin', 'fieldViolations' => [] ], [ '@type' => 'google.rpc.requestinfo-bin', 'requestId' => '', 'servingData' => '', ], [ '@type' => 'google.rpc.resourceinfo-bin', 'resourceType' => '', 'resourceName' => '', 'owner' => '', 'description' => '', ], [ '@type' => 'google.rpc.help-bin', 'links' => [], ], [ '@type' => 'google.rpc.localizedmessage-bin', 'locale' => '', 'message' => '', ], ]; return [ [['unknown-bin' => ['some-data-that-should-not-appear']], $unknownBinData], [['ascii' => ['ascii-data']], $asciiData], [['google.rpc.retryinfo-bin' => [$retryInfo->serializeToString()]], $retryInfoData], [[ 'google.rpc.retryinfo-bin' => [(new RetryInfo())->serializeToString()], 'google.rpc.debuginfo-bin' => [(new DebugInfo())->serializeToString()], 'google.rpc.quotafailure-bin' => [(new QuotaFailure())->serializeToString()], 'google.rpc.badrequest-bin' => [(new BadRequest())->serializeToString()], 'google.rpc.requestinfo-bin' => [(new RequestInfo())->serializeToString()], 'google.rpc.resourceinfo-bin' => [(new ResourceInfo())->serializeToString()], 'google.rpc.help-bin' => [(new Help())->serializeToString()], 'google.rpc.localizedmessage-bin' => [(new LocalizedMessage())->serializeToString()], ], $allKnownTypesData], ]; } } tests/ApiCore/Tests/Unit/ApiStatusTest.php000064400000010201151742740600014537 0ustar00assertTrue(ApiStatus::isValidStatus($status)); } /** * @dataProvider getInvalidStatus */ public function testValidateInvalid($status) { $this->assertFalse(ApiStatus::isValidStatus($status)); } public function getValidStatus() { return [ ['OK'], ['CANCELLED'], ['UNKNOWN'], ['INVALID_ARGUMENT'], ['DEADLINE_EXCEEDED'], ['NOT_FOUND'], ['ALREADY_EXISTS'], ['PERMISSION_DENIED'], ['RESOURCE_EXHAUSTED'], ['FAILED_PRECONDITION'], ['ABORTED'], ['OUT_OF_RANGE'], ['UNIMPLEMENTED'], ['INTERNAL'], ['UNAVAILABLE'], ['DATA_LOSS'], ['UNAUTHENTICATED'], ]; } public function getInvalidStatus() { return [ ['UNRECOGNIZED_STATUS'], [''], ['NONSENSE'], ]; } /** * @dataProvider getCodeAndStatus */ public function testStatusFromRpcCode($code, $status) { $this->assertSame($status, ApiStatus::statusFromRpcCode($code)); } public function getCodeAndStatus() { return [ [Code::OK, ApiStatus::OK], [Code::CANCELLED, ApiStatus::CANCELLED], [Code::UNKNOWN, ApiStatus::UNKNOWN], [Code::INVALID_ARGUMENT, ApiStatus::INVALID_ARGUMENT], [Code::DEADLINE_EXCEEDED, ApiStatus::DEADLINE_EXCEEDED], [Code::NOT_FOUND, ApiStatus::NOT_FOUND], [Code::ALREADY_EXISTS, ApiStatus::ALREADY_EXISTS], [Code::PERMISSION_DENIED, ApiStatus::PERMISSION_DENIED], [Code::RESOURCE_EXHAUSTED, ApiStatus::RESOURCE_EXHAUSTED], [Code::FAILED_PRECONDITION, ApiStatus::FAILED_PRECONDITION], [Code::ABORTED, ApiStatus::ABORTED], [Code::OUT_OF_RANGE, ApiStatus::OUT_OF_RANGE], [Code::UNIMPLEMENTED, ApiStatus::UNIMPLEMENTED], [Code::INTERNAL, ApiStatus::INTERNAL], [Code::UNAVAILABLE, ApiStatus::UNAVAILABLE], [Code::DATA_LOSS, ApiStatus::DATA_LOSS], [Code::UNAUTHENTICATED, ApiStatus::UNAUTHENTICATED], [-1, ApiStatus::UNRECOGNIZED_STATUS] ]; } } tests/ApiCore/Tests/Unit/BidiStreamTest.php000064400000026543151742740600014665 0ustar00assertSame($call, $stream->getBidiStreamingCall()); $this->assertSame([], iterator_to_array($stream->closeWriteAndReadAll())); } /** * @expectedException \Google\ApiCore\ApiException * @expectedExceptionMessage empty failure read */ public function testEmptyFailureRead() { $call = new MockBidiStreamingCall([], null, new MockStatus(Grpc\STATUS_INTERNAL, 'empty failure read')); $stream = new BidiStream($call); $this->assertSame($call, $stream->getBidiStreamingCall()); $stream->closeWrite(); $stream->read(); } /** * @expectedException \Google\ApiCore\ApiException * @expectedExceptionMessage empty failure readall */ public function testEmptyFailureReadAll() { $call = new MockBidiStreamingCall([], null, new MockStatus(Grpc\STATUS_INTERNAL, 'empty failure readall')); $stream = new BidiStream($call); $this->assertSame($call, $stream->getBidiStreamingCall()); iterator_to_array($stream->closeWriteAndReadAll()); } /** * @expectedException \Google\ApiCore\ValidationException * @expectedExceptionMessage Cannot call read() after streaming call is complete. */ public function testReadAfterComplete() { $call = new MockBidiStreamingCall([]); $stream = new BidiStream($call); $this->assertSame($call, $stream->getBidiStreamingCall()); $stream->closeWrite(); $this->assertNull($stream->read()); $stream->read(); } /** * @expectedException \Google\ApiCore\ValidationException * @expectedExceptionMessage Cannot call write() after streaming call is complete. */ public function testWriteAfterComplete() { $call = new MockBidiStreamingCall([]); $stream = new BidiStream($call); $this->assertSame($call, $stream->getBidiStreamingCall()); $stream->closeWrite(); $this->assertNull($stream->read()); $stream->write('request'); } /** * @expectedException \Google\ApiCore\ValidationException * @expectedExceptionMessage Cannot call write() after calling closeWrite(). */ public function testWriteAfterCloseWrite() { $call = new MockBidiStreamingCall([]); $stream = new BidiStream($call); $this->assertSame($call, $stream->getBidiStreamingCall()); $stream->closeWrite(); $stream->write('request'); } public function testReadStringsSuccess() { $responses = ['abc', 'def']; $call = new MockBidiStreamingCall($responses); $stream = new BidiStream($call); $this->assertSame($call, $stream->getBidiStreamingCall()); $this->assertSame($responses, iterator_to_array($stream->closeWriteAndReadAll())); } public function testReadObjectsSuccess() { $responses = [ BidiStreamTest::createStatus(Grpc\STATUS_OK, 'response1'), BidiStreamTest::createStatus(Grpc\STATUS_OK, 'response2') ]; $serializedResponses = []; foreach ($responses as $response) { $serializedResponses[] = $response->serializeToString(); } $call = new MockBidiStreamingCall($serializedResponses, ['\Google\Rpc\Status', 'mergeFromString']); $stream = new BidiStream($call); $this->assertSame($call, $stream->getBidiStreamingCall()); $this->assertEquals($responses, iterator_to_array($stream->closeWriteAndReadAll())); } public function testReadCloseReadSuccess() { $responses = [ BidiStreamTest::createStatus(Grpc\STATUS_OK, 'response1'), BidiStreamTest::createStatus(Grpc\STATUS_OK, 'response2') ]; $serializedResponses = []; foreach ($responses as $response) { $serializedResponses[] = $response->serializeToString(); } $call = new MockBidiStreamingCall($serializedResponses, ['\Google\Rpc\Status', 'mergeFromString']); $stream = new BidiStream($call); $this->assertSame($call, $stream->getBidiStreamingCall()); $response = $stream->read(); $stream->closeWrite(); $index = 0; while (!is_null($response)) { $this->assertEquals($response, $responses[$index]); $response = $stream->read(); $index++; } } /** * @expectedException \Google\ApiCore\ApiException * @expectedExceptionMessage read failure */ public function testReadFailure() { $responses = ['abc', 'def']; $call = new MockBidiStreamingCall( $responses, null, new MockStatus(Grpc\STATUS_INTERNAL, 'read failure') ); $stream = new BidiStream($call); $this->assertSame($call, $stream->getBidiStreamingCall()); $index = 0; try { foreach ($stream->closeWriteAndReadAll() as $response) { $this->assertSame($response, $responses[$index]); $index++; } } finally { $this->assertSame(2, $index); } } public function testWriteStringsSuccess() { $requests = ['request1', 'request2']; $responses = []; $call = new MockBidiStreamingCall($responses); $stream = new BidiStream($call); $stream->writeAll($requests); $this->assertSame($call, $stream->getBidiStreamingCall()); $this->assertSame([], iterator_to_array($stream->closeWriteAndReadAll())); $this->assertEquals($requests, $call->popReceivedCalls()); } public function testWriteObjectsSuccess() { $requests = [ BidiStreamTest::createStatus(Grpc\STATUS_OK, 'request1'), BidiStreamTest::createStatus(Grpc\STATUS_OK, 'request2') ]; $responses = []; $call = new MockBidiStreamingCall($responses, ['\Google\Rpc\Status', 'mergeFromString']); $stream = new BidiStream($call); $stream->writeAll($requests); $this->assertSame($call, $stream->getBidiStreamingCall()); $this->assertSame([], iterator_to_array($stream->closeWriteAndReadAll())); $this->assertEquals($requests, $call->popReceivedCalls()); } public function testAlternateReadWriteObjectsSuccess() { $requests = [ BidiStreamTest::createStatus(Grpc\STATUS_OK, 'request1'), BidiStreamTest::createStatus(Grpc\STATUS_OK, 'request2'), BidiStreamTest::createStatus(Grpc\STATUS_OK, 'request3') ]; $responses = [ BidiStreamTest::createStatus(Grpc\STATUS_OK, 'response1'), BidiStreamTest::createStatus(Grpc\STATUS_OK, 'response2'), BidiStreamTest::createStatus(Grpc\STATUS_OK, 'response3'), BidiStreamTest::createStatus(Grpc\STATUS_OK, 'response4') ]; $serializedResponses = []; foreach ($responses as $response) { $serializedResponses[] = $response->serializeToString(); } $call = new MockBidiStreamingCall($serializedResponses, ['\Google\Rpc\Status', 'mergeFromString']); $stream = new BidiStream($call); $index = 0; foreach ($requests as $request) { $stream->write($request); $response = $stream->read(); $this->assertEquals($response, $responses[$index]); $index++; } $stream->closeWrite(); $response = $stream->read(); while (!is_null($response)) { $this->assertEquals($response, $responses[$index]); $index++; $response = $stream->read(); } $this->assertSame($call, $stream->getBidiStreamingCall()); $this->assertEquals($requests, $call->popReceivedCalls()); } /** * @expectedException \Google\ApiCore\ApiException * @expectedExceptionMessage write failure without close */ public function testWriteFailureWithoutClose() { $request = 'request'; $responses = [null]; $call = new MockBidiStreamingCall( $responses, null, new MockStatus(Grpc\STATUS_INTERNAL, 'write failure without close') ); $stream = new BidiStream($call); $this->assertSame($call, $stream->getBidiStreamingCall()); $stream->write($request); try { $stream->read(); } finally { $this->assertEquals([$request], $call->popReceivedCalls()); } } public function testResourcesSuccess() { $resources = ['resource1', 'resource2', 'resource3']; $repeatedField1 = new RepeatedField(GPBType::STRING); $repeatedField1[] = 'resource1'; $repeatedField2 = new RepeatedField(GPBType::STRING); $repeatedField2[] = 'resource2'; $repeatedField2[] = 'resource3'; $responses = [ MockPageStreamingResponse::createPageStreamingResponse('nextPageToken1', $repeatedField1), MockPageStreamingResponse::createPageStreamingResponse('nextPageToken1', $repeatedField2) ]; $call = new MockBidiStreamingCall($responses); $stream = new BidiStream($call, [ 'resourcesGetMethod' => 'getResourcesList' ]); $this->assertSame($call, $stream->getBidiStreamingCall()); $this->assertEquals($resources, iterator_to_array($stream->closeWriteAndReadAll())); } } tests/ApiCore/Tests/Unit/CallSettingsTest.php000064400000017245151742740600015235 0ustar00assertTrue($simpleMethod->getRetrySettings()->retriesEnabled()); $this->assertEquals(40000, $simpleMethod->getRetrySettings()->getNoRetriesRpcTimeoutMillis()); $simpleMethodRetry = $simpleMethod->getRetrySettings(); $this->assertEquals(['DEADLINE_EXCEEDED', 'UNAVAILABLE'], $simpleMethodRetry->getRetryableCodes()); $this->assertEquals(100, $simpleMethodRetry->getInitialRetryDelayMillis()); $pageStreamingMethod = $defaultCallSettings['pageStreamingMethod']; $pageStreamingMethodRetry = $pageStreamingMethod->getRetrySettings(); $this->assertEquals(['INTERNAL'], $pageStreamingMethodRetry->getRetryableCodes()); $timeoutOnlyMethod = $defaultCallSettings['timeoutOnlyMethod']; $timeoutOnlyMethodRetry = $timeoutOnlyMethod->getRetrySettings(); $this->assertFalse($timeoutOnlyMethodRetry->retriesEnabled()); $this->assertEquals(40000, $timeoutOnlyMethodRetry->getNoRetriesRpcTimeoutMillis()); } /** * @expectedException \Google\ApiCore\ValidationException */ public function testLoadInvalid() { $inputConfig = CallSettingsTest::buildInvalidInputConfig(); CallSettings::load( CallSettingsTest::SERVICE_NAME, $inputConfig, [] ); } public function testConstructSettingsOverride() { $inputConfig = CallSettingsTest::buildInputConfig(); // Turn off retries for simpleMethod $retryingOverride = [ 'simpleMethod' => [ 'retriesEnabled' => false, ], 'timeoutOnlyMethod' => [ 'noRetriesRpcTimeoutMillis' => 20000 ] ]; $defaultCallSettings = CallSettings::load( CallSettingsTest::SERVICE_NAME, $inputConfig, $retryingOverride ); $simpleMethod = $defaultCallSettings['simpleMethod']; $this->assertFalse($simpleMethod->getRetrySettings()->retriesEnabled()); $this->assertEquals(40000, $simpleMethod->getRetrySettings()->getNoRetriesRpcTimeoutMillis()); $pageStreamingMethod = $defaultCallSettings['pageStreamingMethod']; $pageStreamingMethodRetry = $pageStreamingMethod->getRetrySettings(); $this->assertEquals(['INTERNAL'], $pageStreamingMethodRetry->getRetryableCodes()); $timeoutOnlyMethod = $defaultCallSettings['timeoutOnlyMethod']; $timeoutOnlyMethodRetry = $timeoutOnlyMethod->getRetrySettings(); $this->assertFalse($timeoutOnlyMethodRetry->retriesEnabled()); $this->assertEquals(20000, $timeoutOnlyMethodRetry->getNoRetriesRpcTimeoutMillis()); } public function testMergeEmpty() { $settings = [ 'initialRetryDelayMillis' => 100, 'retryDelayMultiplier' => 1.3, 'maxRetryDelayMillis' => 400, 'initialRpcTimeoutMillis' => 150, 'rpcTimeoutMultiplier' => 2, 'maxRpcTimeoutMillis' => 500, 'totalTimeoutMillis' => 2000, 'noRetriesRpcTimeoutMillis' => 10, 'retryableCodes' => ['DEADLINE_EXCEEDED', 'UNAVAILABLE'] ]; $retrySettings = new RetrySettings($settings); $callSettings = new CallSettings(['retrySettings' => $retrySettings]); $emptySettings = new CallSettings([]); $mergedSettings = $callSettings->merge($emptySettings); $this->assertEquals(10, $mergedSettings->getRetrySettings()->getNoRetriesRpcTimeoutMillis()); $this->assertEquals( ['DEADLINE_EXCEEDED', 'UNAVAILABLE'], $mergedSettings->getRetrySettings()->getRetryableCodes() ); } public function testMerge() { $settings = [ 'initialRetryDelayMillis' => 100, 'retryDelayMultiplier' => 1.3, 'maxRetryDelayMillis' => 400, 'initialRpcTimeoutMillis' => 150, 'rpcTimeoutMultiplier' => 2, 'maxRpcTimeoutMillis' => 500, 'totalTimeoutMillis' => 2000, 'noRetriesRpcTimeoutMillis' => 10, 'retryableCodes' => ['DEADLINE_EXCEEDED', 'UNAVAILABLE'] ]; $otherSettings = [ 'initialRetryDelayMillis' => 100, 'retryDelayMultiplier' => 1.3, 'maxRetryDelayMillis' => 400, 'initialRpcTimeoutMillis' => 150, 'rpcTimeoutMultiplier' => 2, 'maxRpcTimeoutMillis' => 500, 'totalTimeoutMillis' => 2000, 'noRetriesRpcTimeoutMillis' => 20, 'retryableCodes' => ['INTERNAL'] ]; $retrySettings = new RetrySettings($settings); $settings = new CallSettings(['retrySettings' => $retrySettings]); $otherRetrySettings = new RetrySettings($otherSettings); $otherSettings = new CallSettings(['retrySettings' => $otherRetrySettings]); $mergedSettings = $settings->merge($otherSettings); $this->assertEquals(20, $mergedSettings->getRetrySettings()->getNoRetriesRpcTimeoutMillis()); $this->assertEquals(['INTERNAL'], $mergedSettings->getRetrySettings()->getRetryableCodes()); } } tests/ApiCore/Tests/Unit/ClientStreamTest.php000064400000014122151742740600015222 0ustar00assertSame($call, $stream->getClientStreamingCall()); $this->assertSame($response, $stream->readResponse()); $this->assertSame([], $call->popReceivedCalls()); } /** * @expectedException \Google\ApiCore\ApiException * @expectedExceptionMessage no writes failure */ public function testNoWritesFailure() { $response = 'response'; $call = new MockClientStreamingCall( $response, null, new MockStatus(Grpc\STATUS_INTERNAL, 'no writes failure') ); $stream = new ClientStream($call); $this->assertSame($call, $stream->getClientStreamingCall()); $this->assertSame([], $call->popReceivedCalls()); $stream->readResponse(); } public function testManualWritesSuccess() { $requests = [ ClientStreamTest::createStatus(Grpc\STATUS_OK, 'request1'), ClientStreamTest::createStatus(Grpc\STATUS_OK, 'request2') ]; $response = ClientStreamTest::createStatus(Grpc\STATUS_OK, 'response'); $call = new MockClientStreamingCall($response->serializeToString(), ['\Google\Rpc\Status', 'mergeFromString']); $stream = new ClientStream($call); foreach ($requests as $request) { $stream->write($request); } $this->assertSame($call, $stream->getClientStreamingCall()); $this->assertEquals($response, $stream->readResponse()); $this->assertEquals($requests, $call->popReceivedCalls()); } /** * @expectedException \Google\ApiCore\ApiException * @expectedExceptionMessage manual writes failure */ public function testManualWritesFailure() { $requests = [ ClientStreamTest::createStatus(Grpc\STATUS_OK, 'request1'), ClientStreamTest::createStatus(Grpc\STATUS_OK, 'request2') ]; $response = ClientStreamTest::createStatus(Grpc\STATUS_OK, 'response'); $call = new MockClientStreamingCall( $response->serializeToString(), ['\Google\Rpc\Status', 'mergeFromString'], new MockStatus(Grpc\STATUS_INTERNAL, 'manual writes failure') ); $stream = new ClientStream($call); foreach ($requests as $request) { $stream->write($request); } $this->assertSame($call, $stream->getClientStreamingCall()); $this->assertEquals($requests, $call->popReceivedCalls()); $stream->readResponse(); } public function testWriteAllSuccess() { $requests = [ ClientStreamTest::createStatus(Grpc\STATUS_OK, 'request1'), ClientStreamTest::createStatus(Grpc\STATUS_OK, 'request2') ]; $response = ClientStreamTest::createStatus(Grpc\STATUS_OK, 'response'); $call = new MockClientStreamingCall($response->serializeToString(), ['\Google\Rpc\Status', 'mergeFromString']); $stream = new ClientStream($call); $actualResponse = $stream->writeAllAndReadResponse($requests); $this->assertSame($call, $stream->getClientStreamingCall()); $this->assertEquals($response, $actualResponse); $this->assertEquals($requests, $call->popReceivedCalls()); } /** * @expectedException \Google\ApiCore\ApiException * @expectedExceptionMessage write all failure */ public function testWriteAllFailure() { $requests = [ ClientStreamTest::createStatus(Grpc\STATUS_OK, 'request1'), ClientStreamTest::createStatus(Grpc\STATUS_OK, 'request2') ]; $response = ClientStreamTest::createStatus(Grpc\STATUS_OK, 'response'); $call = new MockClientStreamingCall( $response->serializeToString(), ['\Google\Rpc\Status', 'mergeFromString'], new MockStatus(Grpc\STATUS_INTERNAL, 'write all failure') ); $stream = new ClientStream($call); try { $stream->writeAllAndReadResponse($requests); } finally { $this->assertSame($call, $stream->getClientStreamingCall()); $this->assertEquals($requests, $call->popReceivedCalls()); } } } tests/ApiCore/Tests/Unit/FixedSizeCollectionTest.php000064400000011314151742740600016536 0ustar00 'pageToken', 'requestPageSizeField' => 'pageSize', 'responsePageTokenField' => 'nextPageToken', 'resourceField' => 'resourcesList' ]); $mockApiCall = function () use ($stub) { list($response, $status) = call_user_func_array(array($stub, 'takeAction'), func_get_args())->wait(); return $response; }; return new Page([$mockRequest, [], []], $mockApiCall, $descriptor); } public function testFixedCollectionMethods() { $responseA = MockPageStreamingResponse::createPageStreamingResponse( 'nextPageToken1', ['resource1', 'resource2'] ); $responseB = MockPageStreamingResponse::createPageStreamingResponse( 'nextPageToken2', ['resource3', 'resource4', 'resource5'] ); $responseC = MockPageStreamingResponse::createPageStreamingResponse( 'nextPageToken3', ['resource6', 'resource7'] ); $responseD = MockPageStreamingResponse::createPageStreamingResponse( '', ['resource8', 'resource9'] ); $page = FixedSizeCollectionTest::createPage([ [$responseA, new MockStatus(Grpc\STATUS_OK, '')], [$responseB, new MockStatus(Grpc\STATUS_OK, '')], [$responseC, new MockStatus(Grpc\STATUS_OK, '')], [$responseD, new MockStatus(Grpc\STATUS_OK, '')], ]); $fixedSizeCollection = new FixedSizeCollection($page, 5); $this->assertEquals($fixedSizeCollection->getCollectionSize(), 5); $this->assertEquals($fixedSizeCollection->hasNextCollection(), true); $this->assertEquals($fixedSizeCollection->getNextPageToken(), 'nextPageToken2'); $results = iterator_to_array($fixedSizeCollection); $this->assertEquals( $results, ['resource1', 'resource2', 'resource3', 'resource4', 'resource5'] ); $nextCollection = $fixedSizeCollection->getNextCollection(); $this->assertEquals($nextCollection->getCollectionSize(), 4); $this->assertEquals($nextCollection->hasNextCollection(), false); $this->assertEquals($nextCollection->getNextPageToken(), ''); $results = iterator_to_array($nextCollection); $this->assertEquals( $results, ['resource6', 'resource7', 'resource8', 'resource9'] ); } } tests/ApiCore/Tests/Unit/GeneratedTestTest.php000064400000010757151742740600015400 0ustar00assertProtobufEquals($expected, $actual); } /** * @dataProvider getFailureCases */ public function testFailure($expected, $actual) { try { $this->assertProtobufEquals($expected, $actual); } catch (PHPUnit_Framework_ExpectationFailedException $ex) { // As expected the assertion failed, silently return return; } // The assertion did not fail, make the test fail $this->fail('This test did not fail as expected'); } public function getSuccessCases() { $monitoringA = new Monitoring_MonitoringDestination(); $monitoringA->setMonitoredResource("type"); $monitoringB = new Monitoring_MonitoringDestination(); $monitoringB->setMonitoredResource("type"); $emptyRepeatedA = $monitoringA->getMetrics(); $emptyRepeatedB = $monitoringB->getMetrics(); $monitoringC = new Monitoring_MonitoringDestination(); $monitoringD = new Monitoring_MonitoringDestination(); $repeatedC = $monitoringC->getMetrics(); $repeatedC[] = "metric"; $repeatedD = $monitoringD->getMetrics(); $repeatedD[] = "metric"; return [ [[], []], [[], $emptyRepeatedB], [$emptyRepeatedA, []], [$emptyRepeatedA, $emptyRepeatedB], [[1, 2], [1, 2]], [["abc", $monitoringA], ["abc", $monitoringB]], [["metric"], $repeatedD], [$repeatedC, ["metric"]], [$repeatedC, $repeatedD], ]; } public function getFailureCases() { $monitoringA = new Monitoring_MonitoringDestination(); $monitoringA->setMonitoredResource("typeA"); $monitoringB = new Monitoring_MonitoringDestination(); $monitoringB->setMonitoredResource("typeB"); $emptyRepeatedA = $monitoringA->getMetrics(); $emptyRepeatedB = $monitoringB->getMetrics(); $monitoringC = new Monitoring_MonitoringDestination(); $monitoringD = new Monitoring_MonitoringDestination(); $repeatedC = $monitoringC->getMetrics(); $repeatedC[] = "metricA"; $repeatedD = $monitoringD->getMetrics(); $repeatedD[] = "metricB"; return [ [[], [1]], [[1], []], [[1], [2]], [[$monitoringA], [$monitoringB]], [[], $repeatedD], [$repeatedC, []], [$emptyRepeatedA, [1]], [[1], $emptyRepeatedB], [$emptyRepeatedA, $repeatedD], [$repeatedC, $emptyRepeatedB], [$repeatedC, $repeatedD], ]; } } tests/ApiCore/Tests/Unit/GrpcCredentialsHelperTest.php000064400000026701151742740600017047 0ustar00 'accessToken', 'expires_in' => '100', ], [ 'access_token' => 'accessToken2', 'expires_in' => '100' ], ]; /** * @expectedException \Google\ApiCore\ValidationException */ public function testServiceAddressRequired() { new MockGrpcCredentialsHelper([ 'port' => 8443, 'scopes' => $this->defaultScope, ]); } /** * @expectedException \Google\ApiCore\ValidationException */ public function testPortRequired() { new MockGrpcCredentialsHelper([ 'serviceAddress' => 'my-service-address', 'scopes' => $this->defaultScope, ]); } /** * @expectedException \Google\ApiCore\ValidationException */ public function testScopesRequired() { // NOTE: scopes is only required if credentialsLoader is not provided new MockGrpcCredentialsHelper([ 'serviceAddress' => 'my-service-address', 'port' => 8443, ]); } public function testCreateCallCredentialsCallbackDefault() { $grpcCredentialsHelper = new MockGrpcCredentialsHelper([ 'serviceAddress' => 'my-service-address', 'port' => 8443, 'scopes' => $this->defaultScope, ]); $callback = $grpcCredentialsHelper->createCallCredentialsCallback(); $callbackResult = $callback(); $this->assertEquals(['Bearer adcAccessToken'], $callbackResult['authorization']); } public function testCreateCallCredentialsCallbackCustomCredsLoader() { $grpcCredentialsHelper = new MockGrpcCredentialsHelper([ 'serviceAddress' => 'my-service-address', 'port' => 8443, 'credentialsLoader' => new MockCredentialsLoader( $this->defaultScope, $this->defaultTokens ) ]); $callback = $grpcCredentialsHelper->createCallCredentialsCallback(); $callbackResult = $callback(); $this->assertEquals(['Bearer accessToken'], $callbackResult['authorization']); } public function testCreateCallCredentialsCallbackDisableCaching() { $grpcCredentialsHelper = new MockGrpcCredentialsHelper([ 'serviceAddress' => 'my-service-address', 'port' => 8443, 'credentialsLoader' => new MockCredentialsLoader( $this->defaultScope, $this->defaultTokens ), 'enableCaching' => false, ]); $callback = $grpcCredentialsHelper->createCallCredentialsCallback(); $callbackResult = $callback(); $this->assertEquals(['Bearer accessToken'], $callbackResult['authorization']); $callback = $grpcCredentialsHelper->createCallCredentialsCallback(); $callbackResult = $callback(); $this->assertEquals(['Bearer accessToken2'], $callbackResult['authorization']); } public function testCreateCallCredentialsCallbackCaching() { $grpcCredentialsHelper = new MockGrpcCredentialsHelper([ 'serviceAddress' => 'my-service-address', 'port' => 8443, 'credentialsLoader' => new MockCredentialsLoader( $this->defaultScope, $this->defaultTokens ), ]); $callback = $grpcCredentialsHelper->createCallCredentialsCallback(); $callbackResult = $callback(); $this->assertEquals(['Bearer accessToken'], $callbackResult['authorization']); $callback = $grpcCredentialsHelper->createCallCredentialsCallback(); $callbackResult = $callback(); $this->assertEquals(['Bearer accessToken'], $callbackResult['authorization']); } public function testCreateStubWithDefaultSslCreds() { $grpcCredentialsHelper = new MockGrpcCredentialsHelper([ 'serviceAddress' => 'my-service-address', 'port' => 8443, 'scopes' => $this->defaultScope, ]); $createStubCallback = function ($hostname, $stubOpts, $channel) { return ['hostname' => $hostname, 'stubOpts' => $stubOpts, 'channel' => $channel]; }; $createStubResult = $grpcCredentialsHelper->createStub($createStubCallback); $this->assertEquals('my-service-address:8443', $createStubResult['hostname']); $this->assertEquals('DummySslCreds', $createStubResult['stubOpts']['credentials']); $this->assertEquals( 'my-service-address:8443', $createStubResult['stubOpts']['grpc.ssl_target_name_override'] ); $this->assertNull($createStubResult['channel']); } public function testCreateStubWithExplicitSslCreds() { $grpcCredentialsHelper = new MockGrpcCredentialsHelper([ 'serviceAddress' => 'my-service-address', 'port' => 8443, 'scopes' => $this->defaultScope, ]); $createStubCallback = function ($hostname, $stubOpts, $channel) { return ['hostname' => $hostname, 'stubOpts' => $stubOpts, 'channel' => $channel]; }; $createStubResult = $grpcCredentialsHelper->createStub( $createStubCallback, ['sslCreds' => 'provided-creds'] ); $this->assertEquals('my-service-address:8443', $createStubResult['hostname']); $this->assertEquals('provided-creds', $createStubResult['stubOpts']['credentials']); $this->assertEquals( 'my-service-address:8443', $createStubResult['stubOpts']['grpc.ssl_target_name_override'] ); $this->assertNull($createStubResult['channel']); } public function testCreateStubWithInsecureSslCreds() { $grpcCredentialsHelper = new MockGrpcCredentialsHelper([ 'serviceAddress' => 'my-service-address', 'port' => 8443, 'scopes' => $this->defaultScope, ]); $createStubCallback = function ($hostname, $stubOpts, $channel) { return ['hostname' => $hostname, 'stubOpts' => $stubOpts, 'channel' => $channel]; }; $insecureCreds = \Grpc\ChannelCredentials::createInsecure(); $createStubResult = $grpcCredentialsHelper->createStub( $createStubCallback, ['sslCreds' => $insecureCreds] ); $this->assertEquals('my-service-address:8443', $createStubResult['hostname']); $this->assertEquals($insecureCreds, $createStubResult['stubOpts']['credentials']); $this->assertEquals( 'my-service-address:8443', $createStubResult['stubOpts']['grpc.ssl_target_name_override'] ); $this->assertNull($createStubResult['channel']); } public function testCreateStubOverrideOptions() { $grpcCredentialsHelper = new MockGrpcCredentialsHelper([ 'serviceAddress' => 'my-service-address', 'port' => 8443, 'scopes' => $this->defaultScope, ]); $createStubCallback = function ($hostname, $stubOpts, $channel) { return ['hostname' => $hostname, 'stubOpts' => $stubOpts, 'channel' => $channel]; }; $createStubResult = $grpcCredentialsHelper->createStub($createStubCallback, [ 'serviceAddress' => 'my-alternate-address', 'port' => 9554, ]); $this->assertEquals('my-alternate-address:9554', $createStubResult['hostname']); $this->assertEquals('DummySslCreds', $createStubResult['stubOpts']['credentials']); $this->assertEquals( 'my-alternate-address:9554', $createStubResult['stubOpts']['grpc.ssl_target_name_override'] ); $this->assertNull($createStubResult['channel']); } public function testCreateStubWithChannel() { $grpcCredentialsHelper = new MockGrpcCredentialsHelper([ 'serviceAddress' => 'my-service-address', 'port' => 8443, 'scopes' => $this->defaultScope, 'channel' => 'my-channel' ]); $createStubCallback = function ($hostname, $stubOpts, $channel) { return ['hostname' => $hostname, 'stubOpts' => $stubOpts, 'channel' => $channel]; }; $createStubResult = $grpcCredentialsHelper->createStub($createStubCallback); $this->assertEquals('my-service-address:8443', $createStubResult['hostname']); $this->assertEquals('DummySslCreds', $createStubResult['stubOpts']['credentials']); $this->assertEquals( 'my-service-address:8443', $createStubResult['stubOpts']['grpc.ssl_target_name_override'] ); $this->assertEquals('my-channel', $createStubResult['channel']); } public function testCreateStubWithForceNew() { $grpcCredentialsHelper = new MockGrpcCredentialsHelper([ 'serviceAddress' => 'my-service-address', 'port' => 8443, 'scopes' => $this->defaultScope, 'forceNewChannel' => true ]); $createStubCallback = function ($hostname, $stubOpts, $channel) { return ['hostname' => $hostname, 'stubOpts' => $stubOpts, 'channel' => $channel]; }; $createStubResult = $grpcCredentialsHelper->createStub($createStubCallback); $this->assertEquals('my-service-address:8443', $createStubResult['hostname']); $this->assertEquals('DummySslCreds', $createStubResult['stubOpts']['credentials']); $this->assertEquals( 'my-service-address:8443', $createStubResult['stubOpts']['grpc.ssl_target_name_override'] ); $this->assertNull($createStubResult['channel']); $this->assertTrue($createStubResult['stubOpts']['force_new']); } } tests/ApiCore/Tests/Unit/InstantiateClassesTest.php000064400000006740151742740600016440 0ustar00 null]); } else { $instance = new $class(); } $this->assertNotNull($instance); } public function testClassesProvider() { $classes = iterator_to_array($this->classesProvider()); $this->assertSame(132, count($classes)); } public function classesProvider() { $folder = 'src/'; $folderLength = strlen($folder); $namespacePrefix = 'Google'; $excludePatterns = [ 'ApiCore', 'OperationsClient', 'OperationsGapicClient', 'OperationsGrpcClient', 'MockOperationsImpl', ]; $dir = new RecursiveDirectoryIterator($folder); $it = new RecursiveIteratorIterator($dir); $reg = new RegexIterator($it, '#.+\.php$#', RecursiveRegexIterator::GET_MATCH); foreach ($reg as $files) { $file = $files[0]; $exclude = false; foreach ($excludePatterns as $exclusion) { if (strpos($file, $exclusion) !== false) { $exclude = true; break; } } if ($exclude) { continue; } $unprefixedFile = substr($file, $folderLength); $fileWithouExtension = explode('.', $unprefixedFile)[0]; $partialClass = str_replace("/", "\\", $fileWithouExtension); $class = "$namespacePrefix\\$partialClass"; yield [$class]; } } } tests/ApiCore/Tests/Unit/Mocks/MockBidiStreamingStub.php000064400000005423151742740600017241 0ustar00deserialize = $deserialize; } /** * Creates a sequence such that the responses are returned in order. * @param mixed[] $sequence * @param $finalStatus * @param callable $deserialize * @return MockBidiStreamingStub */ public static function createWithResponseSequence($sequence, $finalStatus = null, $deserialize = null) { if (count($sequence) == 0) { throw new InvalidArgumentException("createResponseSequence: need at least 1 response"); } $stub = new MockBidiStreamingStub($deserialize); foreach ($sequence as $resp) { $stub->addResponse($resp); } $stub->setStreamingStatus($finalStatus); return $stub; } public function __call($name, $arguments) { list($metadata, $options) = $arguments; $newArgs = [$name, $this->deserialize, $metadata, $options]; return call_user_func_array(array($this, '_bidiRequest'), $newArgs); } } tests/ApiCore/Tests/Unit/Mocks/MockClientStreamingStub.php000064400000004736151742740600017616 0ustar00deserialize = $deserialize; } /** * @param mixed $responseObject * @param $status * @param callable $deserialize * @return MockClientStreamingStub */ public static function create($responseObject, $status = null, $deserialize = null) { $stub = new MockClientStreamingStub($deserialize); $stub->addResponse($responseObject, $status); return $stub; } public function __call($name, $arguments) { list($metadata, $options) = $arguments; $newArgs = [$name, $this->deserialize, $metadata, $options]; return call_user_func_array(array($this, '_clientStreamRequest'), $newArgs); } } tests/ApiCore/Tests/Unit/Mocks/MockContent.php000064400000003343151742740600015273 0ustar00service_url = $service_url; } } tests/ApiCore/Tests/Unit/Mocks/MockCredentialsLoader.php000064400000004471151742740600017250 0ustar00scopes = $scopes; $this->tokens = $tokens; } public function fetchAuthToken(callable $httpHandler = null) { $this->index = ($this->index + 1) % count($this->tokens); return $this->tokens[$this->index]; } public function getCacheKey() { return 'accessTokenCacheKey'; } public function getLastReceivedToken() { if ($this->index == -1) { return null; } else { return $this->tokens[$this->index]; } } } tests/ApiCore/Tests/Unit/Mocks/MockDeadlineExceededUnaryCall.php000064400000004614151742740600020632 0ustar00timeoutMicros = $timeoutMicros; } /** * Wait for $timeoutMicros, then return DEADLINE_EXCEEDED * @return array The null response object and DEADLINE_EXCEEDED status. */ public function wait() { if ($this->timeoutMicros) { usleep($this->timeoutMicros); } return [null, new MockStatus(Code::DEADLINE_EXCEEDED, 'Deadline Exceeded')]; } } tests/ApiCore/Tests/Unit/Mocks/MockGrpcCredentialsHelper.php000064400000004023151742740600020066 0ustar00 'adcAccessToken', 'expires_in' => '100', ], ]); } protected function createSslChannelCredentials() { return "DummySslCreds"; } } tests/ApiCore/Tests/Unit/Mocks/MockPageStreamingRequest.php000064400000004404151742740600017757 0ustar00pageToken = $pageToken; $request->pageSize = $pageSize; return $request; } public function getPageToken() { return $this->pageToken; } public function getPageSize() { return $this->pageSize; } public function setPageSize($pageSize) { $this->pageSize = $pageSize; } public function setPageToken($pageToken) { return $this->pageToken = $pageToken; } } tests/ApiCore/Tests/Unit/Mocks/MockPageStreamingResponse.php000064400000004134151742740600020125 0ustar00nextPageToken = $nextPageToken; $response->resource = $resource; return $response; } public function getResourcesList() { return $this->resource; } public function getNextPageToken() { return $this->nextPageToken; } } tests/ApiCore/Tests/Unit/Mocks/MockServerStreamingStub.php000064400000005475151742740600017647 0ustar00deserialize = $deserialize; } /** * Creates a sequence such that the responses are returned in order. * @param mixed[] $sequence * @param $finalStatus * @param callable $deserialize * @return MockServerStreamingStub */ public static function createWithResponseSequence($sequence, $finalStatus = null, $deserialize = null) { if (count($sequence) == 0) { throw new InvalidArgumentException("createResponseSequence: need at least 1 response"); } $stub = new MockServerStreamingStub($deserialize); foreach ($sequence as $resp) { $stub->addResponse($resp, null); } $stub->setStreamingStatus($finalStatus); return $stub; } public function __call($name, $arguments) { list($argument, $metadata, $options) = $arguments; $newArgs = [$name, $argument, $this->deserialize, $metadata, $options]; return call_user_func_array(array($this, '_serverStreamRequest'), $newArgs); } } tests/ApiCore/Tests/Unit/Mocks/MockStub.php000064400000006742151742740600014604 0ustar00deserialize = $deserialize; } /** * @param mixed $responseObject * @param $status * @return MockStub */ public static function create($responseObject, $status = null) { $stub = new MockStub(); $stub->addResponse($responseObject, $status); return $stub; } /** * Creates a sequence such that the responses are returned in order. * @param mixed[] $sequence * @param callable $deserialize * @return MockStub */ public static function createWithResponseSequence($sequence, $deserialize = null) { $stub = new MockStub($deserialize); foreach ($sequence as $elem) { list($resp, $status) = $elem; $stub->addResponse($resp, $status); } return $stub; } public function __call($name, $arguments) { list($argument, $metadata, $options) = $arguments; $newArgs = [$name, $argument, $this->deserialize, $metadata, $options]; return call_user_func_array(array($this, '_simpleRequest'), $newArgs); } public function methodThatSleeps($argument, $metadata, $options) { $this->receivedFuncCalls[] = new ReceivedRequest( 'methodThatSleeps', $argument, $this->deserialize, $metadata, $options ); $timeoutMicros = isset($options['timeout']) ? $options['timeout'] : null; $call = new MockDeadlineExceededUnaryCall($timeoutMicros); $this->callObjects[] = $call; return $call; } } tests/ApiCore/Tests/Unit/OperationResponseTest.php000064400000014263151742740600016315 0ustar00assertSame($opName, $op->getName()); $this->assertSame($opClient, $op->getOperationsClient()); } public function testWithoutResponse() { $opName = 'operations/opname'; $opClient = self::createOperationsClient(); $op = new OperationResponse($opName, $opClient); $this->assertNull($op->getLastProtoResponse()); $this->assertFalse($op->isDone()); $this->assertNull($op->getResult()); $this->assertNull($op->getError()); $this->assertNull($op->getMetadata()); $this->assertFalse($op->operationSucceeded()); $this->assertFalse($op->operationFailed()); $this->assertEquals([ 'operationReturnType' => null, 'metadataReturnType' => null, ], $op->getReturnTypeOptions()); } public function testWithResponse() { $opName = 'operations/opname'; $opClient = self::createOperationsClient(); $protoResponse = new Operation(); $op = new OperationResponse($opName, $opClient, [ 'lastProtoResponse' => $protoResponse, ]); $this->assertSame($protoResponse, $op->getLastProtoResponse()); $this->assertFalse($op->isDone()); $this->assertNull($op->getResult()); $this->assertNull($op->getError()); $this->assertNull($op->getMetadata()); $this->assertFalse($op->operationSucceeded()); $this->assertFalse($op->operationFailed()); $this->assertEquals([ 'operationReturnType' => null, 'metadataReturnType' => null, ], $op->getReturnTypeOptions()); $response = self::createAny(self::createStatus(0, "response")); $error = self::createStatus(2, "error"); $metadata = self::createAny(self::createStatus(0, "metadata")); $protoResponse->setDone(true); $protoResponse->setResponse($response); $protoResponse->setMetadata($metadata); $this->assertTrue($op->isDone()); $this->assertSame($response, $op->getResult()); $this->assertSame($metadata, $op->getMetadata()); $this->assertTrue($op->operationSucceeded()); $this->assertFalse($op->operationFailed()); $protoResponse->setError($error); $this->assertNull($op->getResult()); $this->assertSame($error, $op->getError()); $this->assertFalse($op->operationSucceeded()); $this->assertTrue($op->operationFailed()); } public function testWithOptions() { $opName = 'operations/opname'; $opClient = self::createOperationsClient(); $protoResponse = new Operation(); $op = new OperationResponse($opName, $opClient, [ 'operationReturnType' => '\Google\Rpc\Status', 'metadataReturnType' => '\Google\Protobuf\Any', 'lastProtoResponse' => $protoResponse, ]); $this->assertSame($protoResponse, $op->getLastProtoResponse()); $this->assertFalse($op->isDone()); $this->assertNull($op->getResult()); $this->assertNull($op->getError()); $this->assertNull($op->getMetadata()); $this->assertEquals([ 'operationReturnType' => '\Google\Rpc\Status', 'metadataReturnType' => '\Google\Protobuf\Any', ], $op->getReturnTypeOptions()); $innerResponse = self::createStatus(0, "response"); $innerMetadata = new Any(); $innerMetadata->setValue("metadata"); $response = self::createAny($innerResponse); $metadata = self::createAny($innerMetadata); $protoResponse->setDone(true); $protoResponse->setResponse($response); $protoResponse->setMetadata($metadata); $this->assertTrue($op->isDone()); $this->assertEquals($innerResponse, $op->getResult()); $this->assertEquals($innerMetadata, $op->getMetadata()); } public static function createOperationsClient($stub = null) { $client = new OperationsClient([ 'createOperationsStubFunction' => function ($hostname, $opts) use ($stub) { return $stub; }, 'serviceAddress' => '', 'scopes' => [], ]); return $client; } } tests/ApiCore/Tests/Unit/PageStreamingDescriptorTest.php000064400000004114151742740600017415 0ustar00 'getNextPageToken', // Missing field // 'responsePageTokenField' => 'getNextPageToken', 'resourceField' => 'getResourcesList' ]); } } tests/ApiCore/Tests/Unit/PageTest.php000064400000012065151742740600013510 0ustar00 'pageToken', 'responsePageTokenField' => 'nextPageToken', 'resourceField' => 'resourcesList' ]); $mockApiCall = function () use ($stub) { list($response, $status) = call_user_func_array(array($stub, 'takeAction'), func_get_args())->wait(); return $response; }; return new Page([$mockRequest, [], []], $mockApiCall, $descriptor); } public function testNextPageMethods() { $responseA = MockPageStreamingResponse::createPageStreamingResponse('nextPageToken1', ['resource1']); $responseB = MockPageStreamingResponse::createPageStreamingResponse('', ['resource2']); $page = PageTest::createPage([ [$responseA, new MockStatus(Grpc\STATUS_OK, '')], [$responseB, new MockStatus(Grpc\STATUS_OK, '')], ]); $this->assertEquals($page->hasNextPage(), true); $this->assertEquals($page->getNextPageToken(), 'nextPageToken1'); $nextPage = $page->getNextPage(); $this->assertEquals($nextPage->hasNextPage(), false); $this->assertEquals($nextPage->getNextPageToken(), ''); } /** * @expectedException \Google\ApiCore\ValidationException * @expectedExceptionMessage Could not complete getNextPage operation */ public function testNextPageMethodsFailWithNoNextPage() { $responseA = MockPageStreamingResponse::createPageStreamingResponse('', ['resource1']); $page = PageTest::createPage([ [$responseA, new MockStatus(Grpc\STATUS_OK, '')], ]); $this->assertEquals($page->hasNextPage(), false); $page->getNextPage(); } /** * @expectedException \Google\ApiCore\ValidationException * @expectedExceptionMessage pageSize argument was defined, but the method does not */ public function testNextPageMethodsFailWithPageSizeUnsupported() { $responseA = MockPageStreamingResponse::createPageStreamingResponse('nextPageToken1', ['resource1']); $responseB = MockPageStreamingResponse::createPageStreamingResponse('', ['resource2']); $page = PageTest::createPage([ [$responseA, new MockStatus(Grpc\STATUS_OK, '')], [$responseB, new MockStatus(Grpc\STATUS_OK, '')], ]); $page->getNextPage(3); } public function testPageElementMethods() { $response = MockPageStreamingResponse::createPageStreamingResponse( 'nextPageToken1', ['resource1', 'resource2', 'resource3'] ); $page = PageTest::createPage([ [$response, new MockStatus(Grpc\STATUS_OK, '')], ]); $this->assertEquals($page->getPageElementCount(), 3); $results = iterator_to_array($page); $this->assertEquals($results, ['resource1', 'resource2', 'resource3']); } } tests/ApiCore/Tests/Unit/PagedListResponseTest.php000064400000005657151742740600016240 0ustar00 'pageToken', 'responsePageTokenField' => 'nextPageToken', 'resourceField' => 'resourcesList' ]); $response = MockPageStreamingResponse::createPageStreamingResponse('nextPageToken1', ['resource1']); $stub = MockStub::create($response); $mockApiCall = function () use ($stub) { list($response, $status) = call_user_func_array(array($stub, 'takeAction'), func_get_args())->wait(); return $response; }; $pageAccessor = new PagedListResponse([$mockRequest, [], []], $mockApiCall, $descriptor); $page = $pageAccessor->getPage(); $this->assertEquals($page->getNextPageToken(), 'nextPageToken1'); $this->assertEquals(iterator_to_array($page->getIterator()), ['resource1']); } } tests/ApiCore/Tests/Unit/PathTemplateTest.php000064400000016243151742740600015226 0ustar00assertEquals( count(new PathTemplate('a/b/**/*/{a=hello/world}')), 6 ); } /** * @expectedException \Google\ApiCore\ValidationException */ public function testFailInvalidToken() { new PathTemplate('hello/wor*ld'); } /** * @expectedException \Google\ApiCore\ValidationException */ public function testFailWhenImpossibleMatch01() { $template = new PathTemplate('hello/world'); $template->match('hello'); } /** * @expectedException \Google\ApiCore\ValidationException */ public function testFailWhenImpossibleMatch02() { $template = new PathTemplate('hello/world'); $template->match('hello/world/fail'); } /** * @expectedException \Google\ApiCore\ValidationException */ public function testFailMismatchedLiteral() { $template = new PathTemplate('hello/world'); $template->match('hello/world2'); } /** * @expectedException \Google\ApiCore\ValidationException */ public function testFailWhenMultiplePathWildcards() { new PathTemplate('buckets/*/**/**/objects/*'); } /** * @expectedException \Google\ApiCore\ValidationException */ public function testFailIfInnerBinding() { new PathTemplate('buckets/{hello={world}}'); } /** * @expectedException \Google\ApiCore\ValidationException */ public function testFailUnexpectedEof() { new PathTemplate('a/{hello=world'); } public function testMatchAtomicResourceName() { $template = new PathTemplate('buckets/*/*/objects/*'); $this->assertEquals( ['$0' => 'f', '$1' => 'o', '$2' => 'bar'], $template->match('buckets/f/o/objects/bar') ); $template = new PathTemplate('/buckets/{hello}'); $this->assertEquals( ['hello' => 'world'], $template->match('buckets/world') ); $template = new PathTemplate('/buckets/{hello=*}'); $this->assertEquals( ['hello' => 'world'], $template->match('buckets/world') ); } public function testMatchEscapedChars() { $template = new PathTemplate('buckets/*/objects'); $this->assertEquals( ['$0' => 'hello%2F%2Bworld'], $template->match('buckets/hello%2F%2Bworld/objects') ); } public function testMatchTemplateWithUnboundedWildcard() { $template = new PathTemplate('buckets/*/objects/**'); $this->assertEquals( ['$0' => 'foo', '$1' => 'bar/baz'], $template->match('buckets/foo/objects/bar/baz') ); } public function testMatchWithUnboundInMiddle() { $template = new PathTemplate('bar/**/foo/*'); $this->assertEquals( ['$0' => 'foo/foo', '$1' => 'bar'], $template->match('bar/foo/foo/foo/bar') ); } public function testRenderAtomicResource() { $template = new PathTemplate('buckets/*/*/*/objects/*'); $url = $template->render( ['$0' => 'f', '$1' => 'o', '$2' => 'o', '$3' => 'google.com:a-b'] ); $this->assertEquals($url, 'buckets/f/o/o/objects/google.com:a-b'); } /** * @expectedException \Google\ApiCore\ValidationException */ public function testRenderFailWhenTooFewVariables() { $template = new PathTemplate('buckets/*/*/*/objects/*'); $template->render(['$0' => 'f', '$1' => 'l', '$2' => 'o']); } public function testRenderWithUnboundInMiddle() { $template = new PathTemplate('bar/**/foo/*'); $url = $template->render(['$0' => '1/2', '$1' => '3']); $this->assertEquals($url, 'bar/1/2/foo/3'); } public function testToString() { $template = new PathTemplate('bar/**/foo/*'); $this->assertEquals((string) $template, 'bar/{$0=**}/foo/{$1=*}'); $template = new PathTemplate('buckets/*/objects/*'); $this->assertEquals( (string) ($template), 'buckets/{$0=*}/objects/{$1=*}' ); $template = new PathTemplate('/buckets/{hello}'); $this->assertEquals((string) ($template), 'buckets/{hello=*}'); $template = new PathTemplate('/buckets/{hello=what}/{world}'); $this->assertEquals( (string) ($template), 'buckets/{hello=what}/{world=*}' ); $template = new PathTemplate('/buckets/helloazAZ09-.~_what'); $this->assertEquals( (string) ($template), 'buckets/helloazAZ09-.~_what' ); } public function testSubstitutionOddChars() { $template = new PathTemplate('projects/{project}/topics/{topic}'); $url = $template->render( ['project' => 'google.com:proj-test', 'topic' => 'some-topic'] ); $this->assertEquals( $url, 'projects/google.com:proj-test/topics/some-topic' ); $template = new PathTemplate('projects/{project}/topics/{topic}'); $url = $template->render( ['project' => 'g.,;:~`!@#$%^&()+-', 'topic' => 'sdf<>,.?[]'] ); $this->assertEquals( $url, 'projects/g.,;:~`!@#$%^&()+-/topics/sdf<>,.?[]' ); } public function testLeadingSlash() { $this->assertEquals( count(new PathTemplate('/a/b/**/*/{a=hello/world}')), 6 ); } } tests/ApiCore/Tests/Unit/ProtobufExtensionTest.php000064400000004164151742740600016332 0ustar00markTestSkipped('Must have the protobuf extension installed to run this test.'); } } public function testForProtobufExtension() { // This test should always pass - we have it here so that we can determine whether the // protobuf extension is installed, based on whether this test passes or is skipped $this->assertTrue(true); } } tests/ApiCore/Tests/Unit/RetrySettingsTest.php000064400000022477151742740600015472 0ustar00 100, 'retryDelayMultiplier' => 1.3, // Missing field: //'maxRetryDelayMillis' => 400, 'initialRpcTimeoutMillis' => 150, 'rpcTimeoutMultiplier' => 2, 'maxRpcTimeoutMillis' => 600, 'totalTimeoutMillis' => 2000 ]); } /** * @dataProvider retrySettingsProvider * @param $settings * @param $expectedValues */ public function testRetrySettings($settings, $expectedValues) { $retrySettings = new RetrySettings($settings); $this->compare($retrySettings, $expectedValues); } /** * @dataProvider withRetrySettingsProvider * @param $settings * @param $withSettings * @param $expectedValues */ public function testWith($settings, $withSettings, $expectedValues) { $retrySettings = new RetrySettings($settings); $withRetrySettings = $retrySettings->with($withSettings); $this->compare($withRetrySettings, $expectedValues); } private function compare(RetrySettings $retrySettings, $expectedValues) { $this->assertSame( $expectedValues['initialRetryDelayMillis'], $retrySettings->getInitialRetryDelayMillis() ); $this->assertSame( $expectedValues['retryDelayMultiplier'], $retrySettings->getRetryDelayMultiplier() ); $this->assertSame( $expectedValues['maxRetryDelayMillis'], $retrySettings->getMaxRetryDelayMillis() ); $this->assertSame( $expectedValues['rpcTimeoutMultiplier'], $retrySettings->getRpcTimeoutMultiplier() ); $this->assertSame( $expectedValues['maxRpcTimeoutMillis'], $retrySettings->getMaxRpcTimeoutMillis() ); $this->assertSame( $expectedValues['totalTimeoutMillis'], $retrySettings->getTotalTimeoutMillis() ); $this->assertSame( $expectedValues['retryableCodes'], $retrySettings->getRetryableCodes() ); $this->assertSame( $expectedValues['retriesEnabled'], $retrySettings->retriesEnabled() ); $this->assertSame( $expectedValues['noRetriesRpcTimeoutMillis'], $retrySettings->getNoRetriesRpcTimeoutMillis() ); } public function retrySettingsProvider() { $defaultSettings = [ 'initialRetryDelayMillis' => 100, 'retryDelayMultiplier' => 1.3, 'maxRetryDelayMillis' => 400, 'initialRpcTimeoutMillis' => 150, 'rpcTimeoutMultiplier' => 2, 'maxRpcTimeoutMillis' => 600, 'totalTimeoutMillis' => 2000, 'retryableCodes' => [1], ]; $defaultExpectedValues = [ 'initialRetryDelayMillis' => 100, 'retryDelayMultiplier' => 1.3, 'maxRetryDelayMillis' => 400, 'initialRpcTimeoutMillis' => 150, 'rpcTimeoutMultiplier' => 2, 'maxRpcTimeoutMillis' => 600, 'totalTimeoutMillis' => 2000, 'retryableCodes' => [1], 'noRetriesRpcTimeoutMillis' => 150, 'retriesEnabled' => true ]; return [ [ // Test with retryableCodes, without retriesEnabled or noRetriesRpcTimeoutMillis $defaultSettings, $defaultExpectedValues ], [ // Test with empty retryableCodes, without retriesEnabled or noRetriesRpcTimeoutMillis [ 'retryableCodes' => [], ] + $defaultSettings, [ 'retryableCodes' => [], 'retriesEnabled' => false ] + $defaultExpectedValues ], [ // Test with retryableCodes, with retriesEnabled=false [ 'retriesEnabled' => false ] + $defaultSettings, [ 'retriesEnabled' => false ] + $defaultExpectedValues ], [ // Test with empty retryableCodes, with retriesEnabled=true [ 'retryableCodes' => [], 'retriesEnabled' => true ] + $defaultSettings, [ 'retryableCodes' => [], 'retriesEnabled' => true ] + $defaultExpectedValues ], [ // Test with noRetriesRpcTimeoutMillis [ 'noRetriesRpcTimeoutMillis' => 151, ] + $defaultSettings, [ 'noRetriesRpcTimeoutMillis' => 151, ] + $defaultExpectedValues ] ]; } public function withRetrySettingsProvider() { $defaultSettings = [ 'initialRetryDelayMillis' => 1, 'retryDelayMultiplier' => 1, 'maxRetryDelayMillis' => 1, 'initialRpcTimeoutMillis' => 1, 'rpcTimeoutMultiplier' => 1, 'maxRpcTimeoutMillis' => 1, 'totalTimeoutMillis' => 1, 'retryableCodes' => [1], 'noRetriesRpcTimeoutMillis' => 1, 'retriesEnabled' => true, ]; $defaultExpectedValues = [ 'initialRetryDelayMillis' => 1, 'retryDelayMultiplier' => 1, 'maxRetryDelayMillis' => 1, 'initialRpcTimeoutMillis' => 1, 'rpcTimeoutMultiplier' => 1, 'maxRpcTimeoutMillis' => 1, 'totalTimeoutMillis' => 1, 'retryableCodes' => [1], 'noRetriesRpcTimeoutMillis' => 1, 'retriesEnabled' => true, ]; return [ [ // Test with no changes $defaultSettings, [], $defaultExpectedValues ], [ // Test disable retries $defaultSettings, [ 'retriesEnabled' => false, ], [ 'retriesEnabled' => false, ] + $defaultExpectedValues ], [ // Test change all settings $defaultSettings, [ 'initialRetryDelayMillis' => 2, 'retryDelayMultiplier' => 3, 'maxRetryDelayMillis' => 4, 'initialRpcTimeoutMillis' => 5, 'rpcTimeoutMultiplier' => 6, 'maxRpcTimeoutMillis' => 7, 'totalTimeoutMillis' => 8, 'retryableCodes' => [9], 'noRetriesRpcTimeoutMillis' => 10, 'retriesEnabled' => false, ], [ 'initialRetryDelayMillis' => 2, 'retryDelayMultiplier' => 3, 'maxRetryDelayMillis' => 4, 'initialRpcTimeoutMillis' => 5, 'rpcTimeoutMultiplier' => 6, 'maxRpcTimeoutMillis' => 7, 'totalTimeoutMillis' => 8, 'retryableCodes' => [9], 'noRetriesRpcTimeoutMillis' => 10, 'retriesEnabled' => false, ] ] ]; } } tests/ApiCore/Tests/Unit/SerializerTest.php000064400000016222151742740600014744 0ustar00encodeMessage($message); $this->assertEquals($arrayStructure, $serializedMessage); // Check that $message when encoded and decoded is unchanged $deserializedMessage = $serializer->decodeMessage(new $klass(), $serializedMessage); $this->assertEquals($message, $deserializedMessage); // Check that $arrayStructure when decoded is equal to $message $deserializedStructure = $serializer->decodeMessage(new $klass(), $arrayStructure); $this->assertEquals($message, $deserializedStructure); // Check that $arrayStructure when decoded and encoded is unchanged $reserializedStructure = $serializer->encodeMessage($deserializedStructure); $this->assertEquals($arrayStructure, $reserializedStructure); } public function testStatusMessage() { $details = [new Any()]; $message = new Status(); $message->setMessage("message"); $message->setCode(0); $message->setDetails($details); $encodedMessage = [ 'message' => 'message', 'code' => 0, 'details' => [ [ 'typeUrl' => '', 'value' => '', ], ] ]; $this->verifySerializeAndDeserialize($message, $encodedMessage); } public function testHttpRule() { $message = new HttpRule(); $encodedMessage = [ 'selector' => '', 'body' => '', 'additionalBindings' => [], ]; $this->verifySerializeAndDeserialize($message, $encodedMessage); } public function testHttpRuleSetOneof() { $message = new HttpRule(); $message->setPatch(''); $encodedMessage = [ 'selector' => '', 'patch' => '', 'body' => '', 'additionalBindings' => [], ]; $this->verifySerializeAndDeserialize($message, $encodedMessage); } public function testHttpRuleSetOneofToValue() { $message = new HttpRule(); $message->setPatch('test'); $encodedMessage = [ 'selector' => '', 'patch' => 'test', 'body' => '', 'additionalBindings' => [], ]; $this->verifySerializeAndDeserialize($message, $encodedMessage); } public function testFieldMask() { $message = new FieldMask(); $encodedMessage = [ 'paths' => [] ]; $this->verifySerializeAndDeserialize($message, $encodedMessage); } public function testProperlyHandlesMessage() { $value = 'test'; // Using this class because it contains maps, oneofs and structs $message = new \Google\Protobuf\Struct(); $innerValue1 = new Value(); $innerValue1->setStringValue($value); $innerValue2 = new Value(); $innerValue2->setBoolValue(true); $structValue1 = new Value(); $structValue1->setStringValue(strtoupper($value)); $structValue2 = new Value(); $structValue2->setStringValue($value); $labels = [ strtoupper($value) => $structValue1, $value => $structValue2, ]; $innerStruct = new Struct(); $innerStruct->setFields($labels); $innerValue3 = new Value(); $innerValue3->setStructValue($innerStruct); $innerValues = [$innerValue1, $innerValue2, $innerValue3]; $listValue = new ListValue(); $listValue->setValues($innerValues); $fieldValue = new Value(); $fieldValue->setListValue($listValue); $fields = [ 'listField' => $fieldValue, ]; $message->setFields($fields); $encodedMessage = [ 'fields' => [ 'listField' => [ 'listValue' => [ 'values' => [ [ 'stringValue' => $value, ], [ 'boolValue' => true, ], [ 'structValue' => [ 'fields' => [ strtoupper($value) => [ 'stringValue' => strtoupper($value), ], $value => [ 'stringValue' => $value, ] ], ], ] ] ] ] ], ]; $this->verifySerializeAndDeserialize($message, $encodedMessage); } } tests/ApiCore/Tests/Unit/ServerStreamTest.php000064400000016717151742740600015266 0ustar00assertSame($call, $stream->getServerStreamingCall()); $this->assertSame([], iterator_to_array($stream->readAll())); } /** * @expectedException \Google\ApiCore\ApiException * @expectedExceptionMessage empty failure */ public function testEmptyFailure() { $call = new MockServerStreamingCall([], null, new MockStatus(Grpc\STATUS_INTERNAL, 'empty failure')); $stream = new ServerStream($call); $this->assertSame($call, $stream->getServerStreamingCall()); iterator_to_array($stream->readAll()); } public function testStringsSuccess() { $responses = ['abc', 'def']; $call = new MockServerStreamingCall($responses); $stream = new ServerStream($call); $this->assertSame($call, $stream->getServerStreamingCall()); $this->assertSame($responses, iterator_to_array($stream->readAll())); } /** * @expectedException \Google\ApiCore\ApiException * @expectedExceptionMessage strings failure */ public function testStringsFailure() { $responses = ['abc', 'def']; $call = new MockServerStreamingCall( $responses, null, new MockStatus(Grpc\STATUS_INTERNAL, 'strings failure') ); $stream = new ServerStream($call); $this->assertSame($call, $stream->getServerStreamingCall()); $index = 0; try { foreach ($stream->readAll() as $response) { $this->assertSame($response, $responses[$index]); $index++; } } finally { $this->assertSame(2, $index); } } public function testObjectsSuccess() { $responses = [ ServerStreamTest::createStatus(Grpc\STATUS_OK, 'response1'), ServerStreamTest::createStatus(Grpc\STATUS_OK, 'response2') ]; $serializedResponses = []; foreach ($responses as $response) { $serializedResponses[] = $response->serializeToString(); } $call = new MockServerStreamingCall($serializedResponses, ['\Google\Rpc\Status', 'mergeFromString']); $stream = new ServerStream($call); $this->assertSame($call, $stream->getServerStreamingCall()); $this->assertEquals($responses, iterator_to_array($stream->readAll())); } /** * @expectedException \Google\ApiCore\ApiException * @expectedExceptionMessage objects failure */ public function testObjectsFailure() { $responses = [ ServerStreamTest::createStatus(Grpc\STATUS_OK, 'response1'), ServerStreamTest::createStatus(Grpc\STATUS_OK, 'response2') ]; $serializedResponses = []; foreach ($responses as $response) { $serializedResponses[] = $response->serializeToString(); } $call = new MockServerStreamingCall( $serializedResponses, ['\Google\Rpc\Status', 'mergeFromString'], new MockStatus(Grpc\STATUS_INTERNAL, 'objects failure') ); $stream = new ServerStream($call); $this->assertSame($call, $stream->getServerStreamingCall()); $index = 0; try { foreach ($stream->readAll() as $response) { $this->assertEquals($response, $responses[$index]); $index++; } } finally { $this->assertSame(2, $index); } } public function testResourcesSuccess() { $resources = ['resource1', 'resource2', 'resource3']; $repeatedField1 = new RepeatedField(GPBType::STRING); $repeatedField1[] = 'resource1'; $repeatedField2 = new RepeatedField(GPBType::STRING); $repeatedField2[] = 'resource2'; $repeatedField2[] = 'resource3'; $responses = [ MockPageStreamingResponse::createPageStreamingResponse('nextPageToken1', $repeatedField1), MockPageStreamingResponse::createPageStreamingResponse('nextPageToken1', $repeatedField2) ]; $call = new MockServerStreamingCall($responses); $stream = new ServerStream($call, [ 'resourcesGetMethod' => 'getResourcesList' ]); $this->assertSame($call, $stream->getServerStreamingCall()); $this->assertEquals($resources, iterator_to_array($stream->readAll())); } /** * @expectedException \Google\ApiCore\ApiException * @expectedExceptionMessage resources failure */ public function testResourcesFailure() { $resources = ['resource1', 'resource2', 'resource3']; $responses = [ MockPageStreamingResponse::createPageStreamingResponse('nextPageToken1', ['resource1']), MockPageStreamingResponse::createPageStreamingResponse('nextPageToken1', ['resource2', 'resource3']) ]; $call = new MockServerStreamingCall( $responses, null, new MockStatus(Grpc\STATUS_INTERNAL, 'resources failure') ); $stream = new ServerStream($call, [ 'resourcesGetMethod' => 'getResourcesList' ]); $this->assertSame($call, $stream->getServerStreamingCall()); $index = 0; try { foreach ($stream->readAll() as $response) { $this->assertSame($response, $resources[$index]); $index++; } } finally { $this->assertSame(3, $index); } } } tests/ApiCore/Tests/Unit/TestTrait.php000064400000004263151742740600013720 0ustar00setCode($code); $status->setMessage($message); return $status; } /** * @param $value \Google\Protobuf\Internal\Message; * @return Any */ public static function createAny($value) { $any = new Any(); $any->setValue($value->serializeToString()); return $any; } } tests/ApiCore/Tests/Unit/testdata/test_service_client_config.json000064400000001762151742740600021353 0ustar00{ "interfaces": { "test.interface.v1.api": { "retry_codes": { "idempotent": [ "DEADLINE_EXCEEDED", "UNAVAILABLE" ], "non_idempotent": ["INTERNAL"] }, "retry_params": { "default": { "initial_retry_delay_millis": 100, "retry_delay_multiplier": 1.2, "max_retry_delay_millis": 1000, "initial_rpc_timeout_millis": 300, "rpc_timeout_multiplier": 1.3, "max_rpc_timeout_millis": 3000, "total_timeout_millis": 30000 } }, "methods": { "SimpleMethod": { "timeout_millis": 40000, "retry_codes_name": "idempotent", "retry_params_name": "default" }, "PageStreamingMethod": { "timeout_millis": 40000, "retry_codes_name": "non_idempotent", "retry_params_name": "default" }, "TimeoutOnlyMethod": { "timeout_millis": 40000 } } } } }tests/ApiCore/Tests/Unit/testdata/test_service_invalid_client_config.json000064400000001574151742740600023062 0ustar00{ "interfaces": { "test.interface.v1.api": { "retry_codes": { "idempotent": [ "DEADLINE_EXCEEDED", "UNAVAILABLE" ], "non_idempotent": ["INTERNAL"] }, "retry_params": { "default": { "initial_retry_delay_millis": 100, "retry_delay_multiplier": 1.2, "initial_rpc_timeout_millis": 300, "rpc_timeout_multiplier": 1.3, "max_rpc_timeout_millis": 3000, "total_timeout_millis": 30000 } }, "methods": { "SimpleMethod": { "timeout_millis": 40000, "retry_codes_name": "idempotent", "retry_params_name": "default" }, "PageStreamingMethod": { "timeout_millis": 40000, "retry_codes_name": "non_idempotent", "retry_params_name": "default" } } } } }tests/bootstrap.php000064400000003341151742740600010443 0ustar00