<?php
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/api/logging.proto

namespace Google\Api;

use Google\Protobuf\Internal\GPBType;
use Google\Protobuf\Internal\RepeatedField;
use Google\Protobuf\Internal\GPBUtil;

/**
 * Logging configuration of the service.
 * The following example shows how to configure logs to be sent to the
 * producer and consumer projects. In the example, the `activity_history`
 * log is sent to both the producer and consumer projects, whereas the
 * `purchase_history` log is only sent to the producer project.
 *     monitored_resources:
 *     - type: library.googleapis.com/branch
 *       labels:
 *       - key: /city
 *         description: The city where the library branch is located in.
 *       - key: /name
 *         description: The name of the branch.
 *     logs:
 *     - name: activity_history
 *       labels:
 *       - key: /customer_id
 *     - name: purchase_history
 *     logging:
 *       producer_destinations:
 *       - monitored_resource: library.googleapis.com/branch
 *         logs:
 *         - activity_history
 *         - purchase_history
 *       consumer_destinations:
 *       - monitored_resource: library.googleapis.com/branch
 *         logs:
 *         - activity_history
 *
 * Generated from protobuf message google.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;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type \Google\Api\Logging\LoggingDestination[]|\Google\Protobuf\Internal\RepeatedField $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.
     *     @type \Google\Api\Logging\LoggingDestination[]|\Google\Protobuf\Internal\RepeatedField $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.
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Google\Api\Logging::initOnce();
        parent::__construct($data);
    }

    /**
     * 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;
    }

}


<?php
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/api/config_change.proto

namespace Google\Api;

use Google\Protobuf\Internal\GPBType;
use Google\Protobuf\Internal\RepeatedField;
use Google\Protobuf\Internal\GPBUtil;

/**
 * Output generated from semantically comparing two versions of a service
 * configuration.
 * Includes detailed information about a field that have changed with
 * applicable advice about potential consequences for the change, such as
 * backwards-incompatibility.
 *
 * Generated from protobuf message google.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;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type string $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]
     *     @type string $old_value
     *           Value of the changed object in the old Service configuration,
     *           in JSON format. This field will not be populated if ChangeType == ADDED.
     *     @type string $new_value
     *           Value of the changed object in the new Service configuration,
     *           in JSON format. This field will not be populated if ChangeType == REMOVED.
     *     @type int $change_type
     *           The type for this change, either ADDED, REMOVED, or MODIFIED.
     *     @type \Google\Api\Advice[]|\Google\Protobuf\Internal\RepeatedField $advices
     *           Collection of advice provided for this change, useful for determining the
     *           possible impact of this change.
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Google\Api\ConfigChange::initOnce();
        parent::__construct($data);
    }

    /**
     * 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;
    }

}


<?php
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/api/distribution.proto

namespace Google\Api\Distribution;

use Google\Protobuf\Internal\GPBType;
use Google\Protobuf\Internal\RepeatedField;
use Google\Protobuf\Internal\GPBUtil;

/**
 * Exemplars are example points that may be used to annotate aggregated
 * distribution values. They are metadata that gives information about a
 * particular value added to a Distribution bucket, such as a trace ID that
 * was active when a value was added. They may contain further information,
 * such as a example values and timestamps, origin, etc.
 *
 * Generated from protobuf message google.api.Distribution.Exemplar
 */
