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 < 30004 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 30004 < 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 32CF_EXTERN_C_BEGIN 33 34@class GPBMethod; 35@class GPBMixin; 36@class GPBOption; 37@class GPBSourceContext; 38GPB_ENUM_FWD_DECLARE(GPBSyntax); 39 40NS_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 **/ 54GPB_FINAL @interface GPBApiRoot : GPBRootObject 55@end 56 57#pragma mark - GPBApi 58 59typedef 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 **/ 80GPB_FINAL @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 **/ 143int32_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 **/ 149void SetGPBApi_Syntax_RawValue(GPBApi *message, int32_t value); 150 151#pragma mark - GPBMethod 152 153typedef 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 **/ 166GPB_FINAL @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 **/ 197int32_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 **/ 203void SetGPBMethod_Syntax_RawValue(GPBMethod *message, int32_t value); 204 205#pragma mark - GPBMixin 206 207typedef 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 **/ 292GPB_FINAL @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 305NS_ASSUME_NONNULL_END 306 307CF_EXTERN_C_END 308 309#pragma clang diagnostic pop 310 311// @@protoc_insertion_point(global_scope) 312