• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Generated by the protocol buffer compiler.  DO NOT EDIT!
2 // source: google/protobuf/api.proto
3 
4 // This CPP symbol can be defined to use imports that match up to the framework
5 // imports needed when using CocoaPods.
6 #if !defined(GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS)
7  #define GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS 0
8 #endif
9 
10 #if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS
11  #import <Protobuf/GPBDescriptor.h>
12  #import <Protobuf/GPBMessage.h>
13  #import <Protobuf/GPBRootObject.h>
14 #else
15  #import "GPBDescriptor.h"
16  #import "GPBMessage.h"
17  #import "GPBRootObject.h"
18 #endif
19 
20 #if GOOGLE_PROTOBUF_OBJC_VERSION < 30002
21 #error This file was generated by a newer version of protoc which is incompatible with your Protocol Buffer library sources.
22 #endif
23 #if 30002 < GOOGLE_PROTOBUF_OBJC_MIN_SUPPORTED_VERSION
24 #error This file was generated by an older version of protoc which is incompatible with your Protocol Buffer library sources.
25 #endif
26 
27 // @@protoc_insertion_point(imports)
28 
29 #pragma clang diagnostic push
30 #pragma clang diagnostic ignored "-Wdeprecated-declarations"
31 
32 CF_EXTERN_C_BEGIN
33 
34 @class GPBMethod;
35 @class GPBMixin;
36 @class GPBOption;
37 @class GPBSourceContext;
38 GPB_ENUM_FWD_DECLARE(GPBSyntax);
39 
40 NS_ASSUME_NONNULL_BEGIN
41 
42 #pragma mark - GPBApiRoot
43 
44 /**
45  * Exposes the extension registry for this file.
46  *
47  * The base class provides:
48  * @code
49  *   + (GPBExtensionRegistry *)extensionRegistry;
50  * @endcode
51  * which is a @c GPBExtensionRegistry that includes all the extensions defined by
52  * this file and all files that it depends on.
53  **/
54 @interface GPBApiRoot : GPBRootObject
55 @end
56 
57 #pragma mark - GPBApi
58 
59 typedef GPB_ENUM(GPBApi_FieldNumber) {
60   GPBApi_FieldNumber_Name = 1,
61   GPBApi_FieldNumber_MethodsArray = 2,
62   GPBApi_FieldNumber_OptionsArray = 3,
63   GPBApi_FieldNumber_Version = 4,
64   GPBApi_FieldNumber_SourceContext = 5,
65   GPBApi_FieldNumber_MixinsArray = 6,
66   GPBApi_FieldNumber_Syntax = 7,
67 };
68 
69 /**
70  * Api is a light-weight descriptor for an API Interface.
71  *
72  * Interfaces are also described as "protocol buffer services" in some contexts,
73  * such as by the "service" keyword in a .proto file, but they are different
74  * from API Services, which represent a concrete implementation of an interface
75  * as opposed to simply a description of methods and bindings. They are also
76  * sometimes simply referred to as "APIs" in other contexts, such as the name of
77  * this message itself. See https://cloud.google.com/apis/design/glossary for
78  * detailed terminology.
79  **/
80 @interface GPBApi : GPBMessage
81 
82 /**
83  * The fully qualified name of this interface, including package name
84  * followed by the interface's simple name.
85  **/
86 @property(nonatomic, readwrite, copy, null_resettable) NSString *name;
87 
88 /** The methods of this interface, in unspecified order. */
89 @property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<GPBMethod*> *methodsArray;
90 /** The number of items in @c methodsArray without causing the array to be created. */
91 @property(nonatomic, readonly) NSUInteger methodsArray_Count;
92 
93 /** Any metadata attached to the interface. */
94 @property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<GPBOption*> *optionsArray;
95 /** The number of items in @c optionsArray without causing the array to be created. */
96 @property(nonatomic, readonly) NSUInteger optionsArray_Count;
97 
98 /**
99  * A version string for this interface. If specified, must have the form
100  * `major-version.minor-version`, as in `1.10`. If the minor version is
101  * omitted, it defaults to zero. If the entire version field is empty, the
102  * major version is derived from the package name, as outlined below. If the
103  * field is not empty, the version in the package name will be verified to be
104  * consistent with what is provided here.
105  *
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  *
113  * The major version is also reflected in the package name of the
114  * interface, which must end in `v<major-version>`, as in
115  * `google.feature.v1`. For major versions 0 and 1, the suffix can
116  * be omitted. Zero major versions must only be used for
117  * experimental, non-GA interfaces.
118  **/
119 @property(nonatomic, readwrite, copy, null_resettable) NSString *version;
120 
121 /**
122  * Source context for the protocol buffer service represented by this
123  * message.
124  **/
125 @property(nonatomic, readwrite, strong, null_resettable) GPBSourceContext *sourceContext;
126 /** Test to see if @c sourceContext has been set. */
127 @property(nonatomic, readwrite) BOOL hasSourceContext;
128 
129 /** Included interfaces. See [Mixin][]. */
130 @property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<GPBMixin*> *mixinsArray;
131 /** The number of items in @c mixinsArray without causing the array to be created. */
132 @property(nonatomic, readonly) NSUInteger mixinsArray_Count;
133 
134 /** The source syntax of the service. */
135 @property(nonatomic, readwrite) enum GPBSyntax syntax;
136 
137 @end
138 
139 /**
140  * Fetches the raw value of a @c GPBApi's @c syntax property, even
141  * if the value was not defined by the enum at the time the code was generated.
142  **/
143 int32_t GPBApi_Syntax_RawValue(GPBApi *message);
144 /**
145  * Sets the raw value of an @c GPBApi's @c syntax property, allowing
146  * it to be set to a value that was not defined by the enum at the time the code
147  * was generated.
148  **/
149 void SetGPBApi_Syntax_RawValue(GPBApi *message, int32_t value);
150 
151 #pragma mark - GPBMethod
152 
153 typedef GPB_ENUM(GPBMethod_FieldNumber) {
154   GPBMethod_FieldNumber_Name = 1,
155   GPBMethod_FieldNumber_RequestTypeURL = 2,
156   GPBMethod_FieldNumber_RequestStreaming = 3,
157   GPBMethod_FieldNumber_ResponseTypeURL = 4,
158   GPBMethod_FieldNumber_ResponseStreaming = 5,
159   GPBMethod_FieldNumber_OptionsArray = 6,
160   GPBMethod_FieldNumber_Syntax = 7,
161 };
162 
163 /**
164  * Method represents a method of an API interface.
165  **/
166 @interface GPBMethod : GPBMessage
167 
168 /** The simple name of this method. */
169 @property(nonatomic, readwrite, copy, null_resettable) NSString *name;
170 
171 /** A URL of the input message type. */
172 @property(nonatomic, readwrite, copy, null_resettable) NSString *requestTypeURL;
173 
174 /** If true, the request is streamed. */
175 @property(nonatomic, readwrite) BOOL requestStreaming;
176 
177 /** The URL of the output message type. */
178 @property(nonatomic, readwrite, copy, null_resettable) NSString *responseTypeURL;
179 
180 /** If true, the response is streamed. */
181 @property(nonatomic, readwrite) BOOL responseStreaming;
182 
183 /** Any metadata attached to the method. */
184 @property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<GPBOption*> *optionsArray;
185 /** The number of items in @c optionsArray without causing the array to be created. */
186 @property(nonatomic, readonly) NSUInteger optionsArray_Count;
187 
188 /** The source syntax of this method. */
189 @property(nonatomic, readwrite) enum GPBSyntax syntax;
190 
191 @end
192 
193 /**
194  * Fetches the raw value of a @c GPBMethod's @c syntax property, even
195  * if the value was not defined by the enum at the time the code was generated.
196  **/
197 int32_t GPBMethod_Syntax_RawValue(GPBMethod *message);
198 /**
199  * Sets the raw value of an @c GPBMethod's @c syntax property, allowing
200  * it to be set to a value that was not defined by the enum at the time the code
201  * was generated.
202  **/
203 void SetGPBMethod_Syntax_RawValue(GPBMethod *message, int32_t value);
204 
205 #pragma mark - GPBMixin
206 
207 typedef GPB_ENUM(GPBMixin_FieldNumber) {
208   GPBMixin_FieldNumber_Name = 1,
209   GPBMixin_FieldNumber_Root = 2,
210 };
211 
212 /**
213  * Declares an API Interface to be included in this interface. The including
214  * interface must redeclare all the methods from the included interface, but
215  * documentation and options are inherited as follows:
216  *
217  * - If after comment and whitespace stripping, the documentation
218  *   string of the redeclared method is empty, it will be inherited
219  *   from the original method.
220  *
221  * - Each annotation belonging to the service config (http,
222  *   visibility) which is not set in the redeclared method will be
223  *   inherited.
224  *
225  * - If an http annotation is inherited, the path pattern will be
226  *   modified as follows. Any version prefix will be replaced by the
227  *   version of the including interface plus the [root][] path if
228  *   specified.
229  *
230  * Example of a simple mixin:
231  *
232  *     package google.acl.v1;
233  *     service AccessControl {
234  *       // Get the underlying ACL object.
235  *       rpc GetAcl(GetAclRequest) returns (Acl) {
236  *         option (google.api.http).get = "/v1/{resource=**}:getAcl";
237  *       }
238  *     }
239  *
240  *     package google.storage.v2;
241  *     service Storage {
242  *       rpc GetAcl(GetAclRequest) returns (Acl);
243  *
244  *       // Get a data record.
245  *       rpc GetData(GetDataRequest) returns (Data) {
246  *         option (google.api.http).get = "/v2/{resource=**}";
247  *       }
248  *     }
249  *
250  * Example of a mixin configuration:
251  *
252  *     apis:
253  *     - name: google.storage.v2.Storage
254  *       mixins:
255  *       - name: google.acl.v1.AccessControl
256  *
257  * The mixin construct implies that all methods in `AccessControl` are
258  * also declared with same name and request/response types in
259  * `Storage`. A documentation generator or annotation processor will
260  * see the effective `Storage.GetAcl` method after inherting
261  * documentation and annotations as follows:
262  *
263  *     service Storage {
264  *       // Get the underlying ACL object.
265  *       rpc GetAcl(GetAclRequest) returns (Acl) {
266  *         option (google.api.http).get = "/v2/{resource=**}:getAcl";
267  *       }
268  *       ...
269  *     }
270  *
271  * Note how the version in the path pattern changed from `v1` to `v2`.
272  *
273  * If the `root` field in the mixin is specified, it should be a
274  * relative path under which inherited HTTP paths are placed. Example:
275  *
276  *     apis:
277  *     - name: google.storage.v2.Storage
278  *       mixins:
279  *       - name: google.acl.v1.AccessControl
280  *         root: acls
281  *
282  * This implies the following inherited HTTP annotation:
283  *
284  *     service Storage {
285  *       // Get the underlying ACL object.
286  *       rpc GetAcl(GetAclRequest) returns (Acl) {
287  *         option (google.api.http).get = "/v2/acls/{resource=**}:getAcl";
288  *       }
289  *       ...
290  *     }
291  **/
292 @interface GPBMixin : GPBMessage
293 
294 /** The fully qualified name of the interface which is included. */
295 @property(nonatomic, readwrite, copy, null_resettable) NSString *name;
296 
297 /**
298  * If non-empty specifies a path under which inherited HTTP paths
299  * are rooted.
300  **/
301 @property(nonatomic, readwrite, copy, null_resettable) NSString *root;
302 
303 @end
304 
305 NS_ASSUME_NONNULL_END
306 
307 CF_EXTERN_C_END
308 
309 #pragma clang diagnostic pop
310 
311 // @@protoc_insertion_point(global_scope)
312