diff options
Diffstat (limited to 'objectivec/google/protobuf/Api.pbobjc.h')
-rw-r--r-- | objectivec/google/protobuf/Api.pbobjc.h | 119 |
1 files changed, 117 insertions, 2 deletions
diff --git a/objectivec/google/protobuf/Api.pbobjc.h b/objectivec/google/protobuf/Api.pbobjc.h index 021dac5f..d6292cba 100644 --- a/objectivec/google/protobuf/Api.pbobjc.h +++ b/objectivec/google/protobuf/Api.pbobjc.h @@ -12,6 +12,7 @@ CF_EXTERN_C_BEGIN @class GPBSourceContext; +GPB_ENUM_FWD_DECLARE(GPBSyntax); NS_ASSUME_NONNULL_BEGIN @@ -34,6 +35,8 @@ typedef GPB_ENUM(GPBApi_FieldNumber) { GPBApi_FieldNumber_OptionsArray = 3, GPBApi_FieldNumber_Version = 4, GPBApi_FieldNumber_SourceContext = 5, + GPBApi_FieldNumber_MixinsArray = 6, + GPBApi_FieldNumber_Syntax = 7, }; // Api is a light-weight descriptor for a protocol buffer service. @@ -73,8 +76,6 @@ typedef GPB_ENUM(GPBApi_FieldNumber) { // `google.feature.v1`. For major versions 0 and 1, the suffix can // be omitted. Zero major versions must only be used for // experimental, none-GA apis. -// -// See also: [design doc](http://go/api-versioning). @property(nonatomic, readwrite, copy, null_resettable) NSString *version; // Source context for the protocol buffer service represented by this @@ -82,8 +83,19 @@ typedef GPB_ENUM(GPBApi_FieldNumber) { @property(nonatomic, readwrite) BOOL hasSourceContext; @property(nonatomic, readwrite, strong, null_resettable) GPBSourceContext *sourceContext; +// Included APIs. See [Mixin][]. +// |mixinsArray| contains |GPBMixin| +@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray *mixinsArray; +@property(nonatomic, readonly) NSUInteger mixinsArray_Count; + +// The source syntax of the service. +@property(nonatomic, readwrite) enum GPBSyntax syntax; + @end +int32_t GPBApi_Syntax_RawValue(GPBApi *message); +void SetGPBApi_Syntax_RawValue(GPBApi *message, int32_t value); + #pragma mark - GPBMethod typedef GPB_ENUM(GPBMethod_FieldNumber) { @@ -93,6 +105,7 @@ typedef GPB_ENUM(GPBMethod_FieldNumber) { GPBMethod_FieldNumber_ResponseTypeURL = 4, GPBMethod_FieldNumber_ResponseStreaming = 5, GPBMethod_FieldNumber_OptionsArray = 6, + GPBMethod_FieldNumber_Syntax = 7, }; // Method represents a method of an api. @@ -118,6 +131,108 @@ typedef GPB_ENUM(GPBMethod_FieldNumber) { @property(nonatomic, readwrite, strong, null_resettable) NSMutableArray *optionsArray; @property(nonatomic, readonly) NSUInteger optionsArray_Count; +// The source syntax of this method. +@property(nonatomic, readwrite) enum GPBSyntax syntax; + +@end + +int32_t GPBMethod_Syntax_RawValue(GPBMethod *message); +void SetGPBMethod_Syntax_RawValue(GPBMethod *message, int32_t value); + +#pragma mark - GPBMixin + +typedef GPB_ENUM(GPBMixin_FieldNumber) { + GPBMixin_FieldNumber_Name = 1, + GPBMixin_FieldNumber_Root = 2, +}; + +// Declares an API to be included in this API. The including API must +// redeclare all the methods from the included API, but documentation +// and options are inherited as follows: +// +// - If after comment and whitespace stripping, the documentation +// string of the redeclared method is empty, it will be inherited +// from the original method. +// +// - Each annotation belonging to the service config (http, +// visibility) which is not set in the redeclared method will be +// inherited. +// +// - If an http annotation is inherited, the path pattern will be +// modified as follows. Any version prefix will be replaced by the +// version of the including API plus the [root][] path if specified. +// +// Example of a simple mixin: +// +// package google.acl.v1; +// service AccessControl { +// // Get the underlying ACL object. +// rpc GetAcl(GetAclRequest) returns (Acl) { +// option (google.api.http).get = "/v1/{resource=**}:getAcl"; +// } +// } +// +// package google.storage.v2; +// service Storage { +// // (-- see AccessControl.GetAcl --) +// rpc GetAcl(GetAclRequest) returns (Acl); +// +// // Get a data record. +// rpc GetData(GetDataRequest) returns (Data) { +// option (google.api.http).get = "/v2/{resource=**}"; +// } +// } +// +// Example of a mixin configuration: +// +// apis: +// - name: google.storage.v2.Storage +// mixins: +// - name: google.acl.v1.AccessControl +// +// The mixin construct implies that all methods in `AccessControl` are +// also declared with same name and request/response types in +// `Storage`. A documentation generator or annotation processor will +// see the effective `Storage.GetAcl` method after inherting +// documentation and annotations as follows: +// +// service Storage { +// // Get the underlying ACL object. +// rpc GetAcl(GetAclRequest) returns (Acl) { +// option (google.api.http).get = "/v2/{resource=**}:getAcl"; +// } +// ... +// } +// +// Note how the version in the path pattern changed from `v1` to `v2`. +// +// If the `root` field in the mixin is specified, it should be a +// relative path under which inherited HTTP paths are placed. Example: +// +// apis: +// - name: google.storage.v2.Storage +// mixins: +// - name: google.acl.v1.AccessControl +// root: acls +// +// This implies the following inherited HTTP annotation: +// +// service Storage { +// // Get the underlying ACL object. +// rpc GetAcl(GetAclRequest) returns (Acl) { +// option (google.api.http).get = "/v2/acls/{resource=**}:getAcl"; +// } +// ... +// } +@interface GPBMixin : GPBMessage + +// The fully qualified name of the API which is included. +@property(nonatomic, readwrite, copy, null_resettable) NSString *name; + +// If non-empty specifies a path under which inherited HTTP paths +// are rooted. +@property(nonatomic, readwrite, copy, null_resettable) NSString *root; + @end NS_ASSUME_NONNULL_END |