syntax = "proto3";

package basic_test;

import "google/protobuf/descriptor.proto";
import "google/protobuf/duration.proto";
import "google/protobuf/struct.proto";
import "google/protobuf/timestamp.proto";
import "google/protobuf/wrappers.proto";
import "test_import_proto2.proto";

option deprecated = true;

message Foo {
  Bar bar = 1;
  repeated Baz baz = 2;
}

message Bar {
  string msg = 1;
}

message Baz {
  string msg = 1;
}

message TestMessage {
  optional int32 optional_int32 = 1;
  optional int64 optional_int64 = 2;
  optional uint32 optional_uint32 = 3;
  optional uint64 optional_uint64 = 4;
  optional bool optional_bool = 5;
  optional float optional_float = 6;
  optional double optional_double = 7;
  optional string optional_string = 8;
  optional bytes optional_bytes = 9;
  optional TestMessage2 optional_msg = 10;
  optional TestEnum optional_enum = 11;
  optional foo_bar.proto2.TestImportedMessage optional_proto2_submessage = 24;

  repeated int32 repeated_int32 = 12;
  repeated int64 repeated_int64 = 13;
  repeated uint32 repeated_uint32 = 14;
  repeated uint64 repeated_uint64 = 15;
  repeated bool repeated_bool = 16;
  repeated float repeated_float = 17;
  repeated double repeated_double = 18;
  repeated string repeated_string = 19;
  repeated bytes repeated_bytes = 20;
  repeated TestMessage2 repeated_msg = 21;
  repeated TestEnum repeated_enum = 22;

  optional TestSingularFields optional_msg2 = 23;
}

message TestUnpackedMessage {
  repeated int32 repeated_int32 = 25 [packed = false];
}

message TestSingularFields {
  int32 singular_int32 = 1;
  int64 singular_int64 = 2;
  uint32 singular_uint32 = 3;
  uint64 singular_uint64 = 4;
  bool singular_bool = 5;
  float singular_float = 6;
  double singular_double = 7;
  string singular_string = 8;
  bytes singular_bytes = 9;
  TestMessage2 singular_msg = 10;
  TestEnum singular_enum = 11;
}

message TestMessage2 {
  optional int32 foo = 1;
}

extend google.protobuf.OneofOptions {
  optional string test_top_level_option = 1000;
}

message TestDeprecatedMessage {
  option deprecated = true;

  extend google.protobuf.OneofOptions {
    optional string test_nested_option = 1001;
  }

  optional int32 foo = 1 [deprecated = true];

  oneof test_deprecated_message_oneof {
    option (test_top_level_option) = "Custom option value";
    option (test_nested_option) = "Another custom option value";

    string a = 2;
    int32 b = 3;
  }

  map<string, TestMessage2> map_string_msg = 4;
  repeated TestMessage2 repeated_msg = 5;
}

enum TestEnum {
  Default = 0;
  A = 1;
  B = 2;
  C = 3;
  v0 = 4;
}

enum TestDeprecatedEnum {
  option deprecated = true;

  DefaultA = 0;
  AA = 1 [deprecated = true];
}

message TestEmbeddedMessageParent {
  TestEmbeddedMessageChild child_msg = 1;
  int32 number = 2;

  repeated TestEmbeddedMessageChild repeated_msg = 3;
  repeated int32 repeated_number = 4;
}

message TestEmbeddedMessageChild {
  TestMessage sub_child = 1;
}

message Recursive1 {
  Recursive2 foo = 1;
}

message Recursive2 {
  Recursive1 foo = 1;
}

message MapMessage {
  map<string, int32> map_string_int32 = 1;
  map<string, TestMessage2> map_string_msg = 2;
  map<string, TestEnum> map_string_enum = 3;
}

message MapMessageWireEquiv {
  repeated MapMessageWireEquiv_entry1 map_string_int32 = 1;
  repeated MapMessageWireEquiv_entry2 map_string_msg = 2;
}

message MapMessageWireEquiv_entry1 {
  string key = 1;
  int32 value = 2;
}

message MapMessageWireEquiv_entry2 {
  string key = 1;
  TestMessage2 value = 2;
}

message OneofMessage {
  oneof my_oneof {
    string a = 1;
    int32 b = 2;
    TestMessage2 c = 3;
    TestEnum d = 4;
  }
}

