| syntax = "proto3"; |
| |
| package foo; |
| |
| import 'google/protobuf/any.proto'; |
| import 'google/protobuf/struct.proto'; |
| import 'google/protobuf/wrappers.proto'; |
| import 'proto/test_empty_php_namespace.proto'; |
| import 'proto/test_include.proto'; |
| import 'proto/test_no_namespace.proto'; |
| import 'proto/test_php_namespace.proto'; |
| import 'proto/test_prefix.proto'; |
| |
| message TestMessage { |
| // Singular |
| int32 optional_int32 = 1; |
| int64 optional_int64 = 2; |
| uint32 optional_uint32 = 3; |
| uint64 optional_uint64 = 4; |
| sint32 optional_sint32 = 5; |
| sint64 optional_sint64 = 6; |
| fixed32 optional_fixed32 = 7; |
| fixed64 optional_fixed64 = 8; |
| sfixed32 optional_sfixed32 = 9; |
| sfixed64 optional_sfixed64 = 10; |
| float optional_float = 11; |
| double optional_double = 12; |
| bool optional_bool = 13; |
| string optional_string = 14; |
| bytes optional_bytes = 15; |
| |
| TestEnum optional_enum = 16; |
| Sub optional_message = 17; |
| bar.TestInclude optional_included_message = 18; |
| TestMessage recursive = 19; |
| |
| // True optional |
| optional int32 true_optional_int32 = 201; |
| optional int64 true_optional_int64 = 202; |
| optional uint32 true_optional_uint32 = 203; |
| optional uint64 true_optional_uint64 = 204; |
| optional sint32 true_optional_sint32 = 205; |
| optional sint64 true_optional_sint64 = 206; |
| optional fixed32 true_optional_fixed32 = 207; |
| optional fixed64 true_optional_fixed64 = 208; |
| optional sfixed32 true_optional_sfixed32 = 209; |
| optional sfixed64 true_optional_sfixed64 = 210; |
| optional float true_optional_float = 211; |
| optional double true_optional_double = 212; |
| optional bool true_optional_bool = 213; |
| optional string true_optional_string = 214; |
| optional bytes true_optional_bytes = 215; |
| |
| optional TestEnum true_optional_enum = 216; |
| optional Sub true_optional_message = 217; |
| optional bar.TestInclude true_optional_included_message = 218; |
| |
| // Repeated |
| repeated int32 repeated_int32 = 31; |
| repeated int64 repeated_int64 = 32; |
| repeated uint32 repeated_uint32 = 33; |
| repeated uint64 repeated_uint64 = 34; |
| repeated sint32 repeated_sint32 = 35; |
| repeated sint64 repeated_sint64 = 36; |
| repeated fixed32 repeated_fixed32 = 37; |
| repeated fixed64 repeated_fixed64 = 38; |
| repeated sfixed32 repeated_sfixed32 = 39; |
| repeated sfixed64 repeated_sfixed64 = 40; |
| repeated float repeated_float = 41; |
| repeated double repeated_double = 42; |
| repeated bool repeated_bool = 43; |
| repeated string repeated_string = 44; |
| repeated bytes repeated_bytes = 45; |
| |
| repeated TestEnum repeated_enum = 46; |
| repeated Sub repeated_message = 47; |
| repeated TestMessage repeated_recursive = 48; |
| |
| oneof my_oneof { |
| int32 oneof_int32 = 51; |
| int64 oneof_int64 = 52; |
| uint32 oneof_uint32 = 53; |
| uint64 oneof_uint64 = 54; |
| uint32 oneof_sint32 = 55; |
| uint64 oneof_sint64 = 56; |
| uint32 oneof_fixed32 = 57; |
| uint64 oneof_fixed64 = 58; |
| uint32 oneof_sfixed32 = 59; |
| uint64 oneof_sfixed64 = 60; |
| double oneof_double = 61; |
| float oneof_float = 62; |
| bool oneof_bool = 63; |
| string oneof_string = 64; |
| bytes oneof_bytes = 65; |
| TestEnum oneof_enum = 66; |
| Sub oneof_message = 67; |
| } |
| |
| map<int32, int32> map_int32_int32 = 71; |
| map<int64, int64> map_int64_int64 = 72; |
| map<uint32, uint32> map_uint32_uint32 = 73; |
| map<uint64, uint64> map_uint64_uint64 = 74; |
| map<sint32, sint32> map_sint32_sint32 = 75; |
| map<sint64, sint64> map_sint64_sint64 = 76; |
| map<fixed32, fixed32> map_fixed32_fixed32 = 77; |
| map<fixed64, fixed64> map_fixed64_fixed64 = 78; |
| map<sfixed32, sfixed32> map_sfixed32_sfixed32 = 79; |
| map<sfixed64, sfixed64> map_sfixed64_sfixed64 = 80; |
| map<int32, float> map_int32_float = 81; |
| map<int32, double> map_int32_double = 82; |
| map<bool, bool> map_bool_bool = 83; |
| map<string, string> map_string_string = 84; |
| map<int32, bytes> map_int32_bytes = 85; |
| map<int32, TestEnum> map_int32_enum = 86; |
| map<int32, Sub> map_int32_message = 87; |
| |
| map<int32, TestMessage> map_recursive = 88; |
| |
| message Sub { |
| int32 a = 1; |
| repeated int32 b = 2; |
| } |
| |
| // Reserved for non-existing field test. |
| // int32 non_exist = 89; |
| |
| NoNamespaceMessage optional_no_namespace_message = 91; |
| NoNamespaceEnum optional_no_namespace_enum = 92; |
| repeated NoNamespaceMessage repeated_no_namespace_message = 93; |
| repeated NoNamespaceEnum repeated_no_namespace_enum = 94; |
| |
| enum NestedEnum { |
| ZERO = 0; |
| } |
| |
| NestedEnum optional_nested_enum = 101; |
| |
| // Test prefix for reserved words. |
| message Empty { |
| int32 a = 1; |
| } |
| |
| reserved 111; |
| |
| // Test map with missing message value |
| map<string, TestMessage> map_string_message = 121; |
| map<string, google.protobuf.Any> map_string_any = 122; |
| map<string, google.protobuf.ListValue> map_string_list = 123; |
| map<string, google.protobuf.Struct> map_string_struct = 124; |
| |
| // deprecated field |
| int32 deprecated_int32 = 125 [deprecated = true]; |
| // deprecated optional field |
| optional int32 deprecated_optional_int32 = 126 [deprecated = true]; |
| // deprecated wrapped field |
| google.protobuf.Int32Value deprecated_int32_value = 127 [deprecated = true]; |
| // deprecated oneof |
| oneof deprecated_oneof { |
| int32 deprecated_oneof_int32 = 128 [deprecated = true]; |
| } |
| // deprecated repeated field |
| repeated int32 deprecated_repeated_int32 = 129 [deprecated = true]; |
| // deprecated map |
| map<int32, int32> deprecated_map_int32_int32 = 130 [deprecated = true]; |
| // deprecated any |
| google.protobuf.Any deprecated_any = 131 [deprecated = true]; |
| // deprecated message |
| TestMessage deprecated_message = 132 [deprecated = true]; |
| // deprecated enum |
| NestedEnum deprecated_enum = 133 [deprecated = true]; |
| } |
| |
| enum TestEnum { |
| ZERO = 0; |
| ONE = 1; |
| TWO = 2; |
| ECHO = 3; // Test reserved name. |
| } |
| |
| // Test prefix for reserved words. |
| message Empty { |
| int32 a = 1; |
| } |
| |
| message ARRAY { |
| int32 a = 1; |
| } |
| |
| message EmptyAnySerialization { |
| string a = 1; |
| } |
| |
| message TestPackedMessage { |
| repeated int32 repeated_int32 = 90 [packed = true]; |
| repeated int64 repeated_int64 = 91 [packed = true]; |
| repeated uint32 repeated_uint32 = 92 [packed = true]; |
| repeated uint64 repeated_uint64 = 93 [packed = true]; |
| repeated sint32 repeated_sint32 = 94 [packed = true]; |
| repeated sint64 repeated_sint64 = 95 [packed = true]; |
| repeated fixed32 repeated_fixed32 = 96 [packed = true]; |
| repeated fixed64 repeated_fixed64 = 97 [packed = true]; |
| repeated sfixed32 repeated_sfixed32 = 98 [packed = true]; |
| repeated sfixed64 repeated_sfixed64 = 99 [packed = true]; |
| repeated float repeated_float = 100 [packed = true]; |
| repeated double repeated_double = 101 [packed = true]; |
| repeated bool repeated_bool = 102 [packed = true]; |
| repeated TestEnum repeated_enum = 103 [packed = true]; |
| } |
| |
| // Need to be in sync with TestPackedMessage. |
| message TestUnpackedMessage { |
| repeated int32 repeated_int32 = 90 [packed = false]; |
| repeated int64 repeated_int64 = 91 [packed = false]; |
| repeated uint32 repeated_uint32 = 92 [packed = false]; |
| repeated uint64 repeated_uint64 = 93 [packed = false]; |
| repeated sint32 repeated_sint32 = 94 [packed = false]; |
| repeated sint64 repeated_sint64 = 95 [packed = false]; |
| repeated fixed32 repeated_fixed32 = 96 [packed = false]; |
| repeated fixed64 repeated_fixed64 = 97 [packed = false]; |
| repeated sfixed32 repeated_sfixed32 = 98 [packed = false]; |
| repeated sfixed64 repeated_sfixed64 = 99 [packed = false]; |
| repeated float repeated_float = 100 [packed = false]; |
| repeated double repeated_double = 101 [packed = false]; |
| repeated bool repeated_bool = 102 [packed = false]; |
| repeated TestEnum repeated_enum = 103 [packed = false]; |
| } |
| |
| // /**/@<>&\{ |
| message TestPhpDoc { |
| int32 a = 1; |
| } |
| |
| message TestIncludePrefixMessage { |
| TestPrefix prefix_message = 1; |
| } |
| |
| message TestIncludeNamespaceMessage { |
| TestNamespace namespace_message = 1; |
| TestEmptyNamespace empty_namespace_message = 2; |
| } |
| |
| // This will cause upb fields not ordered by the order in the generated code. |
| message TestRandomFieldOrder { |
| int64 tag13 = 150; |
| string tag14 = 160; |
| } |
| |
| message TestLargeFieldNumber { |
| int32 large_field_number = 536870911; |
| } |
| |
| message TestReverseFieldOrder { |
| repeated int32 a = 2; |
| string b = 1; |
| } |
| |
| message testLowerCaseMessage {} |
| |
| enum testLowerCaseEnum { |
| VALUE = 0; |
| } |
| |
| message TestAny { |
| google.protobuf.Any any = 1; |
| } |
| |
| message TestInt32Value { |
| google.protobuf.Int32Value field = 1; |
| repeated google.protobuf.Int32Value repeated_field = 2; |
| oneof oneof_fields { |
| google.protobuf.Int32Value oneof_field = 3; |
| int32 int32_field = 4; |
| } |
| } |
| |
| message TestInt64Value { |
| google.protobuf.Int64Value field = 1; |
| repeated google.protobuf.Int64Value repeated_field = 2; |
| oneof oneof_fields { |
| google.protobuf.Int64Value oneof_field = 3; |
| int32 int32_field = 4; |
| } |
| } |
| |
| message TestUInt32Value { |
| google.protobuf.UInt32Value field = 1; |
| repeated google.protobuf.UInt32Value repeated_field = 2; |
| oneof oneof_fields { |
| google.protobuf.UInt32Value oneof_field = 3; |
| int32 int32_field = 4; |
| } |
| } |
| |
| message TestUInt64Value { |
| google.protobuf.UInt64Value field = 1; |
| repeated google.protobuf.UInt64Value repeated_field = 2; |
| oneof oneof_fields { |
| google.protobuf.UInt64Value oneof_field = 3; |
| int32 int32_field = 4; |
| } |
| } |
| |
| message TestBoolValue { |
| google.protobuf.BoolValue field = 1; |
| repeated google.protobuf.BoolValue repeated_field = 2; |
| oneof oneof_fields { |
| google.protobuf.BoolValue oneof_field = 3; |
| int32 int32_field = 4; |
| } |
| } |
| |
| message TestStringValue { |
| google.protobuf.StringValue field = 1; |
| repeated google.protobuf.StringValue repeated_field = 2; |
| oneof oneof_fields { |
| google.protobuf.StringValue oneof_field = 3; |
| int32 int32_field = 4; |
| } |
| map<int32, google.protobuf.StringValue> map_field = 5; |
| } |
| |
| message TestBytesValue { |
| google.protobuf.BytesValue field = 1; |
| repeated google.protobuf.BytesValue repeated_field = 2; |
| oneof oneof_fields { |
| google.protobuf.BytesValue oneof_field = 3; |
| int32 int32_field = 4; |
| } |
| } |
| |
| message Test32Fields { |
| optional uint32 id = 1; |
| optional uint32 random_name_a0 = 2; |
| optional uint32 random_name_a1 = 3; |
| optional uint32 random_name_a2 = 4; |
| optional uint32 random_name_a3 = 5; |
| optional uint32 random_name_a4 = 6; |
| optional uint32 random_name_a5 = 7; |
| optional uint32 random_name_a6 = 8; |
| optional uint32 random_name_a7 = 9; |
| optional uint32 random_name_a8 = 10; |
| optional uint32 random_name_a9 = 11; |
| optional uint32 random_name_b0 = 12; |
| optional uint32 random_name_b1 = 13; |
| optional uint32 random_name_b2 = 14; |
| optional uint32 random_name_b3 = 15; |
| optional uint32 random_name_b4 = 16; |
| optional uint32 random_name_b5 = 17; |
| optional uint32 random_name_b6 = 18; |
| optional uint32 random_name_b7 = 19; |
| optional uint32 random_name_b8 = 20; |
| optional uint32 random_name_b9 = 21; |
| optional uint32 random_name_c0 = 22; |
| optional uint32 random_name_c1 = 23; |
| optional uint32 random_name_c2 = 24; |
| optional uint32 random_name_c3 = 25; |
| optional uint32 random_name_c4 = 26; |
| optional uint32 random_name_c5 = 27; |
| optional uint32 random_name_c6 = 28; |
| optional uint32 random_name_c7 = 29; |
| optional uint32 random_name_c8 = 30; |
| optional uint32 random_name_c9 = 31; |
| optional string version = 32; |
| } |