class Exemplar extends \Google\Protobuf\Internal\Message
{
    /**
     * Value of the exemplar point. This value determines to which bucket the
     * exemplar belongs.
     *
     * Generated from protobuf field double value = 1;
     */
    private $value = 0.0;
    /**
     * The observation (sampling) time of the above value.
     *
     * Generated from protobuf field .google.protobuf.Timestamp timestamp = 2;
     */
    private $timestamp = null;
    /**
     * Contextual information about the example value. Examples are:
     *   Trace ID: type.googleapis.com/google.devtools.cloudtrace.v1.Trace
     *   Literal string: type.googleapis.com/google.protobuf.StringValue
     *   Labels dropped during aggregation:
     *     type.googleapis.com/google.monitoring.v3.DroppedLabels
     * There may be only a single attachment of any given message type in a
     * single exemplar, and this is enforced by the system.
     *
     * Generated from protobuf field repeated .google.protobuf.Any attachments = 3;
     */
    private $attachments;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type float $value
     *           Value of the exemplar point. This value determines to which bucket the
     *           exemplar belongs.
     *     @type \Google\Protobuf\Timestamp $timestamp
     *           The observation (sampling) time of the above value.
     *     @type \Google\Protobuf\Any[]|\Google\Protobuf\Internal\RepeatedField $attachments
     *           Contextual information about the example value. Examples are:
     *             Trace ID: type.googleapis.com/google.devtools.cloudtrace.v1.Trace
     *             Literal string: type.googleapis.com/google.protobuf.StringValue
     *             Labels dropped during aggregation:
     *               type.googleapis.com/google.monitoring.v3.DroppedLabels
     *           There may be only a single attachment of any given message type in a
     *           single exemplar, and this is enforced by the system.
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Google\Api\Distribution::initOnce();
        parent::__construct($data);
    }

    /**
     * Value of the exemplar point. This value determines to which bucket the
     * exemplar belongs.
     *
     * Generated from protobuf field double value = 1;
     * @return float
     */
    public function getValue()
    {
        return $this->value;
    }

    /**
     * Value of the exemplar point. This value determines to which bucket the
     * exemplar belongs.
     *
     * Generated from protobuf field double value = 1;
     * @param float $var
     * @return $this
     */
    public function setValue($var)
    {
        GPBUtil::checkDouble($var);
        $this->value = $var;

        return $this;
    }

    /**
     * The observation (sampling) time of the above value.
     *
     * Generated from protobuf field .google.protobuf.Timestamp timestamp = 2;
     * @return \Google\Protobuf\Timestamp
     */
    public function getTimestamp()
    {
        return $this->timestamp;
    }

    /**
     * The observation (sampling) time of the above value.
     *
     * Generated from protobuf field .google.protobuf.Timestamp timestamp = 2;
     * @param \Google\Protobuf\Timestamp $var
     * @return $this
     */
    public function setTimestamp($var)
    {
        GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
        $this->timestamp = $var;

        return $this;
    }

    /**
     * Contextual information about the example value. Examples are:
     *   Trace ID: type.googleapis.com/google.devtools.cloudtrace.v1.Trace
     *   Literal string: type.googleapis.com/google.protobuf.StringValue
     *   Labels dropped during aggregation:
     *     type.googleapis.com/google.monitoring.v3.DroppedLabels
     * There may be only a single attachment of any given message type in a
     * single exemplar, and this is enforced by the system.
     *
     * Generated from protobuf field repeated .google.protobuf.Any attachments = 3;
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getAttachments()
    {
        return $this->attachments;
    }

    /**
     * Contextual information about the example value. Examples are:
     *   Trace ID: type.googleapis.com/google.devtools.cloudtrace.v1.Trace
     *   Literal string: type.googleapis.com/google.protobuf.StringValue
     *   Labels dropped during aggregation:
     *     type.googleapis.com/google.monitoring.v3.DroppedLabels
     * There may be only a single attachment of any given message type in a
     * single exemplar, and this is enforced by the system.
     *
     * Generated from protobuf field repeated .google.protobuf.Any attachments = 3;
     * @param \Google\Protobuf\Any[]|\Google\Protobuf\Internal\RepeatedField $var
     * @return $this
     */
    public function setAttachments($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Any::class);
        $this->attachments = $arr;

        return $this;
    }

}

// Adding a class alias for backwards compatibility with the previous class name.
class_alias(Exemplar::class, \Google\Api\Distribution_Exemplar::class);


<?php
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/api/service.proto

namespace Google\Api;

use Google\Protobuf\Internal\GPBType;
use Google\Protobuf\Internal\RepeatedField;
use Google\Protobuf\Internal\GPBUtil;

