import "data_types_import.proto"; enum FooEnum { FIRST_VALUE = 1; SECOND_VALUE = 2; } message BarMessage { required int32 b_required_int32 = 1; } message FooMessage { optional int32 f_int32 = 1; optional int64 f_int64 = 2; optional uint32 f_uint32 = 3; optional uint64 f_uint64 = 4; optional sint32 f_sint32 = 5; optional sint64 f_sint64 = 6 [default=4]; optional bool f_bool = 7 [default=true]; optional FooEnum f_FooEnum = 8; optional fixed64 f_fixed64 = 9; optional sfixed64 f_sfixed64 = 10; optional fixed32 f_fixed32 = 11 [default=0]; optional sfixed32 f_sfixed32 = 12; optional double f_double = 13; optional float f_float = 14; optional bytes f_bytes = 15; optional string f_string = 16; optional FooMessage f_self_message = 17; optional BarMessage f_bar_message = 18; repeated int32 f_repeated_int32 = 19; repeated int32 f_repeated_packed_int32 = 20 [ packed = true ]; repeated float f_repeated_packed_float = 21 [ packed = true ]; optional a.b.ImportedMessage f_imported = 22; optional BazMessage f_baz = 23; optional BazMessage.Nested f_nested = 24; optional BazMessage.Nested.NestedEnum f_nested_enum = 25; map f_map = 26; oneof test_oneof { int32 f1 = 27; bool f2 = 28; string f3 = 29; } } message BazMessage { message Nested { message NestedMessage { required int32 f_nested = 1; } enum NestedEnum { Foo = 0; Bar = 1; Baz = 2; } required NestedMessage f_nested = 1; } optional Nested nested = 1; }