|
|
|
@ -22,7 +22,6 @@ option java_package = "com.google.protobuf"; |
|
|
|
|
option java_outer_classname = "DescriptorProtos"; |
|
|
|
|
option csharp_namespace = "Google.Protobuf.Reflection"; |
|
|
|
|
option objc_class_prefix = "GPB"; |
|
|
|
|
option cc_enable_arenas = true; |
|
|
|
|
|
|
|
|
|
// The protocol compiler can output a FileDescriptorSet containing the .proto |
|
|
|
|
// files it parses. |
|
|
|
@ -34,13 +33,16 @@ message FileDescriptorSet { |
|
|
|
|
message FileDescriptorProto { |
|
|
|
|
optional string name = 1 |
|
|
|
|
[ctype = STRING_PIECE]; // file name, relative to root of source tree |
|
|
|
|
|
|
|
|
|
optional string package = 2 |
|
|
|
|
[ctype = STRING_PIECE]; // e.g. "foo", "foo.bar", etc. |
|
|
|
|
|
|
|
|
|
// Names of files imported by this file. |
|
|
|
|
repeated string dependency = 3 [ctype = STRING_PIECE]; |
|
|
|
|
|
|
|
|
|
// Indexes of the public imported files in the dependency list above. |
|
|
|
|
repeated int32 public_dependency = 10; |
|
|
|
|
|
|
|
|
|
// Indexes of the weak imported files in the dependency list. |
|
|
|
|
// For Google-internal migration only. Do not use. |
|
|
|
|
repeated int32 weak_dependency = 11; |
|
|
|
@ -50,7 +52,6 @@ message FileDescriptorProto { |
|
|
|
|
repeated EnumDescriptorProto enum_type = 5; |
|
|
|
|
repeated ServiceDescriptorProto service = 6; |
|
|
|
|
repeated FieldDescriptorProto extension = 7; |
|
|
|
|
|
|
|
|
|
optional FileOptions options = 8; |
|
|
|
|
|
|
|
|
|
// This field contains optional information about the original source code. |
|
|
|
@ -70,20 +71,17 @@ message DescriptorProto { |
|
|
|
|
|
|
|
|
|
repeated FieldDescriptorProto field = 2; |
|
|
|
|
repeated FieldDescriptorProto extension = 6; |
|
|
|
|
|
|
|
|
|
repeated DescriptorProto nested_type = 3; |
|
|
|
|
repeated EnumDescriptorProto enum_type = 4; |
|
|
|
|
|
|
|
|
|
message ExtensionRange { |
|
|
|
|
optional int32 start = 1; // Inclusive. |
|
|
|
|
optional int32 end = 2; // Exclusive. |
|
|
|
|
|
|
|
|
|
optional ExtensionRangeOptions options = 3; |
|
|
|
|
} |
|
|
|
|
repeated ExtensionRange extension_range = 5; |
|
|
|
|
|
|
|
|
|
repeated ExtensionRange extension_range = 5; |
|
|
|
|
repeated OneofDescriptorProto oneof_decl = 8; |
|
|
|
|
|
|
|
|
|
optional MessageOptions options = 7; |
|
|
|
|
|
|
|
|
|
// Range of reserved tag numbers. Reserved tag numbers may not be used by |
|
|
|
@ -93,7 +91,9 @@ message DescriptorProto { |
|
|
|
|
optional int32 start = 1; // Inclusive. |
|
|
|
|
optional int32 end = 2; // Exclusive. |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
repeated ReservedRange reserved_range = 9; |
|
|
|
|
|
|
|
|
|
// Reserved field names, which may not be used by fields in the same message. |
|
|
|
|
// A given name may only be reserved once. |
|
|
|
|
repeated string reserved_name = 10 [ctype = STRING_PIECE]; |
|
|
|
@ -114,10 +114,12 @@ message FieldDescriptorProto { |
|
|
|
|
// Order is weird for historical reasons. |
|
|
|
|
TYPE_DOUBLE = 1; |
|
|
|
|
TYPE_FLOAT = 2; |
|
|
|
|
|
|
|
|
|
// Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if |
|
|
|
|
// negative values are likely. |
|
|
|
|
TYPE_INT64 = 3; |
|
|
|
|
TYPE_UINT64 = 4; |
|
|
|
|
|
|
|
|
|
// Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if |
|
|
|
|
// negative values are likely. |
|
|
|
|
TYPE_INT32 = 5; |
|
|
|
@ -125,6 +127,7 @@ message FieldDescriptorProto { |
|
|
|
|
TYPE_FIXED32 = 7; |
|
|
|
|
TYPE_BOOL = 8; |
|
|
|
|
TYPE_STRING = 9; |
|
|
|
|
|
|
|
|
|
// Tag-delimited aggregate. |
|
|
|
|
// Group type is deprecated and not supported in proto3. However, Proto3 |
|
|
|
|
// implementations should still be able to parse the group wire format and |
|
|
|
@ -150,6 +153,7 @@ message FieldDescriptorProto { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
optional string name = 1 [ctype = STRING_PIECE]; |
|
|
|
|
|
|
|
|
|
optional int32 number = 3; |
|
|
|
|
optional Label label = 4; |
|
|
|
|
|
|
|
|
@ -214,6 +218,7 @@ message FieldDescriptorProto { |
|
|
|
|
// Describes a oneof. |
|
|
|
|
message OneofDescriptorProto { |
|
|
|
|
optional string name = 1 [ctype = STRING_PIECE]; |
|
|
|
|
|
|
|
|
|
optional OneofOptions options = 2; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -222,7 +227,6 @@ message EnumDescriptorProto { |
|
|
|
|
optional string name = 1 [ctype = STRING_PIECE]; |
|
|
|
|
|
|
|
|
|
repeated EnumValueDescriptorProto value = 2; |
|
|
|
|
|
|
|
|
|
optional EnumOptions options = 3; |
|
|
|
|
|
|
|
|
|
// Range of reserved numeric values. Reserved values may not be used by |
|
|
|
@ -249,16 +253,16 @@ message EnumDescriptorProto { |
|
|
|
|
// Describes a value within an enum. |
|
|
|
|
message EnumValueDescriptorProto { |
|
|
|
|
optional string name = 1 [ctype = STRING_PIECE]; |
|
|
|
|
optional int32 number = 2; |
|
|
|
|
|
|
|
|
|
optional int32 number = 2; |
|
|
|
|
optional EnumValueOptions options = 3; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Describes a service. |
|
|
|
|
message ServiceDescriptorProto { |
|
|
|
|
optional string name = 1 [ctype = STRING_PIECE]; |
|
|
|
|
repeated MethodDescriptorProto method = 2; |
|
|
|
|
|
|
|
|
|
repeated MethodDescriptorProto method = 2; |
|
|
|
|
optional ServiceOptions options = 3; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -269,12 +273,14 @@ message MethodDescriptorProto { |
|
|
|
|
// Input and output type names. These are resolved in the same way as |
|
|
|
|
// FieldDescriptorProto.type_name, but must refer to a message type. |
|
|
|
|
optional string input_type = 2 [ctype = STRING_PIECE]; |
|
|
|
|
|
|
|
|
|
optional string output_type = 3 [ctype = STRING_PIECE]; |
|
|
|
|
|
|
|
|
|
optional MethodOptions options = 4; |
|
|
|
|
|
|
|
|
|
// Identifies if client streams multiple client messages |
|
|
|
|
optional bool client_streaming = 5 [default = false]; |
|
|
|
|
|
|
|
|
|
// Identifies if server streams multiple server messages |
|
|
|
|
optional bool server_streaming = 6 [default = false]; |
|
|
|
|
} |
|
|
|
@ -351,6 +357,7 @@ message FileOptions { |
|
|
|
|
CODE_SIZE = 2; // Use ReflectionOps to implement these methods. |
|
|
|
|
LITE_RUNTIME = 3; // Generate code using MessageLite and the lite runtime. |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
optional OptimizeMode optimize_for = 9 [default = SPEED]; |
|
|
|
|
|
|
|
|
|
// Sets the Go package where structs generated from this .proto will be |
|
|
|
@ -371,8 +378,11 @@ message FileOptions { |
|
|
|
|
// these default to false. Old code which depends on generic services should |
|
|
|
|
// explicitly set them to true. |
|
|
|
|
optional bool cc_generic_services = 16 [default = false]; |
|
|
|
|
|
|
|
|
|
optional bool java_generic_services = 17 [default = false]; |
|
|
|
|
|
|
|
|
|
optional bool py_generic_services = 18 [default = false]; |
|
|
|
|
|
|
|
|
|
optional bool php_generic_services = 42 [default = false]; |
|
|
|
|
|
|
|
|
|
// Is this file deprecated? |
|
|
|
@ -499,14 +509,14 @@ message FieldOptions { |
|
|
|
|
// options below. This option is not yet implemented in the open source |
|
|
|
|
// release -- sorry, we'll try to include it in a future version! |
|
|
|
|
optional CType ctype = 1 [default = STRING]; |
|
|
|
|
|
|
|
|
|
enum CType { |
|
|
|
|
// Default mode. |
|
|
|
|
STRING = 0; |
|
|
|
|
|
|
|
|
|
CORD = 1; |
|
|
|
|
|
|
|
|
|
STRING_PIECE = 2; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// The packed option can be enabled for repeated primitive fields to enable |
|
|
|
|
// a more efficient representation on the wire. Rather than repeatedly |
|
|
|
|
// writing the tag and type for each element, the entire array is encoded as |
|
|
|
@ -526,6 +536,7 @@ message FieldOptions { |
|
|
|
|
// This option is an enum to permit additional types to be added, e.g. |
|
|
|
|
// goog.math.Integer. |
|
|
|
|
optional JSType jstype = 6 [default = JS_NORMAL]; |
|
|
|
|
|
|
|
|
|
enum JSType { |
|
|
|
|
// Use the default type. |
|
|
|
|
JS_NORMAL = 0; |
|
|
|
@ -554,7 +565,6 @@ message FieldOptions { |
|
|
|
|
// call from multiple threads concurrently, while non-const methods continue |
|
|
|
|
// to require exclusive access. |
|
|
|
|
// |
|
|
|
|
// |
|
|
|
|
// Note that implementations may choose not to check required fields within |
|
|
|
|
// a lazy sub-message. That is, calling IsInitialized() on the outer message |
|
|
|
|
// may return true even if the inner message has missing required fields. |
|
|
|
@ -666,6 +676,7 @@ message MethodOptions { |
|
|
|
|
NO_SIDE_EFFECTS = 1; // implies idempotent |
|
|
|
|
IDEMPOTENT = 2; // idempotent, but may have side effects |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
optional IdempotencyLevel idempotency_level = 34 |
|
|
|
|
[default = IDEMPOTENCY_UNKNOWN]; |
|
|
|
|
|
|
|
|
@ -690,13 +701,16 @@ message UninterpretedOption { |
|
|
|
|
// "foo.(bar.baz).qux". |
|
|
|
|
message NamePart { |
|
|
|
|
optional string name_part = 1 [ctype = STRING_PIECE]; |
|
|
|
|
|
|
|
|
|
optional bool is_extension = 2; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
repeated NamePart name = 2; |
|
|
|
|
|
|
|
|
|
// The value of the uninterpreted option, in whatever type the tokenizer |
|
|
|
|
// identified it as during parsing. Exactly one of these should be set. |
|
|
|
|
optional string identifier_value = 3 [ctype = STRING_PIECE]; |
|
|
|
|
|
|
|
|
|
optional uint64 positive_int_value = 4; |
|
|
|
|
optional int64 negative_int_value = 5; |
|
|
|
|
optional double double_value = 6; |
|
|
|
@ -754,6 +768,7 @@ message SourceCodeInfo { |
|
|
|
|
// ignore those that it doesn't understand, as more types of locations could |
|
|
|
|
// be recorded in the future. |
|
|
|
|
repeated Location location = 1; |
|
|
|
|
|
|
|
|
|
message Location { |
|
|
|
|
// Identifies which part of the FileDescriptorProto was defined at this |
|
|
|
|
// location. |
|
|
|
@ -835,7 +850,9 @@ message SourceCodeInfo { |
|
|
|
|
// |
|
|
|
|
// // ignored detached comments. |
|
|
|
|
optional string leading_comments = 3 [ctype = STRING_PIECE]; |
|
|
|
|
|
|
|
|
|
optional string trailing_comments = 4 [ctype = STRING_PIECE]; |
|
|
|
|
|
|
|
|
|
repeated string leading_detached_comments = 6 [ctype = STRING_PIECE]; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
@ -847,6 +864,7 @@ message GeneratedCodeInfo { |
|
|
|
|
// An Annotation connects some span of text in generated code to an element |
|
|
|
|
// of its generating .proto file. |
|
|
|
|
repeated Annotation annotation = 1; |
|
|
|
|
|
|
|
|
|
message Annotation { |
|
|
|
|
// Identifies the element in the original source .proto file. This field |
|
|
|
|
// is formatted the same as SourceCodeInfo.Location.path. |
|
|
|
|