/**
 * `Service` is the root object of Google service configuration schema. It
 * describes basic information about a service, such as the name and the
 * title, and delegates other aspects to sub-sections. Each sub-section is
 * either a proto message or a repeated proto message that configures a
 * specific aspect, such as auth. See each proto message definition for details.
 * Example:
 *     type: google.api.Service
 *     config_version: 3
 *     name: calendar.googleapis.com
 *     title: Google Calendar API
 *     apis:
 *     - name: google.calendar.v3.Calendar
 *     authentication:
 *       providers:
 *       - id: google_calendar_auth
 *         jwks_uri: https://www.googleapis.com/oauth2/v1/certs
 *         issuer: https://securetoken.google.com
 *       rules:
 *       - selector: "*"
 *         requirements:
 *           provider_id: google_calendar_auth
 *
 * Generated from protobuf message google.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;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type \Google\Protobuf\UInt32Value $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`.
     *     @type string $name
     *           The DNS address at which this service is available,
     *           e.g. `calendar.googleapis.com`.
     *     @type string $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.
     *     @type string $title
     *           The product title for this service.
     *     @type string $producer_project_id
     *           The Google project that owns this service.
     *     @type \Google\Protobuf\Api[]|\Google\Protobuf\Internal\RepeatedField $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.
     *     @type \Google\Protobuf\Type[]|\Google\Protobuf\Internal\RepeatedField $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
     *     @type \Google\Protobuf\Enum[]|\Google\Protobuf\Internal\RepeatedField $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
     *     @type \Google\Api\Documentation $documentation
     *           Additional API documentation.
     *     @type \Google\Api\Backend $backend
     *           API backend configuration.
     *     @type \Google\Api\Http $http
     *           HTTP configuration.
     *     @type \Google\Api\Quota $quota
     *           Quota configuration.
     *     @type \Google\Api\Authentication $authentication
     *           Auth configuration.
     *     @type \Google\Api\Context $context
     *           Context configuration.
     *     @type \Google\Api\Usage $usage
     *           Configuration controlling usage of this service.
     *     @type \Google\Api\Endpoint[]|\Google\Protobuf\Internal\RepeatedField $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.
     *     @type \Google\Api\Control $control
     *           Configuration for the service control plane.
     *     @type \Google\Api\LogDescriptor[]|\Google\Protobuf\Internal\RepeatedField $logs
     *           Defines the logs used by this service.
     *     @type \Google\Api\MetricDescriptor[]|\Google\Protobuf\Internal\RepeatedField $metrics
     *           Defines the metrics used by this service.
     *     @type \Google\Api\MonitoredResourceDescriptor[]|\Google\Protobuf\Internal\RepeatedField $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.
     *     @type \Google\Api\Billing $billing
     *           Billing configuration.
     *     @type \Google\Api\Logging $logging
     *           Logging configuration.
     *     @type \Google\Api\Monitoring $monitoring
     *           Monitoring configuration.
     *     @type \Google\Api\SystemParameters $system_parameters
     *           System parameter configuration.
     *     @type \Google\Api\SourceInfo $source_info
     *           Output only. The source information for this configuration if available.
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Google\Api\Service::initOnce();
        parent::__construct($data);
    }

    /**
     * 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;
    }

}


<?php
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/rpc/error_details.proto

namespace Google\Rpc;

use Google\Protobuf\Internal\GPBType;
use Google\Protobuf\Internal\RepeatedField;
use Google\Protobuf\Internal\GPBUtil;

/**
 * Describes violations in a client request. This error type focuses on the
 * syntactic aspects of the request.
 *
 * Generated from protobuf message google.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;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type \Google\Rpc\BadRequest\FieldViolation[]|\Google\Protobuf\Internal\RepeatedField $field_violations
     *           Describes all violations in a client request.
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Google\Rpc\ErrorDetails::initOnce();
        parent::__construct($data);
    }

    /**
     * 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;
    }

}


<?php
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/longrunning/operations.proto

namespace Google\LongRunning;

use Google\Protobuf\Internal\GPBType;
use Google\Protobuf\Internal\RepeatedField;
use Google\Protobuf\Internal\GPBUtil;

/**
 * The response message for [Operations.ListOperations][google.longrunning.Operations.ListOperations].
 *
 * Generated from protobuf message google.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 = '';

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type \Google\LongRunning\Operation[]|\Google\Protobuf\Internal\RepeatedField $operations
     *           A list of operations that matches the specified filter in the request.
     *     @type string $next_page_token
     *           The standard List next-page token.
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Google\Longrunning\Operations::initOnce();
        parent::__construct($data);
    }

    /**
     * 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;
    }

}


<?php
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/iam/admin/v1/iam.proto

namespace Google\Iam\Admin\V1;

use Google\Protobuf\Internal\GPBType;
use Google\Protobuf\Internal\RepeatedField;
use Google\Protobuf\Internal\GPBUtil;

/**
 * The request to get all roles defined under a resource.
 *
 * Generated from protobuf message google.iam.admin.v1.ListRolesRequest
 */
