|
@@ -40,6 +40,7 @@
|
|
|
syntax = "proto2";
|
|
|
|
|
|
package google.protobuf;
|
|
|
+
|
|
|
option go_package = "github.com/golang/protobuf/protoc-gen-go/descriptor;descriptor";
|
|
|
option java_package = "com.google.protobuf";
|
|
|
option java_outer_classname = "DescriptorProtos";
|
|
@@ -59,8 +60,8 @@ message FileDescriptorSet {
|
|
|
|
|
|
// Describes a complete .proto file.
|
|
|
message FileDescriptorProto {
|
|
|
- optional string name = 1; // file name, relative to root of source tree
|
|
|
- optional string package = 2; // e.g. "foo", "foo.bar", etc.
|
|
|
+ optional string name = 1; // file name, relative to root of source tree
|
|
|
+ optional string package = 2; // e.g. "foo", "foo.bar", etc.
|
|
|
|
|
|
// Names of files imported by this file.
|
|
|
repeated string dependency = 3;
|
|
@@ -100,8 +101,8 @@ message DescriptorProto {
|
|
|
repeated EnumDescriptorProto enum_type = 4;
|
|
|
|
|
|
message ExtensionRange {
|
|
|
- optional int32 start = 1;
|
|
|
- optional int32 end = 2;
|
|
|
+ optional int32 start = 1; // Inclusive.
|
|
|
+ optional int32 end = 2; // Exclusive.
|
|
|
|
|
|
optional ExtensionRangeOptions options = 3;
|
|
|
}
|
|
@@ -115,8 +116,8 @@ message DescriptorProto {
|
|
|
// fields or extension ranges in the same message. Reserved ranges may
|
|
|
// not overlap.
|
|
|
message ReservedRange {
|
|
|
- optional int32 start = 1; // Inclusive.
|
|
|
- optional int32 end = 2; // Exclusive.
|
|
|
+ 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.
|
|
@@ -137,42 +138,42 @@ message FieldDescriptorProto {
|
|
|
enum Type {
|
|
|
// 0 is reserved for errors.
|
|
|
// Order is weird for historical reasons.
|
|
|
- TYPE_DOUBLE = 1;
|
|
|
- TYPE_FLOAT = 2;
|
|
|
+ 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;
|
|
|
+ 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;
|
|
|
- TYPE_FIXED64 = 6;
|
|
|
- TYPE_FIXED32 = 7;
|
|
|
- TYPE_BOOL = 8;
|
|
|
- TYPE_STRING = 9;
|
|
|
+ TYPE_INT32 = 5;
|
|
|
+ TYPE_FIXED64 = 6;
|
|
|
+ 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
|
|
|
// treat group fields as unknown fields.
|
|
|
- TYPE_GROUP = 10;
|
|
|
- TYPE_MESSAGE = 11; // Length-delimited aggregate.
|
|
|
+ TYPE_GROUP = 10;
|
|
|
+ TYPE_MESSAGE = 11; // Length-delimited aggregate.
|
|
|
|
|
|
// New in version 2.
|
|
|
- TYPE_BYTES = 12;
|
|
|
- TYPE_UINT32 = 13;
|
|
|
- TYPE_ENUM = 14;
|
|
|
- TYPE_SFIXED32 = 15;
|
|
|
- TYPE_SFIXED64 = 16;
|
|
|
- TYPE_SINT32 = 17; // Uses ZigZag encoding.
|
|
|
- TYPE_SINT64 = 18; // Uses ZigZag encoding.
|
|
|
- };
|
|
|
+ TYPE_BYTES = 12;
|
|
|
+ TYPE_UINT32 = 13;
|
|
|
+ TYPE_ENUM = 14;
|
|
|
+ TYPE_SFIXED32 = 15;
|
|
|
+ TYPE_SFIXED64 = 16;
|
|
|
+ TYPE_SINT32 = 17; // Uses ZigZag encoding.
|
|
|
+ TYPE_SINT64 = 18; // Uses ZigZag encoding.
|
|
|
+ }
|
|
|
|
|
|
enum Label {
|
|
|
// 0 is reserved for errors
|
|
|
- LABEL_OPTIONAL = 1;
|
|
|
- LABEL_REQUIRED = 2;
|
|
|
- LABEL_REPEATED = 3;
|
|
|
- };
|
|
|
+ LABEL_OPTIONAL = 1;
|
|
|
+ LABEL_REQUIRED = 2;
|
|
|
+ LABEL_REPEATED = 3;
|
|
|
+ }
|
|
|
|
|
|
optional string name = 1;
|
|
|
optional int32 number = 3;
|
|
@@ -234,8 +235,8 @@ message EnumDescriptorProto {
|
|
|
// is inclusive such that it can appropriately represent the entire int32
|
|
|
// domain.
|
|
|
message EnumReservedRange {
|
|
|
- optional int32 start = 1; // Inclusive.
|
|
|
- optional int32 end = 2; // Inclusive.
|
|
|
+ optional int32 start = 1; // Inclusive.
|
|
|
+ optional int32 end = 2; // Inclusive.
|
|
|
}
|
|
|
|
|
|
// Range of reserved numeric values. Reserved numeric values may not be used
|
|
@@ -276,9 +277,9 @@ message MethodDescriptorProto {
|
|
|
optional MethodOptions options = 4;
|
|
|
|
|
|
// Identifies if client streams multiple client messages
|
|
|
- optional bool client_streaming = 5 [default=false];
|
|
|
+ optional bool client_streaming = 5 [default = false];
|
|
|
// Identifies if server streams multiple server messages
|
|
|
- optional bool server_streaming = 6 [default=false];
|
|
|
+ optional bool server_streaming = 6 [default = false];
|
|
|
}
|
|
|
|
|
|
|
|
@@ -314,7 +315,6 @@ message MethodDescriptorProto {
|
|
|
// If this turns out to be popular, a web service will be set up
|
|
|
// to automatically assign option numbers.
|
|
|
|
|
|
-
|
|
|
message FileOptions {
|
|
|
|
|
|
// Sets the Java package where classes generated from this .proto will be
|
|
@@ -337,7 +337,7 @@ message FileOptions {
|
|
|
// named by java_outer_classname. However, the outer class will still be
|
|
|
// generated to contain the file's getDescriptor() method as well as any
|
|
|
// top-level extensions defined in the file.
|
|
|
- optional bool java_multiple_files = 10 [default=false];
|
|
|
+ optional bool java_multiple_files = 10 [default = false];
|
|
|
|
|
|
// This option does nothing.
|
|
|
optional bool java_generate_equals_and_hash = 20 [deprecated=true];
|
|
@@ -348,17 +348,17 @@ message FileOptions {
|
|
|
// Message reflection will do the same.
|
|
|
// However, an extension field still accepts non-UTF-8 byte sequences.
|
|
|
// This option has no effect on when used with the lite runtime.
|
|
|
- optional bool java_string_check_utf8 = 27 [default=false];
|
|
|
+ optional bool java_string_check_utf8 = 27 [default = false];
|
|
|
|
|
|
|
|
|
// Generated classes can be optimized for speed or code size.
|
|
|
enum OptimizeMode {
|
|
|
- SPEED = 1; // Generate complete code for parsing, serialization,
|
|
|
- // etc.
|
|
|
- CODE_SIZE = 2; // Use ReflectionOps to implement these methods.
|
|
|
- LITE_RUNTIME = 3; // Generate code using MessageLite and the lite runtime.
|
|
|
+ SPEED = 1; // Generate complete code for parsing, serialization,
|
|
|
+ // etc.
|
|
|
+ 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];
|
|
|
+ optional OptimizeMode optimize_for = 9 [default = SPEED];
|
|
|
|
|
|
// Sets the Go package where structs generated from this .proto will be
|
|
|
// placed. If omitted, the Go package will be derived from the following:
|
|
@@ -369,6 +369,7 @@ message FileOptions {
|
|
|
|
|
|
|
|
|
|
|
|
+
|
|
|
// Should generic services be generated in each language? "Generic" services
|
|
|
// are not specific to any particular RPC system. They are generated by the
|
|
|
// main code generators in each language (without additional plugins).
|
|
@@ -379,20 +380,20 @@ message FileOptions {
|
|
|
// that generate code specific to your particular RPC system. Therefore,
|
|
|
// 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];
|
|
|
+ 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?
|
|
|
// Depending on the target platform, this can emit Deprecated annotations
|
|
|
// for everything in the file, or it will be completely ignored; in the very
|
|
|
// least, this is a formalization for deprecating files.
|
|
|
- optional bool deprecated = 23 [default=false];
|
|
|
+ optional bool deprecated = 23 [default = false];
|
|
|
|
|
|
// Enables the use of arenas for the proto messages in this file. This applies
|
|
|
// only to generated classes for C++.
|
|
|
- optional bool cc_enable_arenas = 31 [default=false];
|
|
|
+ optional bool cc_enable_arenas = 31 [default = false];
|
|
|
|
|
|
|
|
|
// Sets the objective c class prefix which is prepended to all objective c
|
|
@@ -417,10 +418,9 @@ message FileOptions {
|
|
|
// determining the namespace.
|
|
|
optional string php_namespace = 41;
|
|
|
|
|
|
-
|
|
|
// Use this option to change the namespace of php generated metadata classes.
|
|
|
- // Default is empty. When this option is empty, the proto file name will be used
|
|
|
- // for determining the namespace.
|
|
|
+ // Default is empty. When this option is empty, the proto file name will be
|
|
|
+ // used for determining the namespace.
|
|
|
optional string php_metadata_namespace = 44;
|
|
|
|
|
|
// Use this option to change the package of ruby generated classes. Default
|
|
@@ -428,6 +428,7 @@ message FileOptions {
|
|
|
// determining the ruby package.
|
|
|
optional string ruby_package = 45;
|
|
|
|
|
|
+
|
|
|
// The parser stores options it doesn't recognize here.
|
|
|
// See the documentation for the "Options" section above.
|
|
|
repeated UninterpretedOption uninterpreted_option = 999;
|
|
@@ -458,18 +459,18 @@ message MessageOptions {
|
|
|
//
|
|
|
// Because this is an option, the above two restrictions are not enforced by
|
|
|
// the protocol compiler.
|
|
|
- optional bool message_set_wire_format = 1 [default=false];
|
|
|
+ optional bool message_set_wire_format = 1 [default = false];
|
|
|
|
|
|
// Disables the generation of the standard "descriptor()" accessor, which can
|
|
|
// conflict with a field of the same name. This is meant to make migration
|
|
|
// from proto1 easier; new code should avoid fields named "descriptor".
|
|
|
- optional bool no_standard_descriptor_accessor = 2 [default=false];
|
|
|
+ optional bool no_standard_descriptor_accessor = 2 [default = false];
|
|
|
|
|
|
// Is this message deprecated?
|
|
|
// Depending on the target platform, this can emit Deprecated annotations
|
|
|
// for the message, or it will be completely ignored; in the very least,
|
|
|
// this is a formalization for deprecating messages.
|
|
|
- optional bool deprecated = 3 [default=false];
|
|
|
+ optional bool deprecated = 3 [default = false];
|
|
|
|
|
|
// Whether the message is an automatically generated map entry type for the
|
|
|
// maps field.
|
|
@@ -486,7 +487,7 @@ message MessageOptions {
|
|
|
//
|
|
|
// Implementations may choose not to generate the map_entry=true message, but
|
|
|
// use a native map in the target language to hold the keys and values.
|
|
|
- // The reflection APIs in such implementions still need to work as
|
|
|
+ // The reflection APIs in such implementations still need to work as
|
|
|
// if the field is a repeated message field.
|
|
|
//
|
|
|
// NOTE: Do not set the option in .proto files. Always use the maps syntax
|
|
@@ -497,6 +498,7 @@ message MessageOptions {
|
|
|
reserved 8; // javalite_serializable
|
|
|
reserved 9; // javanano_as_lite
|
|
|
|
|
|
+
|
|
|
// The parser stores options it doesn't recognize here. See above.
|
|
|
repeated UninterpretedOption uninterpreted_option = 999;
|
|
|
|
|
@@ -576,16 +578,16 @@ message FieldOptions {
|
|
|
// implementation must either *always* check its required fields, or *never*
|
|
|
// check its required fields, regardless of whether or not the message has
|
|
|
// been parsed.
|
|
|
- optional bool lazy = 5 [default=false];
|
|
|
+ optional bool lazy = 5 [default = false];
|
|
|
|
|
|
// Is this field deprecated?
|
|
|
// Depending on the target platform, this can emit Deprecated annotations
|
|
|
// for accessors, or it will be completely ignored; in the very least, this
|
|
|
// is a formalization for deprecating fields.
|
|
|
- optional bool deprecated = 3 [default=false];
|
|
|
+ optional bool deprecated = 3 [default = false];
|
|
|
|
|
|
// For Google-internal migration only. Do not use.
|
|
|
- optional bool weak = 10 [default=false];
|
|
|
+ optional bool weak = 10 [default = false];
|
|
|
|
|
|
|
|
|
// The parser stores options it doesn't recognize here. See above.
|
|
@@ -615,7 +617,7 @@ message EnumOptions {
|
|
|
// Depending on the target platform, this can emit Deprecated annotations
|
|
|
// for the enum, or it will be completely ignored; in the very least, this
|
|
|
// is a formalization for deprecating enums.
|
|
|
- optional bool deprecated = 3 [default=false];
|
|
|
+ optional bool deprecated = 3 [default = false];
|
|
|
|
|
|
reserved 5; // javanano_as_lite
|
|
|
|
|
@@ -631,7 +633,7 @@ message EnumValueOptions {
|
|
|
// Depending on the target platform, this can emit Deprecated annotations
|
|
|
// for the enum value, or it will be completely ignored; in the very least,
|
|
|
// this is a formalization for deprecating enum values.
|
|
|
- optional bool deprecated = 1 [default=false];
|
|
|
+ optional bool deprecated = 1 [default = false];
|
|
|
|
|
|
// The parser stores options it doesn't recognize here. See above.
|
|
|
repeated UninterpretedOption uninterpreted_option = 999;
|
|
@@ -651,7 +653,7 @@ message ServiceOptions {
|
|
|
// Depending on the target platform, this can emit Deprecated annotations
|
|
|
// for the service, or it will be completely ignored; in the very least,
|
|
|
// this is a formalization for deprecating services.
|
|
|
- optional bool deprecated = 33 [default=false];
|
|
|
+ optional bool deprecated = 33 [default = false];
|
|
|
|
|
|
// The parser stores options it doesn't recognize here. See above.
|
|
|
repeated UninterpretedOption uninterpreted_option = 999;
|
|
@@ -671,18 +673,18 @@ message MethodOptions {
|
|
|
// Depending on the target platform, this can emit Deprecated annotations
|
|
|
// for the method, or it will be completely ignored; in the very least,
|
|
|
// this is a formalization for deprecating methods.
|
|
|
- optional bool deprecated = 33 [default=false];
|
|
|
+ optional bool deprecated = 33 [default = false];
|
|
|
|
|
|
// Is this method side-effect-free (or safe in HTTP parlance), or idempotent,
|
|
|
// or neither? HTTP based RPC implementation may choose GET verb for safe
|
|
|
// methods, and PUT verb for idempotent methods instead of the default POST.
|
|
|
enum IdempotencyLevel {
|
|
|
IDEMPOTENCY_UNKNOWN = 0;
|
|
|
- NO_SIDE_EFFECTS = 1; // implies idempotent
|
|
|
- IDEMPOTENT = 2; // idempotent, but may have side effects
|
|
|
+ NO_SIDE_EFFECTS = 1; // implies idempotent
|
|
|
+ IDEMPOTENT = 2; // idempotent, but may have side effects
|
|
|
}
|
|
|
- optional IdempotencyLevel idempotency_level =
|
|
|
- 34 [default=IDEMPOTENCY_UNKNOWN];
|
|
|
+ optional IdempotencyLevel idempotency_level = 34
|
|
|
+ [default = IDEMPOTENCY_UNKNOWN];
|
|
|
|
|
|
// The parser stores options it doesn't recognize here. See above.
|
|
|
repeated UninterpretedOption uninterpreted_option = 999;
|
|
@@ -763,7 +765,7 @@ message SourceCodeInfo {
|
|
|
// beginning of the "extend" block and is shared by all extensions within
|
|
|
// the block.
|
|
|
// - Just because a location's span is a subset of some other location's span
|
|
|
- // does not mean that it is a descendent. For example, a "group" defines
|
|
|
+ // does not mean that it is a descendant. For example, a "group" defines
|
|
|
// both a type and a field in a single declaration. Thus, the locations
|
|
|
// corresponding to the type and field and their components will overlap.
|
|
|
// - Code which tries to interpret locations should probably be designed to
|
|
@@ -794,14 +796,14 @@ message SourceCodeInfo {
|
|
|
// [ 4, 3, 2, 7 ]
|
|
|
// this path refers to the whole field declaration (from the beginning
|
|
|
// of the label to the terminating semicolon).
|
|
|
- repeated int32 path = 1 [packed=true];
|
|
|
+ repeated int32 path = 1 [packed = true];
|
|
|
|
|
|
// Always has exactly three or four elements: start line, start column,
|
|
|
// end line (optional, otherwise assumed same as start line), end column.
|
|
|
// These are packed into a single field for efficiency. Note that line
|
|
|
// and column numbers are zero-based -- typically you will want to add
|
|
|
// 1 to each before displaying to a user.
|
|
|
- repeated int32 span = 2 [packed=true];
|
|
|
+ repeated int32 span = 2 [packed = true];
|
|
|
|
|
|
// If this SourceCodeInfo represents a complete declaration, these are any
|
|
|
// comments appearing before and after the declaration which appear to be
|
|
@@ -866,7 +868,7 @@ message GeneratedCodeInfo {
|
|
|
message Annotation {
|
|
|
// Identifies the element in the original source .proto file. This field
|
|
|
// is formatted the same as SourceCodeInfo.Location.path.
|
|
|
- repeated int32 path = 1 [packed=true];
|
|
|
+ repeated int32 path = 1 [packed = true];
|
|
|
|
|
|
// Identifies the filesystem path to the original source .proto.
|
|
|
optional string source_file = 2;
|