1<?php
2# Generated by the protocol buffer compiler.  DO NOT EDIT!
3# source: google/protobuf/api.proto
4
5namespace Google\Protobuf;
6
7use Google\Protobuf\Internal\GPBType;
8use Google\Protobuf\Internal\RepeatedField;
9use Google\Protobuf\Internal\GPBUtil;
10
11/**
12 * Declares an API Interface to be included in this interface. The including
13 * interface must redeclare all the methods from the included interface, but
14 * documentation and options are inherited as follows:
15 * - If after comment and whitespace stripping, the documentation
16 *   string of the redeclared method is empty, it will be inherited
17 *   from the original method.
18 * - Each annotation belonging to the service config (http,
19 *   visibility) which is not set in the redeclared method will be
20 *   inherited.
21 * - If an http annotation is inherited, the path pattern will be
22 *   modified as follows. Any version prefix will be replaced by the
23 *   version of the including interface plus the [root][] path if
24 *   specified.
25 * Example of a simple mixin:
26 *     package google.acl.v1;
27 *     service AccessControl {
28 *       // Get the underlying ACL object.
29 *       rpc GetAcl(GetAclRequest) returns (Acl) {
30 *         option (google.api.http).get = "/v1/{resource=**}:getAcl";
31 *       }
32 *     }
33 *     package google.storage.v2;
34 *     service Storage {
35 *       rpc GetAcl(GetAclRequest) returns (Acl);
36 *       // Get a data record.
37 *       rpc GetData(GetDataRequest) returns (Data) {
38 *         option (google.api.http).get = "/v2/{resource=**}";
39 *       }
40 *     }
41 * Example of a mixin configuration:
42 *     apis:
43 *     - name: google.storage.v2.Storage
44 *       mixins:
45 *       - name: google.acl.v1.AccessControl
46 * The mixin construct implies that all methods in `AccessControl` are
47 * also declared with same name and request/response types in
48 * `Storage`. A documentation generator or annotation processor will
49 * see the effective `Storage.GetAcl` method after inherting
50 * documentation and annotations as follows:
51 *     service Storage {
52 *       // Get the underlying ACL object.
53 *       rpc GetAcl(GetAclRequest) returns (Acl) {
54 *         option (google.api.http).get = "/v2/{resource=**}:getAcl";
55 *       }
56 *       ...
57 *     }
58 * Note how the version in the path pattern changed from `v1` to `v2`.
59 * If the `root` field in the mixin is specified, it should be a
60 * relative path under which inherited HTTP paths are placed. Example:
61 *     apis:
62 *     - name: google.storage.v2.Storage
63 *       mixins:
64 *       - name: google.acl.v1.AccessControl
65 *         root: acls
66 * This implies the following inherited HTTP annotation:
67 *     service Storage {
68 *       // Get the underlying ACL object.
69 *       rpc GetAcl(GetAclRequest) returns (Acl) {
70 *         option (google.api.http).get = "/v2/acls/{resource=**}:getAcl";
71 *       }
72 *       ...
73 *     }
74 *
75 * Generated from protobuf message <code>google.protobuf.Mixin</code>
76 */
77class Mixin extends \Google\Protobuf\Internal\Message
78{
79    /**
80     * The fully qualified name of the interface which is included.
81     *
82     * Generated from protobuf field <code>string name = 1;</code>
83     */
84    private $name = '';
85    /**
86     * If non-empty specifies a path under which inherited HTTP paths
87     * are rooted.
88     *
89     * Generated from protobuf field <code>string root = 2;</code>
90     */
91    private $root = '';
92
93    /**
94     * Constructor.
95     *
96     * @param array $data {
97     *     Optional. Data for populating the Message object.
98     *
99     *     @type string $name
100     *           The fully qualified name of the interface which is included.
101     *     @type string $root
102     *           If non-empty specifies a path under which inherited HTTP paths
103     *           are rooted.
104     * }
105     */
106    public function __construct($data = NULL) {
107        \GPBMetadata\Google\Protobuf\Api::initOnce();
108        parent::__construct($data);
109    }
110
111    /**
112     * The fully qualified name of the interface which is included.
113     *
114     * Generated from protobuf field <code>string name = 1;</code>
115     * @return string
116     */
117    public function getName()
118    {
119        return $this->name;
120    }
121
122    /**
123     * The fully qualified name of the interface which is included.
124     *
125     * Generated from protobuf field <code>string name = 1;</code>
126     * @param string $var
127     * @return $this
128     */
129    public function setName($var)
130    {
131        GPBUtil::checkString($var, True);
132        $this->name = $var;
133
134        return $this;
135    }
136
137    /**
138     * If non-empty specifies a path under which inherited HTTP paths
139     * are rooted.
140     *
141     * Generated from protobuf field <code>string root = 2;</code>
142     * @return string
143     */
144    public function getRoot()
145    {
146        return $this->root;
147    }
148
149    /**
150     * If non-empty specifies a path under which inherited HTTP paths
151     * are rooted.
152     *
153     * Generated from protobuf field <code>string root = 2;</code>
154     * @param string $var
155     * @return $this
156     */
157    public function setRoot($var)
158    {
159        GPBUtil::checkString($var, True);
160        $this->root = $var;
161
162        return $this;
163    }
164
165}
166
167