class ListRolesRequest extends \Google\Protobuf\Internal\Message
{
    /**
     * The resource name of the parent resource in one of the following formats:
     * `` (empty string) -- this refers to curated roles.
     * `organizations/{ORGANIZATION_ID}`
     * `projects/{PROJECT_ID}`
     *
     * Generated from protobuf field string parent = 1;
     */
    private $parent = '';
    /**
     * Optional limit on the number of roles to include in the response.
     *
     * Generated from protobuf field int32 page_size = 2;
     */
    private $page_size = 0;
    /**
     * Optional pagination token returned in an earlier ListRolesResponse.
     *
     * Generated from protobuf field string page_token = 3;
     */
    private $page_token = '';
    /**
     * Optional view for the returned Role objects.
     *
     * Generated from protobuf field .google.iam.admin.v1.RoleView view = 4;
     */
    private $view = 0;
    /**
     * Include Roles that have been deleted.
     *
     * Generated from protobuf field bool show_deleted = 6;
     */
    private $show_deleted = false;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type string $parent
     *           The resource name of the parent resource in one of the following formats:
     *           `` (empty string) -- this refers to curated roles.
     *           `organizations/{ORGANIZATION_ID}`
     *           `projects/{PROJECT_ID}`
     *     @type int $page_size
     *           Optional limit on the number of roles to include in the response.
     *     @type string $page_token
     *           Optional pagination token returned in an earlier ListRolesResponse.
     *     @type int $view
     *           Optional view for the returned Role objects.
     *     @type bool $show_deleted
     *           Include Roles that have been deleted.
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Google\Iam\Admin\V1\Iam::initOnce();
        parent::__construct($data);
    }

    /**
     * The resource name of the parent resource in one of the following formats:
     * `` (empty string) -- this refers to curated roles.
     * `organizations/{ORGANIZATION_ID}`
     * `projects/{PROJECT_ID}`
     *
     * Generated from protobuf field string parent = 1;
     * @return string
     */
    public function getParent()
    {
        return $this->parent;
    }

    /**
     * The resource name of the parent resource in one of the following formats:
     * `` (empty string) -- this refers to curated roles.
     * `organizations/{ORGANIZATION_ID}`
     * `projects/{PROJECT_ID}`
     *
     * Generated from protobuf field string parent = 1;
     * @param string $var
     * @return $this
     */
    public function setParent($var)
    {
        GPBUtil::checkString($var, True);
        $this->parent = $var;

        return $this;
    }

    /**
     * Optional limit on the number of roles to include in the response.
     *
     * Generated from protobuf field int32 page_size = 2;
     * @return int
     */
    public function getPageSize()
    {
        return $this->page_size;
    }

    /**
     * Optional limit on the number of roles to include in the response.
     *
     * 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;
    }

    /**
     * Optional pagination token returned in an earlier ListRolesResponse.
     *
     * Generated from protobuf field string page_token = 3;
     * @return string
     */
    public function getPageToken()
    {
        return $this->page_token;
    }

    /**
     * Optional pagination token returned in an earlier ListRolesResponse.
     *
     * 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;
    }

    /**
     * Optional view for the returned Role objects.
     *
     * Generated from protobuf field .google.iam.admin.v1.RoleView view = 4;
     * @return int
     */
    public function getView()
    {
        return $this->view;
    }

    /**
     * Optional view for the returned Role objects.
     *
     * Generated from protobuf field .google.iam.admin.v1.RoleView view = 4;
     * @param int $var
     * @return $this
     */
    public function setView($var)
    {
        GPBUtil::checkEnum($var, \Google\Iam\Admin\V1\RoleView::class);
        $this->view = $var;

        return $this;
    }

    /**
     * Include Roles that have been deleted.
     *
     * Generated from protobuf field bool show_deleted = 6;
     * @return bool
     */
    public function getShowDeleted()
    {
        return $this->show_deleted;
    }

    /**
     * Include Roles that have been deleted.
     *
     * Generated from protobuf field bool show_deleted = 6;
     * @param bool $var
     * @return $this
     */
    public function setShowDeleted($var)
    {
        GPBUtil::checkBool($var);
        $this->show_deleted = $var;

        return $this;
    }

}


<?php
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/iam/admin/v1/iam.proto

namespace Google\Iam\Admin\V1;

use Google\Protobuf\Internal\GPBType;
use Google\Protobuf\Internal\RepeatedField;
use Google\Protobuf\Internal\GPBUtil;

