syntax = "proto3";

import 'google/protobuf/any.proto';
import 'google/protobuf/wrappers.proto';
import 'google/protobuf/struct.proto';
import 'proto/test_include.proto';
import 'proto/test_no_namespace.proto';
import 'proto/test_php_namespace.proto';
import 'proto/test_empty_php_namespace.proto';
import 'proto/test_prefix.proto';

package foo;

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;

  // 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;
}

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 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 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;
  }
}
