xref: /aosp_15_r20/external/protobuf/php/src/Google/Protobuf/Api.php (revision 1b3f573f81763fcece89efc2b6a5209149e44ab8)
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 * Api is a light-weight descriptor for an API Interface.
13 * Interfaces are also described as "protocol buffer services" in some contexts,
14 * such as by the "service" keyword in a .proto file, but they are different
15 * from API Services, which represent a concrete implementation of an interface
16 * as opposed to simply a description of methods and bindings. They are also
17 * sometimes simply referred to as "APIs" in other contexts, such as the name of
18 * this message itself. See https://cloud.google.com/apis/design/glossary for
19 * detailed terminology.
20 *
21 * Generated from protobuf message <code>google.protobuf.Api</code>
22 */
23class Api extends \Google\Protobuf\Internal\Message
24{
25    /**
26     * The fully qualified name of this interface, including package name
27     * followed by the interface's simple name.
28     *
29     * Generated from protobuf field <code>string name = 1;</code>
30     */
31    protected $name = '';
32    /**
33     * The methods of this interface, in unspecified order.
34     *
35     * Generated from protobuf field <code>repeated .google.protobuf.Method methods = 2;</code>
36     */
37    private $methods;
38    /**
39     * Any metadata attached to the interface.
40     *
41     * Generated from protobuf field <code>repeated .google.protobuf.Option options = 3;</code>
42     */
43    private $options;
44    /**
45     * A version string for this interface. If specified, must have the form
46     * `major-version.minor-version`, as in `1.10`. If the minor version is
47     * omitted, it defaults to zero. If the entire version field is empty, the
48     * major version is derived from the package name, as outlined below. If the
49     * field is not empty, the version in the package name will be verified to be
50     * consistent with what is provided here.
51     * The versioning schema uses [semantic
52     * versioning](http://semver.org) where the major version number
53     * indicates a breaking change and the minor version an additive,
54     * non-breaking change. Both version numbers are signals to users
55     * what to expect from different versions, and should be carefully
56     * chosen based on the product plan.
57     * The major version is also reflected in the package name of the
58     * interface, which must end in `v<major-version>`, as in
59     * `google.feature.v1`. For major versions 0 and 1, the suffix can
60     * be omitted. Zero major versions must only be used for
61     * experimental, non-GA interfaces.
62     *
63     * Generated from protobuf field <code>string version = 4;</code>
64     */
65    protected $version = '';
66    /**
67     * Source context for the protocol buffer service represented by this
68     * message.
69     *
70     * Generated from protobuf field <code>.google.protobuf.SourceContext source_context = 5;</code>
71     */
72    protected $source_context = null;
73    /**
74     * Included interfaces. See [Mixin][].
75     *
76     * Generated from protobuf field <code>repeated .google.protobuf.Mixin mixins = 6;</code>
77     */
78    private $mixins;
79    /**
80     * The source syntax of the service.
81     *
82     * Generated from protobuf field <code>.google.protobuf.Syntax syntax = 7;</code>
83     */
84    protected $syntax = 0;
85
86    /**
87     * Constructor.
88     *
89     * @param array $data {
90     *     Optional. Data for populating the Message object.
91     *
92     *     @type string $name
93     *           The fully qualified name of this interface, including package name
94     *           followed by the interface's simple name.
95     *     @type array<\Google\Protobuf\Method>|\Google\Protobuf\Internal\RepeatedField $methods
96     *           The methods of this interface, in unspecified order.
97     *     @type array<\Google\Protobuf\Option>|\Google\Protobuf\Internal\RepeatedField $options
98     *           Any metadata attached to the interface.
99     *     @type string $version
100     *           A version string for this interface. If specified, must have the form
101     *           `major-version.minor-version`, as in `1.10`. If the minor version is
102     *           omitted, it defaults to zero. If the entire version field is empty, the
103     *           major version is derived from the package name, as outlined below. If the
104     *           field is not empty, the version in the package name will be verified to be
105     *           consistent with what is provided here.
106     *           The versioning schema uses [semantic
107     *           versioning](http://semver.org) where the major version number
108     *           indicates a breaking change and the minor version an additive,
109     *           non-breaking change. Both version numbers are signals to users
110     *           what to expect from different versions, and should be carefully
111     *           chosen based on the product plan.
112     *           The major version is also reflected in the package name of the
113     *           interface, which must end in `v<major-version>`, as in
114     *           `google.feature.v1`. For major versions 0 and 1, the suffix can
115     *           be omitted. Zero major versions must only be used for
116     *           experimental, non-GA interfaces.
117     *     @type \Google\Protobuf\SourceContext $source_context
118     *           Source context for the protocol buffer service represented by this
119     *           message.
120     *     @type array<\Google\Protobuf\Mixin>|\Google\Protobuf\Internal\RepeatedField $mixins
121     *           Included interfaces. See [Mixin][].
122     *     @type int $syntax
123     *           The source syntax of the service.
124     * }
125     */
126    public function __construct($data = NULL) {
127        \GPBMetadata\Google\Protobuf\Api::initOnce();
128        parent::__construct($data);
129    }
130
131    /**
132     * The fully qualified name of this interface, including package name
133     * followed by the interface's simple name.
134     *
135     * Generated from protobuf field <code>string name = 1;</code>
136     * @return string
137     */
138    public function getName()
139    {
140        return $this->name;
141    }
142
143    /**
144     * The fully qualified name of this interface, including package name
145     * followed by the interface's simple name.
146     *
147     * Generated from protobuf field <code>string name = 1;</code>
148     * @param string $var
149     * @return $this
150     */
151    public function setName($var)
152    {
153        GPBUtil::checkString($var, True);
154        $this->name = $var;
155
156        return $this;
157    }
158
159    /**
160     * The methods of this interface, in unspecified order.
161     *
162     * Generated from protobuf field <code>repeated .google.protobuf.Method methods = 2;</code>
163     * @return \Google\Protobuf\Internal\RepeatedField
164     */
165    public function getMethods()
166    {
167        return $this->methods;
168    }
169
170    /**
171     * The methods of this interface, in unspecified order.
172     *
173     * Generated from protobuf field <code>repeated .google.protobuf.Method methods = 2;</code>
174     * @param array<\Google\Protobuf\Method>|\Google\Protobuf\Internal\RepeatedField $var
175     * @return $this
176     */
177    public function setMethods($var)
178    {
179        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Method::class);
180        $this->methods = $arr;
181
182        return $this;
183    }
184
185    /**
186     * Any metadata attached to the interface.
187     *
188     * Generated from protobuf field <code>repeated .google.protobuf.Option options = 3;</code>
189     * @return \Google\Protobuf\Internal\RepeatedField
190     */
191    public function getOptions()
192    {
193        return $this->options;
194    }
195
196    /**
197     * Any metadata attached to the interface.
198     *
199     * Generated from protobuf field <code>repeated .google.protobuf.Option options = 3;</code>
200     * @param array<\Google\Protobuf\Option>|\Google\Protobuf\Internal\RepeatedField $var
201     * @return $this
202     */
203    public function setOptions($var)
204    {
205        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Option::class);
206        $this->options = $arr;
207
208        return $this;
209    }
210
211    /**
212     * A version string for this interface. If specified, must have the form
213     * `major-version.minor-version`, as in `1.10`. If the minor version is
214     * omitted, it defaults to zero. If the entire version field is empty, the
215     * major version is derived from the package name, as outlined below. If the
216     * field is not empty, the version in the package name will be verified to be
217     * consistent with what is provided here.
218     * The versioning schema uses [semantic
219     * versioning](http://semver.org) where the major version number
220     * indicates a breaking change and the minor version an additive,
221     * non-breaking change. Both version numbers are signals to users
222     * what to expect from different versions, and should be carefully
223     * chosen based on the product plan.
224     * The major version is also reflected in the package name of the
225     * interface, which must end in `v<major-version>`, as in
226     * `google.feature.v1`. For major versions 0 and 1, the suffix can
227     * be omitted. Zero major versions must only be used for
228     * experimental, non-GA interfaces.
229     *
230     * Generated from protobuf field <code>string version = 4;</code>
231     * @return string
232     */
233    public function getVersion()
234    {
235        return $this->version;
236    }
237
238    /**
239     * A version string for this interface. If specified, must have the form
240     * `major-version.minor-version`, as in `1.10`. If the minor version is
241     * omitted, it defaults to zero. If the entire version field is empty, the
242     * major version is derived from the package name, as outlined below. If the
243     * field is not empty, the version in the package name will be verified to be
244     * consistent with what is provided here.
245     * The versioning schema uses [semantic
246     * versioning](http://semver.org) where the major version number
247     * indicates a breaking change and the minor version an additive,
248     * non-breaking change. Both version numbers are signals to users
249     * what to expect from different versions, and should be carefully
250     * chosen based on the product plan.
251     * The major version is also reflected in the package name of the
252     * interface, which must end in `v<major-version>`, as in
253     * `google.feature.v1`. For major versions 0 and 1, the suffix can
254     * be omitted. Zero major versions must only be used for
255     * experimental, non-GA interfaces.
256     *
257     * Generated from protobuf field <code>string version = 4;</code>
258     * @param string $var
259     * @return $this
260     */
261    public function setVersion($var)
262    {
263        GPBUtil::checkString($var, True);
264        $this->version = $var;
265
266        return $this;
267    }
268
269    /**
270     * Source context for the protocol buffer service represented by this
271     * message.
272     *
273     * Generated from protobuf field <code>.google.protobuf.SourceContext source_context = 5;</code>
274     * @return \Google\Protobuf\SourceContext|null
275     */
276    public function getSourceContext()
277    {
278        return $this->source_context;
279    }
280
281    public function hasSourceContext()
282    {
283        return isset($this->source_context);
284    }
285
286    public function clearSourceContext()
287    {
288        unset($this->source_context);
289    }
290
291    /**
292     * Source context for the protocol buffer service represented by this
293     * message.
294     *
295     * Generated from protobuf field <code>.google.protobuf.SourceContext source_context = 5;</code>
296     * @param \Google\Protobuf\SourceContext $var
297     * @return $this
298     */
299    public function setSourceContext($var)
300    {
301        GPBUtil::checkMessage($var, \Google\Protobuf\SourceContext::class);
302        $this->source_context = $var;
303
304        return $this;
305    }
306
307    /**
308     * Included interfaces. See [Mixin][].
309     *
310     * Generated from protobuf field <code>repeated .google.protobuf.Mixin mixins = 6;</code>
311     * @return \Google\Protobuf\Internal\RepeatedField
312     */
313    public function getMixins()
314    {
315        return $this->mixins;
316    }
317
318    /**
319     * Included interfaces. See [Mixin][].
320     *
321     * Generated from protobuf field <code>repeated .google.protobuf.Mixin mixins = 6;</code>
322     * @param array<\Google\Protobuf\Mixin>|\Google\Protobuf\Internal\RepeatedField $var
323     * @return $this
324     */
325    public function setMixins($var)
326    {
327        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Mixin::class);
328        $this->mixins = $arr;
329
330        return $this;
331    }
332
333    /**
334     * The source syntax of the service.
335     *
336     * Generated from protobuf field <code>.google.protobuf.Syntax syntax = 7;</code>
337     * @return int
338     */
339    public function getSyntax()
340    {
341        return $this->syntax;
342    }
343
344    /**
345     * The source syntax of the service.
346     *
347     * Generated from protobuf field <code>.google.protobuf.Syntax syntax = 7;</code>
348     * @param int $var
349     * @return $this
350     */
351    public function setSyntax($var)
352    {
353        GPBUtil::checkEnum($var, \Google\Protobuf\Syntax::class);
354        $this->syntax = $var;
355
356        return $this;
357    }
358
359}
360
361