/**
 * A role in the Identity and Access Management API.
 *
 * Generated from protobuf message google.iam.admin.v1.Role
 */
class Role extends \Google\Protobuf\Internal\Message
{
    /**
     * The name of the role.
     * When Role is used in CreateRole, the role name must not be set.
     * When Role is used in output and other input such as UpdateRole, the role
     * name is the complete path, e.g., roles/logging.viewer for curated roles
     * and organizations/{ORGANIZATION_ID}/roles/logging.viewer for custom roles.
     *
     * Generated from protobuf field string name = 1;
     */
    private $name = '';
    /**
     * Optional.  A human-readable title for the role.  Typically this
     * is limited to 100 UTF-8 bytes.
     *
     * Generated from protobuf field string title = 2;
     */
    private $title = '';
    /**
     * Optional.  A human-readable description for the role.
     *
     * Generated from protobuf field string description = 3;
     */
    private $description = '';
    /**
     * The names of the permissions this role grants when bound in an IAM policy.
     *
     * Generated from protobuf field repeated string included_permissions = 7;
     */
    private $included_permissions;
    /**
     * The current launch stage of the role.
     *
     * Generated from protobuf field .google.iam.admin.v1.Role.RoleLaunchStage stage = 8;
     */
    private $stage = 0;
    /**
     * Used to perform a consistent read-modify-write.
     *
     * Generated from protobuf field bytes etag = 9;
     */
    private $etag = '';
    /**
     * The current deleted state of the role. This field is read only.
     * It will be ignored in calls to CreateRole and UpdateRole.
     *
     * Generated from protobuf field bool deleted = 11;
     */
    private $deleted = false;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type string $name
     *           The name of the role.
     *           When Role is used in CreateRole, the role name must not be set.
     *           When Role is used in output and other input such as UpdateRole, the role
     *           name is the complete path, e.g., roles/logging.viewer for curated roles
     *           and organizations/{ORGANIZATION_ID}/roles/logging.viewer for custom roles.
     *     @type string $title
     *           Optional.  A human-readable title for the role.  Typically this
     *           is limited to 100 UTF-8 bytes.
     *     @type string $description
     *           Optional.  A human-readable description for the role.
     *     @type string[]|\Google\Protobuf\Internal\RepeatedField $included_permissions
     *           The names of the permissions this role grants when bound in an IAM policy.
     *     @type int $stage
     *           The current launch stage of the role.
     *     @type string $etag
     *           Used to perform a consistent read-modify-write.
     *     @type bool $deleted
     *           The current deleted state of the role. This field is read only.
     *           It will be ignored in calls to CreateRole and UpdateRole.
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Google\Iam\Admin\V1\Iam::initOnce();
        parent::__construct($data);
    }

    /**
     * The name of the role.
     * When Role is used in CreateRole, the role name must not be set.
     * When Role is used in output and other input such as UpdateRole, the role
     * name is the complete path, e.g., roles/logging.viewer for curated roles
     * and organizations/{ORGANIZATION_ID}/roles/logging.viewer for custom roles.
     *
     * Generated from protobuf field string name = 1;
     * @return string
     */
    public function getName()
    {
        return $this->name;
    }

    /**
     * The name of the role.
     * When Role is used in CreateRole, the role name must not be set.
     * When Role is used in output and other input such as UpdateRole, the role
     * name is the complete path, e.g., roles/logging.viewer for curated roles
     * and organizations/{ORGANIZATION_ID}/roles/logging.viewer for custom roles.
     *
     * 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;
    }

    /**
     * Optional.  A human-readable title for the role.  Typically this
     * is limited to 100 UTF-8 bytes.
     *
     * Generated from protobuf field string title = 2;
     * @return string
     */
    public function getTitle()
    {
        return $this->title;
    }

    /**
     * Optional.  A human-readable title for the role.  Typically this
     * is limited to 100 UTF-8 bytes.
     *
     * 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;
    }

    /**
     * Optional.  A human-readable description for the role.
     *
     * Generated from protobuf field string description = 3;
     * @return string
     */
    public function getDescription()
    {
        return $this->description;
    }

    /**
     * Optional.  A human-readable description for the role.
     *
     * 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 names of the permissions this role grants when bound in an IAM policy.
     *
     * Generated from protobuf field repeated string included_permissions = 7;
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getIncludedPermissions()
    {
        return $this->included_permissions;
    }

    /**
     * The names of the permissions this role grants when bound in an IAM policy.
     *
     * Generated from protobuf field repeated string included_permissions = 7;
     * @param string[]|\Google\Protobuf\Internal\RepeatedField $var
     * @return $this
     */
    public function setIncludedPermissions($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
        $this->included_permissions = $arr;

        return $this;
    }

    /**
     * The current launch stage of the role.
     *
     * Generated from protobuf field .google.iam.admin.v1.Role.RoleLaunchStage stage = 8;
     * @return int
     */
    public function getStage()
    {
        return $this->stage;
    }

    /**
     * The current launch stage of the role.
     *
     * Generated from protobuf field .google.iam.admin.v1.Role.RoleLaunchStage stage = 8;
     * @param int $var
     * @return $this
     */
    public function setStage($var)
    {
        GPBUtil::checkEnum($var, \Google\Iam\Admin\V1\Role_RoleLaunchStage::class);
        $this->stage = $var;

        return $this;
    }

    /**
     * Used to perform a consistent read-modify-write.
     *
     * Generated from protobuf field bytes etag = 9;
     * @return string
     */
    public function getEtag()
    {
        return $this->etag;
    }

    /**
     * Used to perform a consistent read-modify-write.
     *
     * Generated from protobuf field bytes etag = 9;
     * @param string $var
     * @return $this
     */
    public function setEtag($var)
    {
        GPBUtil::checkString($var, False);
        $this->etag = $var;

        return $this;
    }

    /**
     * The current deleted state of the role. This field is read only.
     * It will be ignored in calls to CreateRole and UpdateRole.
     *
     * Generated from protobuf field bool deleted = 11;
     * @return bool
     */
    public function getDeleted()
    {
        return $this->deleted;
    }

    /**
     * The current deleted state of the role. This field is read only.
     * It will be ignored in calls to CreateRole and UpdateRole.
     *
     * Generated from protobuf field bool deleted = 11;
     * @param bool $var
     * @return $this
     */
    public function setDeleted($var)
    {
        GPBUtil::checkBool($var);
        $this->deleted = $var;

        return $this;
    }

}