message Outer {
  map<int32, Inner> items = 1;
}

message Inner {}

message Wrapper {
  google.protobuf.DoubleValue double = 1;
  google.protobuf.FloatValue float = 2;
  google.protobuf.Int32Value int32 = 3;
  google.protobuf.Int64Value int64 = 4;
  google.protobuf.UInt32Value uint32 = 5;
  google.protobuf.UInt64Value uint64 = 6;
  google.protobuf.BoolValue bool = 7;
  google.protobuf.StringValue string = 8;
  google.protobuf.BytesValue bytes = 9;
  string real_string = 100;
  oneof a_oneof {
    string string_in_oneof = 10;
  }

  // Repeated wrappers don't make sense, but we still need to make sure they
  // work and don't crash.
  repeated google.protobuf.DoubleValue repeated_double = 11;
  repeated google.protobuf.FloatValue repeated_float = 12;
  repeated google.protobuf.Int32Value repeated_int32 = 13;
  repeated google.protobuf.Int64Value repeated_int64 = 14;
  repeated google.protobuf.UInt32Value repeated_uint32 = 15;
  repeated google.protobuf.UInt64Value repeated_uint64 = 16;
  repeated google.protobuf.BoolValue repeated_bool = 17;
  repeated google.protobuf.StringValue repeated_string = 18;
  repeated google.protobuf.BytesValue repeated_bytes = 19;

  // Wrappers as map keys don't make sense, but we still need to make sure they
  // work and don't crash.
  map<int32, google.protobuf.DoubleValue> map_double = 21;
  map<int32, google.protobuf.FloatValue> map_float = 22;
  map<int32, google.protobuf.Int32Value> map_int32 = 23;
  map<int32, google.protobuf.Int64Value> map_int64 = 24;
  map<int32, google.protobuf.UInt32Value> map_uint32 = 25;
  map<int32, google.protobuf.UInt64Value> map_uint64 = 26;
  map<int32, google.protobuf.BoolValue> map_bool = 27;
  map<int32, google.protobuf.StringValue> map_string = 28;
  map<int32, google.protobuf.BytesValue> map_bytes = 29;

  // Wrappers in oneofs don't make sense, but we still need to make sure they
  // work and don't crash.
  oneof wrapper_oneof {
    google.protobuf.DoubleValue oneof_double = 31;
    google.protobuf.FloatValue oneof_float = 32;
    google.protobuf.Int32Value oneof_int32 = 33;
    google.protobuf.Int64Value oneof_int64 = 34;
    google.protobuf.UInt32Value oneof_uint32 = 35;
    google.protobuf.UInt64Value oneof_uint64 = 36;
    google.protobuf.BoolValue oneof_bool = 37;
    google.protobuf.StringValue oneof_string = 38;
    google.protobuf.BytesValue oneof_bytes = 39;
    string oneof_plain_string = 101;
  }
}

message TimeMessage {
  google.protobuf.Timestamp timestamp = 1;
  google.protobuf.Duration duration = 2;
}

message Enumer {
  TestEnum optional_enum = 1;
  repeated TestEnum repeated_enum = 2;
  string a_const = 3;
  oneof a_oneof {
    string str = 10;
    TestEnum const = 11;
  }
}

message MyRepeatedStruct {
  repeated MyStruct structs = 1;
}

message MyStruct {
  string string = 1;
  google.protobuf.Struct struct = 2;
}

message WithJsonName {
  optional int32 foo_bar = 1 [json_name = "jsonFooBar"];
  repeated WithJsonName baz = 2 [json_name = "jsonBaz"];
}

message HelloRequest {
  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;
}

message BadFieldNames {
  optional int32 dup = 1;
  optional int32 class = 2;
}

// Messages to test the fix for
// https://github.com/protocolbuffers/protobuf/issues/8311.
message Inner8311 {
  // Removing either of these fixes the segfault.
  optional string foo = 1;
  optional string bar = 2;
}

message Outer8311 {
  repeated Inner8311 inners = 1;
}

// Messages to test the fix for
// https://github.com/protocolbuffers/protobuf/issues/9507
message NpeMessage {
  optional TestEnum9507 type = 1;
  optional string other = 2;
}

enum TestEnum9507 {
  Something = 0;
}
