blob: a2b9b4dc4a079c01abe454ddc265b1568d5cfe67 [file] [log] [blame]
// Copyright 2013 Google Inc. All rights reserved.
syntax = "proto2";
package proto2;
option java_package = "com.google.protobuf";
option java_outer_classname = "DescriptorProtos";
option optimize_for = SPEED;
message FileDescriptorSet {
repeated FileDescriptorProto file = 1;
}
message FileDescriptorProto {
optional string name = 1;
optional string package = 2;
repeated string dependency = 3;
repeated int32 public_dependency = 10;
repeated int32 weak_dependency = 11;
repeated DescriptorProto message_type = 4;
repeated EnumDescriptorProto enum_type = 5;
repeated ServiceDescriptorProto service = 6;
repeated FieldDescriptorProto extension = 7;
optional FileOptions options = 8;
optional SourceCodeInfo source_code_info = 9;
}
message DescriptorProto {
optional string name = 1;
repeated FieldDescriptorProto field = 2;
repeated FieldDescriptorProto extension = 6;
repeated DescriptorProto nested_type = 3;
repeated EnumDescriptorProto enum_type = 4;
message ExtensionRange {
optional int32 start = 1;
optional int32 end = 2;
}
repeated ExtensionRange extension_range = 5;
optional MessageOptions options = 7;
}
message FieldDescriptorProto {
enum Type {
TYPE_DOUBLE = 1;
TYPE_FLOAT = 2;
TYPE_INT64 = 3;
TYPE_UINT64 = 4;
TYPE_INT32 = 5;
TYPE_FIXED64 = 6;
TYPE_FIXED32 = 7;
TYPE_BOOL = 8;
TYPE_STRING = 9;
TYPE_GROUP = 10;
TYPE_MESSAGE = 11;
TYPE_BYTES = 12;
TYPE_UINT32 = 13;
TYPE_ENUM = 14;
TYPE_SFIXED32 = 15;
TYPE_SFIXED64 = 16;
TYPE_SINT32 = 17;
TYPE_SINT64 = 18;
};
enum Label {
LABEL_OPTIONAL = 1;
LABEL_REQUIRED = 2;
LABEL_REPEATED = 3;
};
optional string name = 1;
optional int32 number = 3;
optional Label label = 4;
optional Type type = 5;
optional string type_name = 6;
optional string extendee = 2;
optional string default_value = 7;
optional FieldOptions options = 8;
}
message EnumDescriptorProto {
optional string name = 1;
repeated EnumValueDescriptorProto value = 2;
optional EnumOptions options = 3;
}
message EnumValueDescriptorProto {
optional string name = 1;
optional int32 number = 2;
optional EnumValueOptions options = 3;
}
message ServiceDescriptorProto {
optional string name = 1;
repeated MethodDescriptorProto method = 2;
repeated StreamDescriptorProto stream = 4;
optional ServiceOptions options = 3;
}
message MethodDescriptorProto {
optional string name = 1;
optional string input_type = 2;
optional string output_type = 3;
optional MethodOptions options = 4;
}
message StreamDescriptorProto {
optional string name = 1;
optional string client_message_type = 2;
optional string server_message_type = 3;
optional StreamOptions options = 4;
}
message FileOptions {
optional int32 cc_api_version = 2 [default=2];
enum CompatibilityLevel {
NO_COMPATIBILITY = 0;
PROTO1_COMPATIBLE = 100;
DEPRECATED_PROTO1_COMPATIBLE = 50;
}
optional CompatibilityLevel cc_api_compatibility = 15 [default=NO_COMPATIBILITY];
optional bool cc_proto_array_compatible = 22 [default=true];
optional bool cc_utf8_verification = 24 [default=true];
optional bool cc_proto1_text_format = 25 [default=false];
optional string java_package = 1;
optional int32 py_api_version = 4 [default=2];
optional int32 java_api_version = 5 [default=2];
optional bool java_use_javaproto2 = 6 [default=true];
optional bool java_java5_enums = 7 [default=true];
optional bool java_generate_rpc_baseimpl = 13 [default=false];
optional bool java_use_javastrings = 21 [default=false];
optional string java_alt_api_package = 19;
optional string java_outer_classname = 8;
optional bool java_multiple_files = 10 [default=false];
optional bool java_generate_equals_and_hash = 20 [default=false];
enum OptimizeMode {
SPEED = 1;
CODE_SIZE = 2;
LITE_RUNTIME = 3;
}
optional OptimizeMode optimize_for = 9 [default=SPEED];
optional string go_package = 11;
optional string javascript_package = 12;
optional int32 szl_api_version = 14 [default=1];
optional bool java_generic_services = 17 [default=false];
optional bool py_generic_services = 18 [default=false];
optional bool deprecated = 23 [default=false];
repeated UninterpretedOption uninterpreted_option = 999;
extensions 1000 to max;
}
message MessageOptions {
optional bool message_set_wire_format = 1 [default=false];
optional bool no_standard_descriptor_accessor = 2 [default=false];
optional bool deprecated = 3 [default=false];
repeated UninterpretedOption uninterpreted_option = 999;
extensions 1000 to max;
}
message FieldOptions {
optional CType ctype = 1 [default = STRING];
enum CType {
STRING = 0;
CORD = 1;
STRING_PIECE = 2;
}
optional bool packed = 2;
optional JType jtype = 4 [default = NORMAL];
enum JType {
NORMAL = 0;
BYTES = 1;
}
optional JSType jstype = 6 [default = JS_NORMAL];
enum JSType {
JS_NORMAL = 0;
JS_STRING = 1;
JS_NUMBER = 2;
}
optional bool lazy = 5 [default=false];
optional bool deprecated = 3 [default=false];
optional string experimental_map_key = 9;
optional bool weak = 10 [default=false];
message UpgradedOption {
optional string name = 1;
optional string value = 2;
};
repeated UpgradedOption upgraded_option = 11;
repeated UninterpretedOption uninterpreted_option = 999;
extensions 1000 to max;
}
message EnumOptions {
optional string proto1_name = 1;
optional bool allow_alias = 2;
optional bool deprecated = 3 [default=false];
repeated UninterpretedOption uninterpreted_option = 999;
extensions 1000 to max;
}
message EnumValueOptions {
optional bool deprecated = 1 [default=false];
repeated UninterpretedOption uninterpreted_option = 999;
extensions 1000 to max;
}
message ServiceOptions {
optional bool multicast_stub = 20 [default=false];
optional double failure_detection_delay = 16 [default=-1.0];
optional bool deprecated = 33 [default=false];
repeated UninterpretedOption uninterpreted_option = 999;
extensions 1000 to max;
}
message MethodOptions {
enum Protocol {
TCP = 0;
UDP = 1;
}
enum SecurityLevel {
NONE = 0;
INTEGRITY = 1;
PRIVACY_AND_INTEGRITY = 2;
STRONG_PRIVACY_AND_INTEGRITY = 3;
}
enum Format {
UNCOMPRESSED = 0;
ZIPPY_COMPRESSED = 1;
}
optional double deadline = 8 [default=-1.0];
optional bool duplicate_suppression = 9 [default=false];
optional bool fail_fast = 10 [default=false];
optional sint32 client_logging = 11 [default=256];
optional sint32 server_logging = 12 [default=256];
optional SecurityLevel security_level = 13 [default=NONE];
optional Format response_format = 15 [default=UNCOMPRESSED];
optional Format request_format = 17 [default=UNCOMPRESSED];
optional string stream_type = 18;
optional bool deprecated = 33 [default=false];
repeated UninterpretedOption uninterpreted_option = 999;
extensions 1000 to max;
}
message StreamOptions {
enum TokenUnit {
MESSAGE = 0;
BYTE = 1;
}
optional int64 client_initial_tokens = 1 [default=-1];
optional int64 server_initial_tokens = 2 [default=-1];
optional TokenUnit token_unit = 3 [default=MESSAGE];
optional MethodOptions.SecurityLevel security_level = 4 [default=NONE];
optional string security_label = 5;
optional int32 client_logging = 6 [default=256];
optional int32 server_logging = 7 [default=256];
optional bool deprecated = 33 [default=false];
repeated UninterpretedOption uninterpreted_option = 999;
extensions 1000 to max;
}
message UninterpretedOption {
message NamePart {
required string name_part = 1;
required bool is_extension = 2;
}
repeated NamePart name = 2;
optional string identifier_value = 3;
optional uint64 positive_int_value = 4;
optional int64 negative_int_value = 5;
optional double double_value = 6;
optional bytes string_value = 7;
optional string aggregate_value = 8;
}
message SourceCodeInfo {
repeated Location location = 1;
message Location {
repeated int32 path = 1 [packed=true];
repeated int32 span = 2 [packed=true];
optional string leading_comments = 3;
optional string trailing_comments = 4;
}
}