<?php
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/api/billing.proto

namespace Google\Api;

use Google\Protobuf\Internal\GPBType;
use Google\Protobuf\Internal\RepeatedField;
use Google\Protobuf\Internal\GPBUtil;

/**
 * Billing related configuration of the service.
 * The following example shows how to configure monitored resources and metrics
 * for billing:
 *     monitored_resources:
 *     - type: library.googleapis.com/branch
 *       labels:
 *       - key: /city
 *         description: The city where the library branch is located in.
 *       - key: /name
 *         description: The name of the branch.
 *     metrics:
 *     - name: library.googleapis.com/book/borrowed_count
 *       metric_kind: DELTA
 *       value_type: INT64
 *     billing:
 *       consumer_destinations:
 *       - monitored_resource: library.googleapis.com/branch
 *         metrics:
 *         - library.googleapis.com/book/borrowed_count
 *
 * Generated from protobuf message google.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;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type \Google\Api\Billing\BillingDestination[]|\Google\Protobuf\Internal\RepeatedField $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.
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Google\Api\Billing::initOnce();
        parent::__construct($data);
    }

    /**
     * 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;
    }

}


<?php
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/api/httpbody.proto

namespace Google\Api;

use Google\Protobuf\Internal\GPBType;
use Google\Protobuf\Internal\RepeatedField;
use Google\Protobuf\Internal\GPBUtil;

/**
 * Message that represents an arbitrary HTTP body. It should only be used for
 * payload formats that can't be represented as JSON, such as raw binary or
 * an HTML page.
 * This message can be used both in streaming and non-streaming API methods in
 * the request as well as the response.
 * It can be used as a top-level request field, which is convenient if one
 * wants to extract parameters from either the URL or HTTP template into the
 * request fields and also want access to the raw HTTP body.
 * Example:
 *     message GetResourceRequest {
 *       // A unique request id.
 *       string request_id = 1;
 *       // The raw HTTP body is bound to this field.
 *       google.api.HttpBody http_body = 2;
 *     }
 *     service ResourceService {
 *       rpc GetResource(GetResourceRequest) returns (google.api.HttpBody);
 *       rpc UpdateResource(google.api.HttpBody) returns (google.protobuf.Empty);
 *     }
 * Example with streaming methods:
 *     service CaldavService {
 *       rpc GetCalendar(stream google.api.HttpBody)
 *         returns (stream google.api.HttpBody);
 *       rpc UpdateCalendar(stream google.api.HttpBody)
 *         returns (stream google.api.HttpBody);
 *     }
 * Use of this type only changes how the request and response bodies are
 * handled, all other features will continue to work unchanged.
 *
 * Generated from protobuf message google.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 = '';
    /**
     * Application specific response metadata. Must be set in the first response
     * for streaming APIs.
     *
     * Generated from protobuf field repeated .google.protobuf.Any extensions = 3;
     */
    private $extensions;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type string $content_type
     *           The HTTP Content-Type string representing the content type of the body.
     *     @type string $data
     *           HTTP body binary data.
     *     @type \Google\Protobuf\Any[]|\Google\Protobuf\Internal\RepeatedField $extensions
     *           Application specific response metadata. Must be set in the first response
     *           for streaming APIs.
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Google\Api\Httpbody::initOnce();
        parent::__construct($data);
    }

    /**
     * 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;
    }

    /**
     * Application specific response metadata. Must be set in the first response
     * for streaming APIs.
     *
     * Generated from protobuf field repeated .google.protobuf.Any extensions = 3;
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getExtensions()
    {
        return $this->extensions;
    }

    /**
     * Application specific response metadata. Must be set in the first response
     * for streaming APIs.
     *
     * Generated from protobuf field repeated .google.protobuf.Any extensions = 3;
     * @param \Google\Protobuf\Any[]|\Google\Protobuf\Internal\RepeatedField $var
     * @return $this
     */
    public function setExtensions($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Any::class);
        $this->extensions = $arr;

        return $this;
    }

}


