1*1b3f573fSAndroid Build Coastguard Workersyntax = "proto3"; 2*1b3f573fSAndroid Build Coastguard Worker 3*1b3f573fSAndroid Build Coastguard Workerpackage basic_test; 4*1b3f573fSAndroid Build Coastguard Worker 5*1b3f573fSAndroid Build Coastguard Workerimport "google/protobuf/wrappers.proto"; 6*1b3f573fSAndroid Build Coastguard Workerimport "google/protobuf/timestamp.proto"; 7*1b3f573fSAndroid Build Coastguard Workerimport "google/protobuf/duration.proto"; 8*1b3f573fSAndroid Build Coastguard Workerimport "google/protobuf/struct.proto"; 9*1b3f573fSAndroid Build Coastguard Workerimport "test_import_proto2.proto"; 10*1b3f573fSAndroid Build Coastguard Worker 11*1b3f573fSAndroid Build Coastguard Workermessage Foo { 12*1b3f573fSAndroid Build Coastguard Worker Bar bar = 1; 13*1b3f573fSAndroid Build Coastguard Worker repeated Baz baz = 2; 14*1b3f573fSAndroid Build Coastguard Worker} 15*1b3f573fSAndroid Build Coastguard Worker 16*1b3f573fSAndroid Build Coastguard Workermessage Bar { 17*1b3f573fSAndroid Build Coastguard Worker string msg = 1; 18*1b3f573fSAndroid Build Coastguard Worker} 19*1b3f573fSAndroid Build Coastguard Worker 20*1b3f573fSAndroid Build Coastguard Workermessage Baz { 21*1b3f573fSAndroid Build Coastguard Worker string msg = 1; 22*1b3f573fSAndroid Build Coastguard Worker} 23*1b3f573fSAndroid Build Coastguard Worker 24*1b3f573fSAndroid Build Coastguard Workermessage TestMessage { 25*1b3f573fSAndroid Build Coastguard Worker optional int32 optional_int32 = 1; 26*1b3f573fSAndroid Build Coastguard Worker optional int64 optional_int64 = 2; 27*1b3f573fSAndroid Build Coastguard Worker optional uint32 optional_uint32 = 3; 28*1b3f573fSAndroid Build Coastguard Worker optional uint64 optional_uint64 = 4; 29*1b3f573fSAndroid Build Coastguard Worker optional bool optional_bool = 5; 30*1b3f573fSAndroid Build Coastguard Worker optional float optional_float = 6; 31*1b3f573fSAndroid Build Coastguard Worker optional double optional_double = 7; 32*1b3f573fSAndroid Build Coastguard Worker optional string optional_string = 8; 33*1b3f573fSAndroid Build Coastguard Worker optional bytes optional_bytes = 9; 34*1b3f573fSAndroid Build Coastguard Worker optional TestMessage2 optional_msg = 10; 35*1b3f573fSAndroid Build Coastguard Worker optional TestEnum optional_enum = 11; 36*1b3f573fSAndroid Build Coastguard Worker optional foo_bar.proto2.TestImportedMessage optional_proto2_submessage = 24; 37*1b3f573fSAndroid Build Coastguard Worker 38*1b3f573fSAndroid Build Coastguard Worker repeated int32 repeated_int32 = 12; 39*1b3f573fSAndroid Build Coastguard Worker repeated int64 repeated_int64 = 13; 40*1b3f573fSAndroid Build Coastguard Worker repeated uint32 repeated_uint32 = 14; 41*1b3f573fSAndroid Build Coastguard Worker repeated uint64 repeated_uint64 = 15; 42*1b3f573fSAndroid Build Coastguard Worker repeated bool repeated_bool = 16; 43*1b3f573fSAndroid Build Coastguard Worker repeated float repeated_float = 17; 44*1b3f573fSAndroid Build Coastguard Worker repeated double repeated_double = 18; 45*1b3f573fSAndroid Build Coastguard Worker repeated string repeated_string = 19; 46*1b3f573fSAndroid Build Coastguard Worker repeated bytes repeated_bytes = 20; 47*1b3f573fSAndroid Build Coastguard Worker repeated TestMessage2 repeated_msg = 21; 48*1b3f573fSAndroid Build Coastguard Worker repeated TestEnum repeated_enum = 22; 49*1b3f573fSAndroid Build Coastguard Worker 50*1b3f573fSAndroid Build Coastguard Worker optional TestSingularFields optional_msg2 = 23; 51*1b3f573fSAndroid Build Coastguard Worker} 52*1b3f573fSAndroid Build Coastguard Worker 53*1b3f573fSAndroid Build Coastguard Workermessage TestSingularFields { 54*1b3f573fSAndroid Build Coastguard Worker int32 singular_int32 = 1; 55*1b3f573fSAndroid Build Coastguard Worker int64 singular_int64 = 2; 56*1b3f573fSAndroid Build Coastguard Worker uint32 singular_uint32 = 3; 57*1b3f573fSAndroid Build Coastguard Worker uint64 singular_uint64 = 4; 58*1b3f573fSAndroid Build Coastguard Worker bool singular_bool = 5; 59*1b3f573fSAndroid Build Coastguard Worker float singular_float = 6; 60*1b3f573fSAndroid Build Coastguard Worker double singular_double = 7; 61*1b3f573fSAndroid Build Coastguard Worker string singular_string = 8; 62*1b3f573fSAndroid Build Coastguard Worker bytes singular_bytes = 9; 63*1b3f573fSAndroid Build Coastguard Worker TestMessage2 singular_msg = 10; 64*1b3f573fSAndroid Build Coastguard Worker TestEnum singular_enum = 11; 65*1b3f573fSAndroid Build Coastguard Worker} 66*1b3f573fSAndroid Build Coastguard Worker 67*1b3f573fSAndroid Build Coastguard Workermessage TestMessage2 { 68*1b3f573fSAndroid Build Coastguard Worker optional int32 foo = 1; 69*1b3f573fSAndroid Build Coastguard Worker} 70*1b3f573fSAndroid Build Coastguard Worker 71*1b3f573fSAndroid Build Coastguard Workerenum TestEnum { 72*1b3f573fSAndroid Build Coastguard Worker Default = 0; 73*1b3f573fSAndroid Build Coastguard Worker A = 1; 74*1b3f573fSAndroid Build Coastguard Worker B = 2; 75*1b3f573fSAndroid Build Coastguard Worker C = 3; 76*1b3f573fSAndroid Build Coastguard Worker v0 = 4; 77*1b3f573fSAndroid Build Coastguard Worker} 78*1b3f573fSAndroid Build Coastguard Worker 79*1b3f573fSAndroid Build Coastguard Workermessage TestEmbeddedMessageParent { 80*1b3f573fSAndroid Build Coastguard Worker TestEmbeddedMessageChild child_msg = 1; 81*1b3f573fSAndroid Build Coastguard Worker int32 number = 2; 82*1b3f573fSAndroid Build Coastguard Worker 83*1b3f573fSAndroid Build Coastguard Worker repeated TestEmbeddedMessageChild repeated_msg = 3; 84*1b3f573fSAndroid Build Coastguard Worker repeated int32 repeated_number = 4; 85*1b3f573fSAndroid Build Coastguard Worker} 86*1b3f573fSAndroid Build Coastguard Worker 87*1b3f573fSAndroid Build Coastguard Workermessage TestEmbeddedMessageChild { 88*1b3f573fSAndroid Build Coastguard Worker TestMessage sub_child = 1; 89*1b3f573fSAndroid Build Coastguard Worker} 90*1b3f573fSAndroid Build Coastguard Worker 91*1b3f573fSAndroid Build Coastguard Workermessage Recursive1 { 92*1b3f573fSAndroid Build Coastguard Worker Recursive2 foo = 1; 93*1b3f573fSAndroid Build Coastguard Worker} 94*1b3f573fSAndroid Build Coastguard Worker 95*1b3f573fSAndroid Build Coastguard Workermessage Recursive2 { 96*1b3f573fSAndroid Build Coastguard Worker Recursive1 foo = 1; 97*1b3f573fSAndroid Build Coastguard Worker} 98*1b3f573fSAndroid Build Coastguard Worker 99*1b3f573fSAndroid Build Coastguard Workermessage MapMessage { 100*1b3f573fSAndroid Build Coastguard Worker map<string, int32> map_string_int32 = 1; 101*1b3f573fSAndroid Build Coastguard Worker map<string, TestMessage2> map_string_msg = 2; 102*1b3f573fSAndroid Build Coastguard Worker map<string, TestEnum> map_string_enum = 3; 103*1b3f573fSAndroid Build Coastguard Worker} 104*1b3f573fSAndroid Build Coastguard Worker 105*1b3f573fSAndroid Build Coastguard Workermessage MapMessageWireEquiv { 106*1b3f573fSAndroid Build Coastguard Worker repeated MapMessageWireEquiv_entry1 map_string_int32 = 1; 107*1b3f573fSAndroid Build Coastguard Worker repeated MapMessageWireEquiv_entry2 map_string_msg = 2; 108*1b3f573fSAndroid Build Coastguard Worker} 109*1b3f573fSAndroid Build Coastguard Worker 110*1b3f573fSAndroid Build Coastguard Workermessage MapMessageWireEquiv_entry1 { 111*1b3f573fSAndroid Build Coastguard Worker string key = 1; 112*1b3f573fSAndroid Build Coastguard Worker int32 value = 2; 113*1b3f573fSAndroid Build Coastguard Worker} 114*1b3f573fSAndroid Build Coastguard Worker 115*1b3f573fSAndroid Build Coastguard Workermessage MapMessageWireEquiv_entry2 { 116*1b3f573fSAndroid Build Coastguard Worker string key = 1; 117*1b3f573fSAndroid Build Coastguard Worker TestMessage2 value = 2; 118*1b3f573fSAndroid Build Coastguard Worker} 119*1b3f573fSAndroid Build Coastguard Worker 120*1b3f573fSAndroid Build Coastguard Workermessage OneofMessage { 121*1b3f573fSAndroid Build Coastguard Worker oneof my_oneof { 122*1b3f573fSAndroid Build Coastguard Worker string a = 1; 123*1b3f573fSAndroid Build Coastguard Worker int32 b = 2; 124*1b3f573fSAndroid Build Coastguard Worker TestMessage2 c = 3; 125*1b3f573fSAndroid Build Coastguard Worker TestEnum d = 4; 126*1b3f573fSAndroid Build Coastguard Worker } 127*1b3f573fSAndroid Build Coastguard Worker} 128*1b3f573fSAndroid Build Coastguard Worker 129*1b3f573fSAndroid Build Coastguard Workermessage Outer { 130*1b3f573fSAndroid Build Coastguard Worker map<int32, Inner> items = 1; 131*1b3f573fSAndroid Build Coastguard Worker} 132*1b3f573fSAndroid Build Coastguard Worker 133*1b3f573fSAndroid Build Coastguard Workermessage Inner { 134*1b3f573fSAndroid Build Coastguard Worker} 135*1b3f573fSAndroid Build Coastguard Worker 136*1b3f573fSAndroid Build Coastguard Workermessage Wrapper { 137*1b3f573fSAndroid Build Coastguard Worker google.protobuf.DoubleValue double = 1; 138*1b3f573fSAndroid Build Coastguard Worker google.protobuf.FloatValue float = 2; 139*1b3f573fSAndroid Build Coastguard Worker google.protobuf.Int32Value int32 = 3; 140*1b3f573fSAndroid Build Coastguard Worker google.protobuf.Int64Value int64 = 4; 141*1b3f573fSAndroid Build Coastguard Worker google.protobuf.UInt32Value uint32 = 5; 142*1b3f573fSAndroid Build Coastguard Worker google.protobuf.UInt64Value uint64 = 6; 143*1b3f573fSAndroid Build Coastguard Worker google.protobuf.BoolValue bool = 7; 144*1b3f573fSAndroid Build Coastguard Worker google.protobuf.StringValue string = 8; 145*1b3f573fSAndroid Build Coastguard Worker google.protobuf.BytesValue bytes = 9; 146*1b3f573fSAndroid Build Coastguard Worker string real_string = 100; 147*1b3f573fSAndroid Build Coastguard Worker oneof a_oneof { 148*1b3f573fSAndroid Build Coastguard Worker string string_in_oneof = 10; 149*1b3f573fSAndroid Build Coastguard Worker } 150*1b3f573fSAndroid Build Coastguard Worker 151*1b3f573fSAndroid Build Coastguard Worker // Repeated wrappers don't make sense, but we still need to make sure they 152*1b3f573fSAndroid Build Coastguard Worker // work and don't crash. 153*1b3f573fSAndroid Build Coastguard Worker repeated google.protobuf.DoubleValue repeated_double = 11; 154*1b3f573fSAndroid Build Coastguard Worker repeated google.protobuf.FloatValue repeated_float = 12; 155*1b3f573fSAndroid Build Coastguard Worker repeated google.protobuf.Int32Value repeated_int32 = 13; 156*1b3f573fSAndroid Build Coastguard Worker repeated google.protobuf.Int64Value repeated_int64 = 14; 157*1b3f573fSAndroid Build Coastguard Worker repeated google.protobuf.UInt32Value repeated_uint32 = 15; 158*1b3f573fSAndroid Build Coastguard Worker repeated google.protobuf.UInt64Value repeated_uint64 = 16; 159*1b3f573fSAndroid Build Coastguard Worker repeated google.protobuf.BoolValue repeated_bool = 17; 160*1b3f573fSAndroid Build Coastguard Worker repeated google.protobuf.StringValue repeated_string = 18; 161*1b3f573fSAndroid Build Coastguard Worker repeated google.protobuf.BytesValue repeated_bytes = 19; 162*1b3f573fSAndroid Build Coastguard Worker 163*1b3f573fSAndroid Build Coastguard Worker // Wrappers as map keys don't make sense, but we still need to make sure they 164*1b3f573fSAndroid Build Coastguard Worker // work and don't crash. 165*1b3f573fSAndroid Build Coastguard Worker map<int32, google.protobuf.DoubleValue> map_double = 21; 166*1b3f573fSAndroid Build Coastguard Worker map<int32, google.protobuf.FloatValue> map_float = 22; 167*1b3f573fSAndroid Build Coastguard Worker map<int32, google.protobuf.Int32Value> map_int32 = 23; 168*1b3f573fSAndroid Build Coastguard Worker map<int32, google.protobuf.Int64Value> map_int64 = 24; 169*1b3f573fSAndroid Build Coastguard Worker map<int32, google.protobuf.UInt32Value> map_uint32 = 25; 170*1b3f573fSAndroid Build Coastguard Worker map<int32, google.protobuf.UInt64Value> map_uint64 = 26; 171*1b3f573fSAndroid Build Coastguard Worker map<int32, google.protobuf.BoolValue> map_bool = 27; 172*1b3f573fSAndroid Build Coastguard Worker map<int32, google.protobuf.StringValue> map_string = 28; 173*1b3f573fSAndroid Build Coastguard Worker map<int32, google.protobuf.BytesValue> map_bytes = 29; 174*1b3f573fSAndroid Build Coastguard Worker 175*1b3f573fSAndroid Build Coastguard Worker // Wrappers in oneofs don't make sense, but we still need to make sure they 176*1b3f573fSAndroid Build Coastguard Worker // work and don't crash. 177*1b3f573fSAndroid Build Coastguard Worker oneof wrapper_oneof { 178*1b3f573fSAndroid Build Coastguard Worker google.protobuf.DoubleValue oneof_double = 31; 179*1b3f573fSAndroid Build Coastguard Worker google.protobuf.FloatValue oneof_float = 32; 180*1b3f573fSAndroid Build Coastguard Worker google.protobuf.Int32Value oneof_int32 = 33; 181*1b3f573fSAndroid Build Coastguard Worker google.protobuf.Int64Value oneof_int64 = 34; 182*1b3f573fSAndroid Build Coastguard Worker google.protobuf.UInt32Value oneof_uint32 = 35; 183*1b3f573fSAndroid Build Coastguard Worker google.protobuf.UInt64Value oneof_uint64 = 36; 184*1b3f573fSAndroid Build Coastguard Worker google.protobuf.BoolValue oneof_bool = 37; 185*1b3f573fSAndroid Build Coastguard Worker google.protobuf.StringValue oneof_string = 38; 186*1b3f573fSAndroid Build Coastguard Worker google.protobuf.BytesValue oneof_bytes = 39; 187*1b3f573fSAndroid Build Coastguard Worker string oneof_plain_string = 101; 188*1b3f573fSAndroid Build Coastguard Worker } 189*1b3f573fSAndroid Build Coastguard Worker} 190*1b3f573fSAndroid Build Coastguard Worker 191*1b3f573fSAndroid Build Coastguard Workermessage TimeMessage { 192*1b3f573fSAndroid Build Coastguard Worker google.protobuf.Timestamp timestamp = 1; 193*1b3f573fSAndroid Build Coastguard Worker google.protobuf.Duration duration = 2; 194*1b3f573fSAndroid Build Coastguard Worker} 195*1b3f573fSAndroid Build Coastguard Worker 196*1b3f573fSAndroid Build Coastguard Workermessage Enumer { 197*1b3f573fSAndroid Build Coastguard Worker TestEnum optional_enum = 1; 198*1b3f573fSAndroid Build Coastguard Worker repeated TestEnum repeated_enum = 2; 199*1b3f573fSAndroid Build Coastguard Worker string a_const = 3; 200*1b3f573fSAndroid Build Coastguard Worker oneof a_oneof { 201*1b3f573fSAndroid Build Coastguard Worker string str = 10; 202*1b3f573fSAndroid Build Coastguard Worker TestEnum const = 11; 203*1b3f573fSAndroid Build Coastguard Worker } 204*1b3f573fSAndroid Build Coastguard Worker} 205*1b3f573fSAndroid Build Coastguard Worker 206*1b3f573fSAndroid Build Coastguard Workermessage MyRepeatedStruct { 207*1b3f573fSAndroid Build Coastguard Worker repeated MyStruct structs = 1; 208*1b3f573fSAndroid Build Coastguard Worker} 209*1b3f573fSAndroid Build Coastguard Worker 210*1b3f573fSAndroid Build Coastguard Workermessage MyStruct { 211*1b3f573fSAndroid Build Coastguard Worker string string = 1; 212*1b3f573fSAndroid Build Coastguard Worker google.protobuf.Struct struct = 2; 213*1b3f573fSAndroid Build Coastguard Worker} 214*1b3f573fSAndroid Build Coastguard Worker 215*1b3f573fSAndroid Build Coastguard Workermessage WithJsonName { 216*1b3f573fSAndroid Build Coastguard Worker optional int32 foo_bar = 1 [json_name="jsonFooBar"]; 217*1b3f573fSAndroid Build Coastguard Worker repeated WithJsonName baz = 2 [json_name="jsonBaz"]; 218*1b3f573fSAndroid Build Coastguard Worker} 219*1b3f573fSAndroid Build Coastguard Worker 220*1b3f573fSAndroid Build Coastguard Workermessage HelloRequest { 221*1b3f573fSAndroid Build Coastguard Worker optional uint32 id = 1; 222*1b3f573fSAndroid Build Coastguard Worker optional uint32 random_name_a0 = 2; 223*1b3f573fSAndroid Build Coastguard Worker optional uint32 random_name_a1 = 3; 224*1b3f573fSAndroid Build Coastguard Worker optional uint32 random_name_a2 = 4; 225*1b3f573fSAndroid Build Coastguard Worker optional uint32 random_name_a3 = 5; 226*1b3f573fSAndroid Build Coastguard Worker optional uint32 random_name_a4 = 6; 227*1b3f573fSAndroid Build Coastguard Worker optional uint32 random_name_a5 = 7; 228*1b3f573fSAndroid Build Coastguard Worker optional uint32 random_name_a6 = 8; 229*1b3f573fSAndroid Build Coastguard Worker optional uint32 random_name_a7 = 9; 230*1b3f573fSAndroid Build Coastguard Worker optional uint32 random_name_a8 = 10; 231*1b3f573fSAndroid Build Coastguard Worker optional uint32 random_name_a9 = 11; 232*1b3f573fSAndroid Build Coastguard Worker optional uint32 random_name_b0 = 12; 233*1b3f573fSAndroid Build Coastguard Worker optional uint32 random_name_b1 = 13; 234*1b3f573fSAndroid Build Coastguard Worker optional uint32 random_name_b2 = 14; 235*1b3f573fSAndroid Build Coastguard Worker optional uint32 random_name_b3 = 15; 236*1b3f573fSAndroid Build Coastguard Worker optional uint32 random_name_b4 = 16; 237*1b3f573fSAndroid Build Coastguard Worker optional uint32 random_name_b5 = 17; 238*1b3f573fSAndroid Build Coastguard Worker optional uint32 random_name_b6 = 18; 239*1b3f573fSAndroid Build Coastguard Worker optional uint32 random_name_b7 = 19; 240*1b3f573fSAndroid Build Coastguard Worker optional uint32 random_name_b8 = 20; 241*1b3f573fSAndroid Build Coastguard Worker optional uint32 random_name_b9 = 21; 242*1b3f573fSAndroid Build Coastguard Worker optional uint32 random_name_c0 = 22; 243*1b3f573fSAndroid Build Coastguard Worker optional uint32 random_name_c1 = 23; 244*1b3f573fSAndroid Build Coastguard Worker optional uint32 random_name_c2 = 24; 245*1b3f573fSAndroid Build Coastguard Worker optional uint32 random_name_c3 = 25; 246*1b3f573fSAndroid Build Coastguard Worker optional uint32 random_name_c4 = 26; 247*1b3f573fSAndroid Build Coastguard Worker optional uint32 random_name_c5 = 27; 248*1b3f573fSAndroid Build Coastguard Worker optional uint32 random_name_c6 = 28; 249*1b3f573fSAndroid Build Coastguard Worker optional uint32 random_name_c7 = 29; 250*1b3f573fSAndroid Build Coastguard Worker optional uint32 random_name_c8 = 30; 251*1b3f573fSAndroid Build Coastguard Worker optional uint32 random_name_c9 = 31; 252*1b3f573fSAndroid Build Coastguard Worker optional string version = 32; 253*1b3f573fSAndroid Build Coastguard Worker} 254