mirror of
https://github.com/octoleo/syncthing.git
synced 2024-11-06 05:17:49 +00:00
916ec63af6
This is a new revision of the discovery server. Relevant changes and non-changes: - Protocol towards clients is unchanged. - Recommended large scale design is still to be deployed nehind nginx (I tested, and it's still a lot faster at terminating TLS). - Database backend is leveldb again, only. It scales enough, is easy to setup, and we don't need any backend to take care of. - Server supports replication. This is a simple TCP channel - protect it with a firewall when deploying over the internet. (We deploy this within the same datacenter, and with firewall.) Any incoming client announces are sent over the replication channel(s) to other peer discosrvs. Incoming replication changes are applied to the database as if they came from clients, but without the TLS/certificate overhead. - Metrics are exposed using the prometheus library, when enabled. - The database values and replication protocol is protobuf, because JSON was quite CPU intensive when I tried that and benchmarked it. - The "Retry-After" value for failed lookups gets slowly increased from a default of 120 seconds, by 5 seconds for each failed lookup, independently by each discosrv. This lowers the query load over time for clients that are never seen. The Retry-After maxes out at 3600 after a couple of weeks of this increase. The number of failed lookups is stored in the database, now and then (avoiding making each lookup a database put). All in all this means clients can be pointed towards a cluster using just multiple A / AAAA records to gain both load sharing and redundancy (if one is down, clients will talk to the remaining ones). GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4648
650 lines
23 KiB
Protocol Buffer
650 lines
23 KiB
Protocol Buffer
// Protocol Buffers for Go with Gadgets
|
|
//
|
|
// Copyright (c) 2013, The GoGo Authors. All rights reserved.
|
|
// http://github.com/gogo/protobuf
|
|
//
|
|
// Redistribution and use in source and binary forms, with or without
|
|
// modification, are permitted provided that the following conditions are
|
|
// met:
|
|
//
|
|
// * Redistributions of source code must retain the above copyright
|
|
// notice, this list of conditions and the following disclaimer.
|
|
// * Redistributions in binary form must reproduce the above
|
|
// copyright notice, this list of conditions and the following disclaimer
|
|
// in the documentation and/or other materials provided with the
|
|
// distribution.
|
|
//
|
|
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
|
syntax = "proto2";
|
|
package test;
|
|
|
|
import "github.com/gogo/protobuf/gogoproto/gogo.proto";
|
|
|
|
option (gogoproto.goproto_stringer_all) = false;
|
|
option (gogoproto.goproto_enum_prefix_all) = false;
|
|
option (gogoproto.goproto_getters_all) = false;
|
|
|
|
option (gogoproto.equal_all) = true;
|
|
option (gogoproto.verbose_equal_all) = true;
|
|
option (gogoproto.stringer_all) = true;
|
|
option (gogoproto.gostring_all) = true;
|
|
option (gogoproto.face_all) = true;
|
|
option (gogoproto.description_all) = true;
|
|
|
|
option (gogoproto.testgen_all) = true;
|
|
option (gogoproto.populate_all) = true;
|
|
option (gogoproto.benchgen_all) = true;
|
|
option (gogoproto.unmarshaler_all) = false;
|
|
option (gogoproto.marshaler_all) = false;
|
|
option (gogoproto.sizer_all) = true;
|
|
option (gogoproto.protosizer_all) = false;
|
|
|
|
option (gogoproto.goproto_enum_stringer_all) = false;
|
|
option (gogoproto.enum_stringer_all) = true;
|
|
|
|
option (gogoproto.unsafe_marshaler_all) = false;
|
|
option (gogoproto.unsafe_unmarshaler_all) = false;
|
|
|
|
option (gogoproto.compare_all) = true;
|
|
|
|
message NidOptNative {
|
|
optional double Field1 = 1 [(gogoproto.nullable) = false];
|
|
optional float Field2 = 2 [(gogoproto.nullable) = false];
|
|
optional int32 Field3 = 3 [(gogoproto.nullable) = false];
|
|
optional int64 Field4 = 4 [(gogoproto.nullable) = false];
|
|
optional uint32 Field5 = 5 [(gogoproto.nullable) = false];
|
|
optional uint64 Field6 = 6 [(gogoproto.nullable) = false];
|
|
optional sint32 Field7 = 7 [(gogoproto.nullable) = false];
|
|
optional sint64 Field8 = 8 [(gogoproto.nullable) = false];
|
|
optional fixed32 Field9 = 9 [(gogoproto.nullable) = false];
|
|
optional sfixed32 Field10 = 10 [(gogoproto.nullable) = false];
|
|
optional fixed64 Field11 = 11 [(gogoproto.nullable) = false];
|
|
optional sfixed64 Field12 = 12 [(gogoproto.nullable) = false];
|
|
optional bool Field13 = 13 [(gogoproto.nullable) = false];
|
|
optional string Field14 = 14 [(gogoproto.nullable) = false];
|
|
optional bytes Field15 = 15 [(gogoproto.nullable) = false];
|
|
}
|
|
|
|
message NinOptNative {
|
|
optional double Field1 = 1;
|
|
optional float Field2 = 2;
|
|
optional int32 Field3 = 3;
|
|
optional int64 Field4 = 4;
|
|
optional uint32 Field5 = 5;
|
|
optional uint64 Field6 = 6;
|
|
optional sint32 Field7 = 7;
|
|
optional sint64 Field8 = 8;
|
|
optional fixed32 Field9 = 9;
|
|
optional sfixed32 Field10 = 10;
|
|
optional fixed64 Field11 = 11;
|
|
optional sfixed64 Field12 = 12;
|
|
optional bool Field13 = 13;
|
|
optional string Field14 = 14;
|
|
optional bytes Field15 = 15;
|
|
}
|
|
|
|
message NidRepNative {
|
|
repeated double Field1 = 1 [(gogoproto.nullable) = false];
|
|
repeated float Field2 = 2 [(gogoproto.nullable) = false];
|
|
repeated int32 Field3 = 3 [(gogoproto.nullable) = false];
|
|
repeated int64 Field4 = 4 [(gogoproto.nullable) = false];
|
|
repeated uint32 Field5 = 5 [(gogoproto.nullable) = false];
|
|
repeated uint64 Field6 = 6 [(gogoproto.nullable) = false];
|
|
repeated sint32 Field7 = 7 [(gogoproto.nullable) = false];
|
|
repeated sint64 Field8 = 8 [(gogoproto.nullable) = false];
|
|
repeated fixed32 Field9 = 9 [(gogoproto.nullable) = false];
|
|
repeated sfixed32 Field10 = 10 [(gogoproto.nullable) = false];
|
|
repeated fixed64 Field11 = 11 [(gogoproto.nullable) = false];
|
|
repeated sfixed64 Field12 = 12 [(gogoproto.nullable) = false];
|
|
repeated bool Field13 = 13 [(gogoproto.nullable) = false];
|
|
repeated string Field14 = 14 [(gogoproto.nullable) = false];
|
|
repeated bytes Field15 = 15 [(gogoproto.nullable) = false];
|
|
}
|
|
|
|
message NinRepNative {
|
|
repeated double Field1 = 1;
|
|
repeated float Field2 = 2;
|
|
repeated int32 Field3 = 3;
|
|
repeated int64 Field4 = 4;
|
|
repeated uint32 Field5 = 5;
|
|
repeated uint64 Field6 = 6;
|
|
repeated sint32 Field7 = 7;
|
|
repeated sint64 Field8 = 8;
|
|
repeated fixed32 Field9 = 9;
|
|
repeated sfixed32 Field10 = 10;
|
|
repeated fixed64 Field11 = 11;
|
|
repeated sfixed64 Field12 = 12;
|
|
repeated bool Field13 = 13;
|
|
repeated string Field14 = 14;
|
|
repeated bytes Field15 = 15;
|
|
}
|
|
|
|
message NidRepPackedNative {
|
|
repeated double Field1 = 1 [(gogoproto.nullable) = false, packed = true];
|
|
repeated float Field2 = 2 [(gogoproto.nullable) = false, packed = true];
|
|
repeated int32 Field3 = 3 [(gogoproto.nullable) = false, packed = true];
|
|
repeated int64 Field4 = 4 [(gogoproto.nullable) = false, packed = true];
|
|
repeated uint32 Field5 = 5 [(gogoproto.nullable) = false, packed = true];
|
|
repeated uint64 Field6 = 6 [(gogoproto.nullable) = false, packed = true];
|
|
repeated sint32 Field7 = 7 [(gogoproto.nullable) = false, packed = true];
|
|
repeated sint64 Field8 = 8 [(gogoproto.nullable) = false, packed = true];
|
|
repeated fixed32 Field9 = 9 [(gogoproto.nullable) = false, packed = true];
|
|
repeated sfixed32 Field10 = 10 [(gogoproto.nullable) = false, packed = true];
|
|
repeated fixed64 Field11 = 11 [(gogoproto.nullable) = false, packed = true];
|
|
repeated sfixed64 Field12 = 12 [(gogoproto.nullable) = false, packed = true];
|
|
repeated bool Field13 = 13 [(gogoproto.nullable) = false, packed = true];
|
|
}
|
|
|
|
message NinRepPackedNative {
|
|
repeated double Field1 = 1 [packed = true];
|
|
repeated float Field2 = 2 [packed = true];
|
|
repeated int32 Field3 = 3 [packed = true];
|
|
repeated int64 Field4 = 4 [packed = true];
|
|
repeated uint32 Field5 = 5 [packed = true];
|
|
repeated uint64 Field6 = 6 [packed = true];
|
|
repeated sint32 Field7 = 7 [packed = true];
|
|
repeated sint64 Field8 = 8 [packed = true];
|
|
repeated fixed32 Field9 = 9 [packed = true];
|
|
repeated sfixed32 Field10 = 10 [packed = true];
|
|
repeated fixed64 Field11 = 11 [packed = true];
|
|
repeated sfixed64 Field12 = 12 [packed = true];
|
|
repeated bool Field13 = 13 [packed = true];
|
|
}
|
|
|
|
message NidOptStruct {
|
|
optional double Field1 = 1 [(gogoproto.nullable) = false];
|
|
optional float Field2 = 2 [(gogoproto.nullable) = false];
|
|
optional NidOptNative Field3 = 3 [(gogoproto.nullable) = false];
|
|
optional NinOptNative Field4 = 4 [(gogoproto.nullable) = false];
|
|
optional uint64 Field6 = 6 [(gogoproto.nullable) = false];
|
|
optional sint32 Field7 = 7 [(gogoproto.nullable) = false];
|
|
optional NidOptNative Field8 = 8 [(gogoproto.nullable) = false];
|
|
optional bool Field13 = 13 [(gogoproto.nullable) = false];
|
|
optional string Field14 = 14 [(gogoproto.nullable) = false];
|
|
optional bytes Field15 = 15 [(gogoproto.nullable) = false];
|
|
}
|
|
|
|
message NinOptStruct {
|
|
optional double Field1 = 1;
|
|
optional float Field2 = 2;
|
|
optional NidOptNative Field3 = 3;
|
|
optional NinOptNative Field4 = 4;
|
|
optional uint64 Field6 = 6;
|
|
optional sint32 Field7 = 7;
|
|
optional NidOptNative Field8 = 8;
|
|
optional bool Field13 = 13;
|
|
optional string Field14 = 14;
|
|
optional bytes Field15 = 15;
|
|
}
|
|
|
|
message NidRepStruct {
|
|
repeated double Field1 = 1 [(gogoproto.nullable) = false];
|
|
repeated float Field2 = 2 [(gogoproto.nullable) = false];
|
|
repeated NidOptNative Field3 = 3 [(gogoproto.nullable) = false];
|
|
repeated NinOptNative Field4 = 4 [(gogoproto.nullable) = false];
|
|
repeated uint64 Field6 = 6 [(gogoproto.nullable) = false];
|
|
repeated sint32 Field7 = 7 [(gogoproto.nullable) = false];
|
|
repeated NidOptNative Field8 = 8 [(gogoproto.nullable) = false];
|
|
repeated bool Field13 = 13 [(gogoproto.nullable) = false];
|
|
repeated string Field14 = 14 [(gogoproto.nullable) = false];
|
|
repeated bytes Field15 = 15 [(gogoproto.nullable) = false];
|
|
}
|
|
|
|
message NinRepStruct {
|
|
repeated double Field1 = 1;
|
|
repeated float Field2 = 2;
|
|
repeated NidOptNative Field3 = 3;
|
|
repeated NinOptNative Field4 = 4;
|
|
repeated uint64 Field6 = 6;
|
|
repeated sint32 Field7 = 7;
|
|
repeated NidOptNative Field8 = 8;
|
|
repeated bool Field13 = 13;
|
|
repeated string Field14 = 14;
|
|
repeated bytes Field15 = 15;
|
|
}
|
|
|
|
message NidEmbeddedStruct {
|
|
optional NidOptNative Field1 = 1 [(gogoproto.embed) = true];
|
|
optional NidOptNative Field200 = 200 [(gogoproto.nullable) = false];
|
|
optional bool Field210 = 210 [(gogoproto.nullable) = false];
|
|
}
|
|
|
|
message NinEmbeddedStruct {
|
|
optional NidOptNative Field1 = 1 [(gogoproto.embed) = true];
|
|
optional NidOptNative Field200 = 200;
|
|
optional bool Field210 = 210;
|
|
}
|
|
|
|
message NidNestedStruct {
|
|
optional NidOptStruct Field1 = 1 [(gogoproto.nullable) = false];
|
|
repeated NidRepStruct Field2 = 2 [(gogoproto.nullable) = false];
|
|
}
|
|
|
|
message NinNestedStruct {
|
|
optional NinOptStruct Field1 = 1;
|
|
repeated NinRepStruct Field2 = 2;
|
|
}
|
|
|
|
message NidOptCustom {
|
|
optional bytes Id = 1 [(gogoproto.customtype) = "Uuid", (gogoproto.nullable) = false];
|
|
optional bytes Value = 2 [(gogoproto.customtype) = "github.com/gogo/protobuf/test/custom.Uint128", (gogoproto.nullable) = false];
|
|
}
|
|
|
|
message CustomDash {
|
|
optional bytes Value = 1 [(gogoproto.customtype) = "github.com/gogo/protobuf/test/custom-dash-type.Bytes"];
|
|
}
|
|
|
|
message NinOptCustom {
|
|
optional bytes Id = 1 [(gogoproto.customtype) = "Uuid"];
|
|
optional bytes Value = 2 [(gogoproto.customtype) = "github.com/gogo/protobuf/test/custom.Uint128"];
|
|
}
|
|
|
|
message NidRepCustom {
|
|
repeated bytes Id = 1 [(gogoproto.customtype) = "Uuid", (gogoproto.nullable) = false];
|
|
repeated bytes Value = 2 [(gogoproto.customtype) = "github.com/gogo/protobuf/test/custom.Uint128", (gogoproto.nullable) = false];
|
|
}
|
|
|
|
message NinRepCustom {
|
|
repeated bytes Id = 1 [(gogoproto.customtype) = "Uuid"];
|
|
repeated bytes Value = 2 [(gogoproto.customtype) = "github.com/gogo/protobuf/test/custom.Uint128"];
|
|
}
|
|
|
|
message NinOptNativeUnion {
|
|
option (gogoproto.onlyone) = true;
|
|
optional double Field1 = 1;
|
|
optional float Field2 = 2;
|
|
optional int32 Field3 = 3;
|
|
optional int64 Field4 = 4;
|
|
optional uint32 Field5 = 5;
|
|
optional uint64 Field6 = 6;
|
|
optional bool Field13 = 13;
|
|
optional string Field14 = 14;
|
|
optional bytes Field15 = 15;
|
|
}
|
|
|
|
message NinOptStructUnion {
|
|
option (gogoproto.onlyone) = true;
|
|
optional double Field1 = 1;
|
|
optional float Field2 = 2;
|
|
optional NidOptNative Field3 = 3;
|
|
optional NinOptNative Field4 = 4;
|
|
optional uint64 Field6 = 6;
|
|
optional sint32 Field7 = 7;
|
|
optional bool Field13 = 13;
|
|
optional string Field14 = 14;
|
|
optional bytes Field15 = 15;
|
|
}
|
|
|
|
message NinEmbeddedStructUnion {
|
|
option (gogoproto.onlyone) = true;
|
|
optional NidOptNative Field1 = 1 [(gogoproto.embed) = true];
|
|
optional NinOptNative Field200 = 200;
|
|
optional bool Field210 = 210;
|
|
}
|
|
|
|
message NinNestedStructUnion {
|
|
option (gogoproto.onlyone) = true;
|
|
optional NinOptNativeUnion Field1 = 1;
|
|
optional NinOptStructUnion Field2 = 2;
|
|
optional NinEmbeddedStructUnion Field3 = 3;
|
|
}
|
|
|
|
message Tree {
|
|
option (gogoproto.onlyone) = true;
|
|
optional OrBranch Or = 1;
|
|
optional AndBranch And = 2;
|
|
optional Leaf Leaf = 3;
|
|
}
|
|
|
|
message OrBranch {
|
|
optional Tree Left = 1 [(gogoproto.nullable) = false];
|
|
optional Tree Right = 2 [(gogoproto.nullable) = false];
|
|
}
|
|
|
|
message AndBranch {
|
|
optional Tree Left = 1 [(gogoproto.nullable) = false];
|
|
optional Tree Right = 2 [(gogoproto.nullable) = false];
|
|
}
|
|
|
|
message Leaf {
|
|
optional int64 Value = 1 [(gogoproto.nullable) = false];
|
|
optional string StrValue = 2 [(gogoproto.nullable) = false];
|
|
}
|
|
|
|
message DeepTree {
|
|
option (gogoproto.onlyone) = true;
|
|
optional ADeepBranch Down = 1;
|
|
optional AndDeepBranch And = 2;
|
|
optional DeepLeaf Leaf = 3;
|
|
}
|
|
|
|
message ADeepBranch {
|
|
optional DeepTree Down = 2 [(gogoproto.nullable) = false];
|
|
}
|
|
|
|
message AndDeepBranch {
|
|
optional DeepTree Left = 1 [(gogoproto.nullable) = false];
|
|
optional DeepTree Right = 2 [(gogoproto.nullable) = false];
|
|
}
|
|
|
|
message DeepLeaf {
|
|
optional Tree Tree = 1 [(gogoproto.nullable) = false];
|
|
}
|
|
|
|
message Nil {
|
|
|
|
}
|
|
|
|
enum TheTestEnum {
|
|
A = 0;
|
|
B = 1;
|
|
C = 2;
|
|
}
|
|
|
|
enum AnotherTestEnum {
|
|
option (gogoproto.goproto_enum_prefix) = false;
|
|
D = 10;
|
|
E = 11;
|
|
}
|
|
|
|
// YetAnotherTestEnum is used to test cross-package import of custom name
|
|
// fields and default resolution.
|
|
enum YetAnotherTestEnum {
|
|
option (gogoproto.goproto_enum_prefix) = false;
|
|
AA = 0;
|
|
BB = 1 [(gogoproto.enumvalue_customname) = "BetterYetBB"];
|
|
}
|
|
|
|
// YetAnotherTestEnum is used to test cross-package import of custom name
|
|
// fields and default resolution.
|
|
enum YetYetAnotherTestEnum {
|
|
option (gogoproto.goproto_enum_prefix) = true;
|
|
CC = 0;
|
|
DD = 1 [(gogoproto.enumvalue_customname) = "BetterYetDD"];
|
|
}
|
|
|
|
message NidOptEnum {
|
|
optional TheTestEnum Field1 = 1 [(gogoproto.nullable) = false];
|
|
}
|
|
|
|
message NinOptEnum {
|
|
optional TheTestEnum Field1 = 1;
|
|
optional YetAnotherTestEnum Field2 = 2;
|
|
optional YetYetAnotherTestEnum Field3 = 3;
|
|
}
|
|
|
|
message NidRepEnum {
|
|
repeated TheTestEnum Field1 = 1 [(gogoproto.nullable) = false];
|
|
repeated YetAnotherTestEnum Field2 = 2 [(gogoproto.nullable) = false];
|
|
repeated YetYetAnotherTestEnum Field3 = 3 [(gogoproto.nullable) = false];
|
|
}
|
|
|
|
message NinRepEnum {
|
|
repeated TheTestEnum Field1 = 1;
|
|
repeated YetAnotherTestEnum Field2 = 2;
|
|
repeated YetYetAnotherTestEnum Field3 = 3;
|
|
}
|
|
|
|
message NinOptEnumDefault {
|
|
option (gogoproto.goproto_getters) = true;
|
|
option (gogoproto.face) = false;
|
|
optional TheTestEnum Field1 = 1 [default=C];
|
|
optional YetAnotherTestEnum Field2 = 2 [default=BB];
|
|
optional YetYetAnotherTestEnum Field3 = 3 [default=CC];
|
|
}
|
|
|
|
message AnotherNinOptEnum {
|
|
optional AnotherTestEnum Field1 = 1;
|
|
optional YetAnotherTestEnum Field2 = 2;
|
|
optional YetYetAnotherTestEnum Field3 = 3;
|
|
}
|
|
|
|
message AnotherNinOptEnumDefault {
|
|
option (gogoproto.goproto_getters) = true;
|
|
option (gogoproto.face) = false;
|
|
optional AnotherTestEnum Field1 = 1 [default=E];
|
|
optional YetAnotherTestEnum Field2 = 2 [default=BB];
|
|
optional YetYetAnotherTestEnum Field3 = 3 [default=CC];
|
|
}
|
|
|
|
|
|
message Timer {
|
|
optional sfixed64 Time1 = 1 [(gogoproto.nullable) = false];
|
|
optional sfixed64 Time2 = 2 [(gogoproto.nullable) = false];
|
|
optional bytes Data = 3 [(gogoproto.nullable) = false];
|
|
}
|
|
|
|
message MyExtendable {
|
|
option (gogoproto.face) = false;
|
|
optional int64 Field1 = 1;
|
|
extensions 100 to 199;
|
|
}
|
|
|
|
extend MyExtendable {
|
|
optional double FieldA = 100;
|
|
optional NinOptNative FieldB = 101;
|
|
optional NinEmbeddedStruct FieldC = 102;
|
|
repeated int64 FieldD = 104;
|
|
repeated NinOptNative FieldE = 105;
|
|
}
|
|
|
|
message OtherExtenable {
|
|
option (gogoproto.face) = false;
|
|
optional int64 Field2 = 2;
|
|
extensions 14 to 16;
|
|
optional int64 Field13 = 13;
|
|
extensions 10 to 12;
|
|
optional MyExtendable M = 1;
|
|
}
|
|
|
|
message NestedDefinition {
|
|
optional int64 Field1 = 1;
|
|
message NestedMessage {
|
|
optional fixed64 NestedField1 = 1;
|
|
optional NestedNestedMsg NNM = 2;
|
|
message NestedNestedMsg {
|
|
optional string NestedNestedField1 = 10;
|
|
}
|
|
}
|
|
enum NestedEnum {
|
|
TYPE_NESTED = 1;
|
|
}
|
|
optional NestedEnum EnumField = 2;
|
|
optional NestedMessage.NestedNestedMsg NNM = 3;
|
|
optional NestedMessage NM = 4;
|
|
}
|
|
|
|
message NestedScope {
|
|
optional NestedDefinition.NestedMessage.NestedNestedMsg A = 1;
|
|
optional NestedDefinition.NestedEnum B = 2;
|
|
optional NestedDefinition.NestedMessage C = 3;
|
|
}
|
|
|
|
message NinOptNativeDefault {
|
|
option (gogoproto.goproto_getters) = true;
|
|
option (gogoproto.face) = false;
|
|
optional double Field1 = 1 [default = 1234.1234];
|
|
optional float Field2 = 2 [default = 1234.1234];
|
|
optional int32 Field3 = 3 [default = 1234];
|
|
optional int64 Field4 = 4 [default = 1234];
|
|
optional uint32 Field5 = 5 [default = 1234];
|
|
optional uint64 Field6 = 6 [default = 1234];
|
|
optional sint32 Field7 = 7 [default = 1234];
|
|
optional sint64 Field8 = 8 [default = 1234];
|
|
optional fixed32 Field9 = 9 [default = 1234];
|
|
optional sfixed32 Field10 = 10 [default = 1234];
|
|
optional fixed64 Field11 = 11 [default = 1234];
|
|
optional sfixed64 Field12 = 12 [default = 1234];
|
|
optional bool Field13 = 13 [default = true];
|
|
optional string Field14 = 14 [default = "1234"];
|
|
optional bytes Field15 = 15;
|
|
}
|
|
|
|
message CustomContainer {
|
|
optional NidOptCustom CustomStruct = 1 [(gogoproto.nullable) = false];
|
|
}
|
|
|
|
message CustomNameNidOptNative {
|
|
optional double Field1 = 1 [(gogoproto.nullable) = false, (gogoproto.customname) = "FieldA"];
|
|
optional float Field2 = 2 [(gogoproto.nullable) = false, (gogoproto.customname) = "FieldB"];
|
|
optional int32 Field3 = 3 [(gogoproto.nullable) = false, (gogoproto.customname) = "FieldC"];
|
|
optional int64 Field4 = 4 [(gogoproto.nullable) = false, (gogoproto.customname) = "FieldD"];
|
|
optional uint32 Field5 = 5 [(gogoproto.nullable) = false, (gogoproto.customname) = "FieldE"];
|
|
optional uint64 Field6 = 6 [(gogoproto.nullable) = false, (gogoproto.customname) = "FieldF"];
|
|
optional sint32 Field7 = 7 [(gogoproto.nullable) = false, (gogoproto.customname) = "FieldG"];
|
|
optional sint64 Field8 = 8 [(gogoproto.nullable) = false, (gogoproto.customname) = "FieldH"];
|
|
optional fixed32 Field9 = 9 [(gogoproto.nullable) = false, (gogoproto.customname) = "FieldI"];
|
|
optional sfixed32 Field10 = 10 [(gogoproto.nullable) = false, (gogoproto.customname) = "FieldJ"];
|
|
optional fixed64 Field11 = 11 [(gogoproto.nullable) = false, (gogoproto.customname) = "FieldK"];
|
|
optional sfixed64 Field12 = 12 [(gogoproto.nullable) = false, (gogoproto.customname) = "FieldL"];
|
|
optional bool Field13 = 13 [(gogoproto.nullable) = false, (gogoproto.customname) = "FieldM"];
|
|
optional string Field14 = 14 [(gogoproto.nullable) = false, (gogoproto.customname) = "FieldN"];
|
|
optional bytes Field15 = 15 [(gogoproto.nullable) = false, (gogoproto.customname) = "FieldO"];
|
|
}
|
|
|
|
message CustomNameNinOptNative {
|
|
optional double Field1 = 1 [(gogoproto.customname) = "FieldA"];
|
|
optional float Field2 = 2 [(gogoproto.customname) = "FieldB"];
|
|
optional int32 Field3 = 3 [(gogoproto.customname) = "FieldC"];
|
|
optional int64 Field4 = 4 [(gogoproto.customname) = "FieldD"];
|
|
optional uint32 Field5 = 5 [(gogoproto.customname) = "FieldE"];
|
|
optional uint64 Field6 = 6 [(gogoproto.customname) = "FieldF"];
|
|
optional sint32 Field7 = 7 [(gogoproto.customname) = "FieldG"];
|
|
optional sint64 Field8 = 8 [(gogoproto.customname) = "FieldH"];
|
|
optional fixed32 Field9 = 9 [(gogoproto.customname) = "FieldI"];
|
|
optional sfixed32 Field10 = 10 [(gogoproto.customname) = "FieldJ"];
|
|
optional fixed64 Field11 = 11 [(gogoproto.customname) = "FieldK"];
|
|
optional sfixed64 Field12 = 12 [(gogoproto.customname) = "FielL"];
|
|
optional bool Field13 = 13 [(gogoproto.customname) = "FieldM"];
|
|
optional string Field14 = 14 [(gogoproto.customname) = "FieldN"];
|
|
optional bytes Field15 = 15 [(gogoproto.customname) = "FieldO"];
|
|
}
|
|
|
|
message CustomNameNinRepNative {
|
|
repeated double Field1 = 1 [(gogoproto.customname) = "FieldA"];
|
|
repeated float Field2 = 2 [(gogoproto.customname) = "FieldB"];
|
|
repeated int32 Field3 = 3 [(gogoproto.customname) = "FieldC"];
|
|
repeated int64 Field4 = 4 [(gogoproto.customname) = "FieldD"];
|
|
repeated uint32 Field5 = 5 [(gogoproto.customname) = "FieldE"];
|
|
repeated uint64 Field6 = 6 [(gogoproto.customname) = "FieldF"];
|
|
repeated sint32 Field7 = 7 [(gogoproto.customname) = "FieldG"];
|
|
repeated sint64 Field8 = 8 [(gogoproto.customname) = "FieldH"];
|
|
repeated fixed32 Field9 = 9 [(gogoproto.customname) = "FieldI"];
|
|
repeated sfixed32 Field10 = 10 [(gogoproto.customname) = "FieldJ"];
|
|
repeated fixed64 Field11 = 11 [(gogoproto.customname) = "FieldK"];
|
|
repeated sfixed64 Field12 = 12 [(gogoproto.customname) = "FieldL"];
|
|
repeated bool Field13 = 13 [(gogoproto.customname) = "FieldM"];
|
|
repeated string Field14 = 14 [(gogoproto.customname) = "FieldN"];
|
|
repeated bytes Field15 = 15 [(gogoproto.customname) = "FieldO"];
|
|
}
|
|
|
|
message CustomNameNinStruct {
|
|
optional double Field1 = 1 [(gogoproto.customname) = "FieldA"];
|
|
optional float Field2 = 2 [(gogoproto.customname) = "FieldB"];
|
|
optional NidOptNative Field3 = 3 [(gogoproto.customname) = "FieldC"];
|
|
repeated NinOptNative Field4 = 4 [(gogoproto.customname) = "FieldD"];
|
|
optional uint64 Field6 = 6 [(gogoproto.customname) = "FieldE"];
|
|
optional sint32 Field7 = 7 [(gogoproto.customname) = "FieldF"];
|
|
optional NidOptNative Field8 = 8 [(gogoproto.customname) = "FieldG"];
|
|
optional bool Field13 = 13 [(gogoproto.customname) = "FieldH"];
|
|
optional string Field14 = 14 [(gogoproto.customname) = "FieldI"];
|
|
optional bytes Field15 = 15 [(gogoproto.customname) = "FieldJ"];
|
|
}
|
|
|
|
message CustomNameCustomType {
|
|
optional bytes Id = 1 [(gogoproto.customname) = "FieldA", (gogoproto.customtype) = "Uuid"];
|
|
optional bytes Value = 2 [(gogoproto.customname) = "FieldB", (gogoproto.customtype) = "github.com/gogo/protobuf/test/custom.Uint128"];
|
|
repeated bytes Ids = 3 [(gogoproto.customname) = "FieldC", (gogoproto.customtype) = "Uuid"];
|
|
repeated bytes Values = 4 [(gogoproto.customname) = "FieldD", (gogoproto.customtype) = "github.com/gogo/protobuf/test/custom.Uint128"];
|
|
}
|
|
|
|
message CustomNameNinEmbeddedStructUnion {
|
|
option (gogoproto.onlyone) = true;
|
|
optional NidOptNative Field1 = 1 [(gogoproto.embed) = true];
|
|
optional NinOptNative Field200 = 200 [(gogoproto.customname) = "FieldA"];
|
|
optional bool Field210 = 210 [(gogoproto.customname) = "FieldB"];
|
|
}
|
|
|
|
message CustomNameEnum {
|
|
optional TheTestEnum Field1 = 1 [(gogoproto.customname) = "FieldA"];
|
|
repeated TheTestEnum Field2 = 2 [(gogoproto.customname) = "FieldB"];
|
|
}
|
|
|
|
message NoExtensionsMap {
|
|
option (gogoproto.face) = false;
|
|
option (gogoproto.goproto_extensions_map) = false;
|
|
optional int64 Field1 = 1;
|
|
extensions 100 to 199;
|
|
}
|
|
|
|
extend NoExtensionsMap {
|
|
optional double FieldA1 = 100;
|
|
optional NinOptNative FieldB1 = 101;
|
|
optional NinEmbeddedStruct FieldC1 = 102;
|
|
}
|
|
|
|
message Unrecognized {
|
|
option (gogoproto.goproto_unrecognized) = false;
|
|
optional string Field1 = 1;
|
|
}
|
|
|
|
message UnrecognizedWithInner {
|
|
message Inner {
|
|
option (gogoproto.goproto_unrecognized) = false;
|
|
optional uint32 Field1 = 1;
|
|
}
|
|
|
|
repeated Inner embedded = 1;
|
|
optional string Field2 = 2;
|
|
}
|
|
|
|
message UnrecognizedWithEmbed {
|
|
message Embedded {
|
|
option (gogoproto.goproto_unrecognized) = false;
|
|
optional uint32 Field1 = 1;
|
|
}
|
|
|
|
optional Embedded embedded = 1 [(gogoproto.embed) = true, (gogoproto.nullable) = false];
|
|
optional string Field2 = 2;
|
|
}
|
|
|
|
message Node {
|
|
optional string Label = 1;
|
|
repeated Node Children = 2;
|
|
}
|
|
|
|
message NonByteCustomType {
|
|
optional ProtoType Field1 = 1 [(gogoproto.customtype) = "T"];
|
|
}
|
|
|
|
message NidOptNonByteCustomType {
|
|
optional ProtoType Field1 = 1 [(gogoproto.customtype) = "T", (gogoproto.nullable) = false];
|
|
}
|
|
|
|
message NinOptNonByteCustomType {
|
|
optional ProtoType Field1 = 1 [(gogoproto.customtype) = "T"];
|
|
}
|
|
|
|
message NidRepNonByteCustomType {
|
|
repeated ProtoType Field1 = 1 [(gogoproto.customtype) = "T", (gogoproto.nullable) = false];
|
|
}
|
|
|
|
message NinRepNonByteCustomType {
|
|
repeated ProtoType Field1 = 1 [(gogoproto.customtype) = "T"];
|
|
}
|
|
|
|
message ProtoType {
|
|
optional string Field2 = 1;
|
|
}
|