<?php
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/api/auth.proto

namespace Google\Api;

use Google\Protobuf\Internal\GPBType;
use Google\Protobuf\Internal\RepeatedField;
use Google\Protobuf\Internal\GPBUtil;

/**
 * `Authentication` defines the authentication configuration for an API.
 * Example for an API targeted for external use:
 *     name: calendar.googleapis.com
 *     authentication:
 *       providers:
 *       - id: google_calendar_auth
 *         jwks_uri: https://www.googleapis.com/oauth2/v1/certs
 *         issuer: https://securetoken.google.com
 *       rules:
 *       - selector: "*"
 *         requirements:
 *           provider_id: google_calendar_auth
 *
 * Generated from protobuf message google.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;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type \Google\Api\AuthenticationRule[]|\Google\Protobuf\Internal\RepeatedField $rules
     *           A list of authentication rules that apply to individual API methods.
     *           **NOTE:** All service configuration rules follow "last one wins" order.
     *     @type \Google\Api\AuthProvider[]|\Google\Protobuf\Internal\RepeatedField $providers
     *           Defines a set of authentication providers that a service supports.
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Google\Api\Auth::initOnce();
        parent::__construct($data);
    }

    /**
     * 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;
    }

}


<?php
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/api/context.proto

namespace Google\Api;

use Google\Protobuf\Internal\GPBType;
use Google\Protobuf\Internal\RepeatedField;
use Google\Protobuf\Internal\GPBUtil;

/**
 * A context rule provides information about the context for an individual API
 * element.
 *
 * Generated from protobuf message google.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;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type string $selector
     *           Selects the methods to which this rule applies.
     *           Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
     *     @type string[]|\Google\Protobuf\Internal\RepeatedField $requested
     *           A list of full type names of requested contexts.
     *     @type string[]|\Google\Protobuf\Internal\RepeatedField $provided
     *           A list of full type names of provided contexts.
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Google\Api\Context::initOnce();
        parent::__construct($data);
    }

    /**
     * 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;
    }

}


<?php
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/api/distribution.proto

namespace Google\Api\Distribution\BucketOptions;

use Google\Protobuf\Internal\GPBType;
use Google\Protobuf\Internal\RepeatedField;
use Google\Protobuf\Internal\GPBUtil;

/**
 * Specifies a set of buckets with arbitrary widths.
 * There are `size(bounds) + 1` (= N) buckets. Bucket `i` has the following
 * boundaries:
 *    Upper bound (0 <= i < N-1):     bounds[i]
 *    Lower bound (1 <= i < N);       bounds[i - 1]
 * The `bounds` field must contain at least one element. If `bounds` has
 * only one element, then there are no finite buckets, and that single
 * element is the common boundary of the overflow and underflow buckets.
 *
 * Generated from protobuf message google.api.Distribution.BucketOptions.Explicit
 */
class Explicit extends \Google\Protobuf\Internal\Message
{
    /**
     * The values must be monotonically increasing.
     *
     * Generated from protobuf field repeated double bounds = 1;
     */
    private $bounds;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type float[]|\Google\Protobuf\Internal\RepeatedField $bounds
     *           The values must be monotonically increasing.
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Google\Api\Distribution::initOnce();
        parent::__construct($data);
    }

    /**
     * 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;
    }

}

// Adding a class alias for backwards compatibility with the previous class name.
class_alias(Explicit::class, \Google\Api\Distribution_BucketOptions_Explicit::class);


<?php
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/iam/admin/v1/iam.proto

namespace Google\Iam\Admin\V1;

use Google\Protobuf\Internal\GPBType;
use Google\Protobuf\Internal\RepeatedField;
use Google\Protobuf\Internal\GPBUtil;

/**
 * The request to update a role.
 *
 * Generated from protobuf message google.iam.admin.v1.UpdateRoleRequest
 */
class UpdateRoleRequest extends \Google\Protobuf\Internal\Message
{
    /**
     * The resource name of the role in one of the following formats:
     * `roles/{ROLE_NAME}`
     * `organizations/{ORGANIZATION_ID}/roles/{ROLE_NAME}`
     * `projects/{PROJECT_ID}/roles/{ROLE_NAME}`
     *
     * Generated from protobuf field string name = 1;
     */
    private $name = '';
    /**
     * The updated role.
     *
     * Generated from protobuf field .google.iam.admin.v1.Role role = 2;
     */
    private $role = null;
    /**
     * A mask describing which fields in the Role have changed.
     *
     * Generated from protobuf field .google.protobuf.FieldMask update_mask = 3;
     */
    private $update_mask = null;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type string $name
     *           The resource name of the role in one of the following formats:
     *           `roles/{ROLE_NAME}`
     *           `organizations/{ORGANIZATION_ID}/roles/{ROLE_NAME}`
     *           `projects/{PROJECT_ID}/roles/{ROLE_NAME}`
     *     @type \Google\Iam\Admin\V1\Role $role
     *           The updated role.
     *     @type \Google\Protobuf\FieldMask $update_mask
     *           A mask describing which fields in the Role have changed.
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Google\Iam\Admin\V1\Iam::initOnce();
        parent::__construct($data);
    }

    /**
     * The resource name of the role in one of the following formats:
     * `roles/{ROLE_NAME}`
     * `organizations/{ORGANIZATION_ID}/roles/{ROLE_NAME}`
     * `projects/{PROJECT_ID}/roles/{ROLE_NAME}`
     *
     * Generated from protobuf field string name = 1;
     * @return string
     */
    public function getName()
    {
        return $this->name;
    }

    /**
     * The resource name of the role in one of the following formats:
     * `roles/{ROLE_NAME}`
     * `organizations/{ORGANIZATION_ID}/roles/{ROLE_NAME}`
     * `projects/{PROJECT_ID}/roles/{ROLE_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;
    }

    /**
     * The updated role.
     *
     * Generated from protobuf field .google.iam.admin.v1.Role role = 2;
     * @return \Google\Iam\Admin\V1\Role
     */
    public function getRole()
    {
        return $this->role;
    }

    /**
     * The updated role.
     *
     * Generated from protobuf field .google.iam.admin.v1.Role role = 2;
     * @param \Google\Iam\Admin\V1\Role $var
     * @return $this
     */
    public function setRole($var)
    {
        GPBUtil::checkMessage($var, \Google\Iam\Admin\V1\Role::class);
        $this->role = $var;

        return $this;
    }

    /**
     * A mask describing which fields in the Role have changed.
     *
     * Generated from protobuf field .google.protobuf.FieldMask update_mask = 3;
     * @return \Google\Protobuf\FieldMask
     */
    public function getUpdateMask()
    {
        return $this->update_mask;
    }

    /**
     * A mask describing which fields in the Role have changed.
     *
     * Generated from protobuf field .google.protobuf.FieldMask update_mask = 3;
     * @param \Google\Protobuf\FieldMask $var
     * @return $this
     */
    public function setUpdateMask($var)
    {
        GPBUtil::checkMessage($var, \Google\Protobuf\FieldMask::class);
        $this->update_mask = $var;

        return $this;
    }

}