diff --git a/e2e/go.mod b/e2e/go.mod index 4007a15ff..a9f24a9f8 100644 --- a/e2e/go.mod +++ b/e2e/go.mod @@ -6,13 +6,13 @@ require ( github.com/go-redis/redis/v8 v8.11.5 github.com/golang/protobuf v1.5.3 github.com/google/uuid v1.3.0 - github.com/stretchr/testify v1.8.1 + github.com/stretchr/testify v1.8.2 github.com/testcontainers/testcontainers-go v0.11.1 github.com/topfreegames/maestro v0.0.0-00010101000000-000000000000 go.uber.org/zap v1.18.1 google.golang.org/protobuf v1.30.0 - k8s.io/api v0.22.1 - k8s.io/apimachinery v0.22.1 + k8s.io/api v0.23.0 + k8s.io/apimachinery v0.23.0 k8s.io/apiserver v0.22.1 k8s.io/client-go v0.23.0 ) @@ -44,7 +44,6 @@ require ( github.com/google/go-cmp v0.5.9 // indirect github.com/google/gofuzz v1.2.0 // indirect github.com/googleapis/gnostic v0.5.5 // indirect - github.com/gorilla/mux v1.8.0 // indirect github.com/grpc-ecosystem/grpc-gateway/v2 v2.11.3 // indirect github.com/imdario/mergo v0.3.11 // indirect github.com/json-iterator/go v1.1.12 // indirect @@ -85,8 +84,10 @@ require ( gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/klog/v2 v2.9.0 // indirect - k8s.io/utils v0.0.0-20210707171843-4b05e18ac7d9 // indirect + k8s.io/klog/v2 v2.30.0 // indirect + k8s.io/kube-openapi v0.0.0-20211115234752-e816edb12b65 // indirect + k8s.io/utils v0.0.0-20210930125809-cb0fa318a74b // indirect + sigs.k8s.io/json v0.0.0-20211020170558-c049b76a60c6 // indirect sigs.k8s.io/structured-merge-diff/v4 v4.1.2 // indirect sigs.k8s.io/yaml v1.2.0 // indirect ) diff --git a/e2e/go.sum b/e2e/go.sum index 4b35ab07b..5a6309651 100644 --- a/e2e/go.sum +++ b/e2e/go.sum @@ -10,18 +10,33 @@ cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6T cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= +cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= +cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= +cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= +cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= +cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= +cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= +cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg= +cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8= +cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= +cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= +cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= +cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= +cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= +cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= +cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/Azure/azure-sdk-for-go v16.2.1+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= @@ -121,6 +136,7 @@ github.com/cilium/ebpf v0.0.0-20200702112145-1c8d4c9ef775/go.mod h1:7cR51M8ViRLI github.com/cilium/ebpf v0.2.0/go.mod h1:To2CFviqOWL/M0gIMsvSMlqe7em/l1ALkX1PyjrX2Qs= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= github.com/cockroachdb/datadriven v0.0.0-20200714090401-bf6692d28da5/go.mod h1:h6jFvWxBdQXxjopDMZyH2UVceIRfR84bdzbkoKrsWNo= @@ -252,6 +268,7 @@ github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= +github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= @@ -267,6 +284,7 @@ github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWo github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa/go.mod h1:KnogPXtdwXqoenmZCw6S+25EAm2MkxbG0deNDu4cbSA= github.com/garyburd/redigo v0.0.0-20150301180006-535138d7bcd7/go.mod h1:NR3MbYisc3/PwhQ00EMzDiPmrwpPxAn5GI05/YaO1SY= +github.com/getkin/kin-openapi v0.76.0/go.mod h1:660oXbgy5JFMKreazJaQTw7o+X00qeSyhcnluiMv+Xg= github.com/getsentry/raven-go v0.2.0/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ= github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= @@ -283,6 +301,9 @@ github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= github.com/go-logr/logr v0.4.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= +github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0= +github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg= github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= @@ -337,6 +358,9 @@ github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfb github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= +github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8= github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -364,6 +388,7 @@ github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5a github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= @@ -377,11 +402,19 @@ github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/ github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= +github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= +github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= @@ -436,6 +469,7 @@ github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2p github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= +github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/imdario/mergo v0.3.10/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= @@ -523,6 +557,8 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= +github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/morikuni/aec v0.0.0-20170113033406-39771216ff4c/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= @@ -688,8 +724,9 @@ github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8= +github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/syndtr/gocapability v0.0.0-20170704070218-db04d3cc01c8/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= @@ -716,7 +753,9 @@ github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2 github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= github.com/xeipuuv/gojsonschema v0.0.0-20180618132009-1d523034197f/go.mod h1:5yf86TLmAcydyeJq5YvxkGPE2fm/u4myDekKRoLuqhs= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= +github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.0/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= @@ -740,6 +779,9 @@ go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= +go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= go.opentelemetry.io/contrib v0.20.0/go.mod h1:G/EtFaa6qaN7+LxqfIAT3GiZa7Wv5DTBUzl5H4LY0Kc= @@ -783,6 +825,7 @@ golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.0.0-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.9.0 h1:LF6fAI+IutBocDJ2OT0Q1g8plpYljMZ4+lty+dsqw3g= golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -807,6 +850,7 @@ golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHl golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/lint v0.0.0-20210508222113-6edffad5e616 h1:VLliZ0d+/avPrXXH+OakdXhpJuEoBZuwh1m2j7U6Iug= golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= @@ -817,6 +861,8 @@ golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzB golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -837,6 +883,7 @@ golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190619014844-b5b0513f8c1b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -848,18 +895,27 @@ golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20210520170846-37e1c6afe023/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20210825183410-e898025ed96a/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -867,6 +923,13 @@ golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4Iltr golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.6.0 h1:Lh8GPgSKBfWSwFvtuWOfeI3aAAnbXTSutYxJiOJFgIw= golang.org/x/oauth2 v0.6.0/go.mod h1:ycmewcwgD4Rpr3eZJLSB4Kyyljb3qDh40vJ8STE5HKw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -875,6 +938,7 @@ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -926,13 +990,20 @@ golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200728102440-3e129f6d46b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200817155316-9781c653f443/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200831180312-196b9ba8737a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200909081042-eff7692f9009/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200916030750-2334cc1a136f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200922070232-aee5d888a860/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -942,7 +1013,13 @@ golang.org/x/sys v0.0.0-20201112073958-5cba982894dd/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201202213521-69691e467435/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210324051608-47abb6519492/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -960,6 +1037,7 @@ golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210615171337-6886f2dfbf5b/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.8.0 h1:n5xxQn2i3PC0yLAbjTpNT85q/Kgzcr2gIoX9OrJUols= golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -970,6 +1048,7 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -1016,10 +1095,28 @@ golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapK golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= +golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= +golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= +golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200505023115-26f46d2f7ef8/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= +golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.7/go.mod h1:LGqMHiF4EqQNHR1JncWGqT5BVaXmza+X+BDGol+dOxo= golang.org/x/tools v0.7.0 h1:W4OVu8VVOaIO0yzWMNdepAulS7YfoS3Zabrm8DOXXU4= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1036,12 +1133,24 @@ google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsb google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= +google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= +google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= +google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= +google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= +google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= +google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= +google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU= +google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/cloud v0.0.0-20151119220103-975617b05ea8/go.mod h1:0H1ncTHf11KCFhTc/+EFRbzSCOZx+VUbRMk55Yv5MYk= @@ -1064,12 +1173,32 @@ google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvx google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= +google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= +google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201019141844-1ed22bb0c154/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201110150050-8816d57aaa9a/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4 h1:DdoeryqhaXp1LtT/emMP1BRJPHHKFi5akj/nbx/zNTA= google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4/go.mod h1:NWraEVixdDnqcqQ30jipen1STv2r/n24Wb7twVTGR4s= @@ -1085,11 +1214,17 @@ google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQ google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= +google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= +google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= google.golang.org/grpc v1.55.0 h1:3Oj82/tFSCeUrRTg/5E/7d/W5A1tj6Ky1ABAuZuv5ag= @@ -1106,6 +1241,7 @@ google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGj google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U= @@ -1157,13 +1293,12 @@ honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= k8s.io/api v0.20.1/go.mod h1:KqwcCVogGxQY3nBlRpwt+wpAMF/KjaCc7RpywacvqUo= -k8s.io/api v0.22.1 h1:ISu3tD/jRhYfSW8jI/Q1e+lRxkR7w9UwQEZ7FgslrwY= k8s.io/api v0.22.1/go.mod h1:bh13rkTp3F1XEaLGykbyRD2QaTTzPm0e/BMd8ptFONY= k8s.io/api v0.23.0 h1:WrL1gb73VSC8obi8cuYETJGXEoFNEh3LU0Pt+Sokgro= k8s.io/api v0.23.0/go.mod h1:8wmDdLBHBNxtOIytwLstXt5E9PddnZb0GaMcqsvDBpg= k8s.io/apimachinery v0.20.1/go.mod h1:WlLqWAHZGg07AeltaI0MV5uk1Omp8xaN0JGLY6gkRpU= -k8s.io/apimachinery v0.22.1 h1:DTARnyzmdHMz7bFWFDDm22AM4pLWTQECMpRTFu2d2OM= k8s.io/apimachinery v0.22.1/go.mod h1:O3oNtNadZdeOMxHFVxOreoznohCpy0z6mocxbZr7oJ0= k8s.io/apimachinery v0.23.0 h1:mIfWRMjBuMdolAWJ3Fd+aPTMv3X9z+waiARMpvvb0HQ= k8s.io/apimachinery v0.23.0/go.mod h1:fFCTTBKvKcwTPFzjlcxp91uPFZr+JA0FubU4fLzzFYc= @@ -1171,7 +1306,6 @@ k8s.io/apiserver v0.20.1/go.mod h1:ro5QHeQkgMS7ZGpvf4tSMx6bBOgPfE+f52KwvXfScaU= k8s.io/apiserver v0.22.1 h1:Ul9Iv8OMB2s45h2tl5XWPpAZo1VPIJ/6N+MESeed7L8= k8s.io/apiserver v0.22.1/go.mod h1:2mcM6dzSt+XndzVQJX21Gx0/Klo7Aen7i0Ai6tIa400= k8s.io/client-go v0.20.1/go.mod h1:/zcHdt1TeWSd5HoUe6elJmHSQ6uLLgp4bIJHVEuy+/Y= -k8s.io/client-go v0.22.1 h1:jW0ZSHi8wW260FvcXHkIa0NLxFBQszTlhiAVsU5mopw= k8s.io/client-go v0.22.1/go.mod h1:BquC5A4UOo4qVDUtoc04/+Nxp1MeHcVc1HJm1KmG8kk= k8s.io/client-go v0.23.0 h1:vcsOqyPq7XV3QmQRCBH/t9BICJM9Q1M18qahjv+rebY= k8s.io/client-go v0.23.0/go.mod h1:hrDnpnK1mSr65lHHcUuIZIXDgEbzc7/683c6hyG4jTA= @@ -1184,7 +1318,6 @@ k8s.io/gengo v0.0.0-20210813121822-485abfe95c7c/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAE k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= k8s.io/klog/v2 v2.4.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= -k8s.io/klog/v2 v2.9.0 h1:D7HV+n1V57XeZ0m6tdRkfknthUaM06VFbWldOFh8kzM= k8s.io/klog/v2 v2.9.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec= k8s.io/klog/v2 v2.30.0 h1:bUO6drIvCIsvZ/XFgfxoGFQU/a4Qkh0iAlvUR7vlHJw= k8s.io/klog/v2 v2.30.0/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= @@ -1195,6 +1328,9 @@ k8s.io/kube-openapi v0.0.0-20211115234752-e816edb12b65/go.mod h1:sX9MT8g7NVZM5lV k8s.io/kubernetes v1.13.0/go.mod h1:ocZa8+6APFNC2tX1DZASIbocyYT5jHzqFVsY5aoB7Jk= k8s.io/utils v0.0.0-20201110183641-67b214c5f920/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= k8s.io/utils v0.0.0-20210707171843-4b05e18ac7d9/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= +k8s.io/utils v0.0.0-20210802155522-efc7438f0176/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= +k8s.io/utils v0.0.0-20210930125809-cb0fa318a74b h1:wxEMGetGMur3J1xuGLQY7GEQYg9bZxKn3tKo5k/eYcs= +k8s.io/utils v0.0.0-20210930125809-cb0fa318a74b/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= diff --git a/e2e/suites/create_new_scheduler_version_test.go b/e2e/suites/create_new_scheduler_version_test.go index b1d248cf1..6639f37c2 100644 --- a/e2e/suites/create_new_scheduler_version_test.go +++ b/e2e/suites/create_new_scheduler_version_test.go @@ -529,6 +529,8 @@ func createMinorVersionAndAssertNoPodsReplace(t *testing.T, kubeClient kubernete }, }, }, + Annotations: scheduler.Annotations, + Labels: scheduler.Labels, } updateResponse := &maestroApiV1.NewSchedulerVersionResponse{} @@ -557,8 +559,10 @@ func createMinorVersionAndAssertNoPodsReplace(t *testing.T, kubeClient kubernete for _, pod := range podsAfterUpdate.Items { podsNameAfterUpdate = append(podsNameAfterUpdate, pod.Name) } - require.ElementsMatch(t, podsNameAfterUpdate, podsNameBeforeUpdate) + require.Contains(t, getSchedulerResponse.Scheduler.Annotations, updateRequest.Annotations) + require.Contains(t, getSchedulerResponse.Scheduler.Labels, updateRequest.Labels) + require.Equal(t, expectedNewVersion, getSchedulerResponse.Scheduler.Spec.Version) } diff --git a/e2e/suites/create_scheduler_test.go b/e2e/suites/create_scheduler_test.go index a4add6358..3d81a04cd 100644 --- a/e2e/suites/create_scheduler_test.go +++ b/e2e/suites/create_scheduler_test.go @@ -106,6 +106,12 @@ func TestCreateScheduler(t *testing.T) { Start: 40000, End: 60000, }, + Annotations: map[string]string{ + "annotation1": "value1", + }, + Labels: map[string]string{ + "label1": "value1", + }, } createResponse := &maestrov1.CreateSchedulerResponse{} diff --git a/e2e/suites/switch_active_version_test.go b/e2e/suites/switch_active_version_test.go index af0e9aa0c..4b591ed2f 100644 --- a/e2e/suites/switch_active_version_test.go +++ b/e2e/suites/switch_active_version_test.go @@ -28,8 +28,6 @@ import ( "testing" "time" - "github.com/golang/protobuf/ptypes/duration" - _struct "github.com/golang/protobuf/ptypes/struct" "google.golang.org/protobuf/types/known/durationpb" "google.golang.org/protobuf/types/known/structpb" diff --git a/internal/adapters/runtime/kubernetes/game_room_convert.go b/internal/adapters/runtime/kubernetes/game_room_convert.go index 52fdf9e9d..dfa4c9793 100644 --- a/internal/adapters/runtime/kubernetes/game_room_convert.go +++ b/internal/adapters/runtime/kubernetes/game_room_convert.go @@ -69,17 +69,18 @@ var invalidPodWaitingStates = []string{ func convertGameRoomSpec(scheduler entities.Scheduler, gameRoomName string, gameRoomSpec game_room.Spec) (*v1.Pod, error) { defaultAnnotations := map[string]string{safeToEvictAnnotation: safeToEvictValue} + defaultLabels := map[string]string{ + maestroLabelKey: maestroLabelValue, + schedulerLabelKey: scheduler.Name, + versionLabelKey: gameRoomSpec.Version, + } pod := &v1.Pod{ ObjectMeta: metav1.ObjectMeta{ - Name: gameRoomName, - Namespace: scheduler.Name, - Labels: map[string]string{ - maestroLabelKey: maestroLabelValue, - schedulerLabelKey: scheduler.Name, - versionLabelKey: gameRoomSpec.Version, - }, - Annotations: mergeAnnotations(defaultAnnotations, scheduler.Annotations), + Name: gameRoomName, + Namespace: scheduler.Name, + Labels: mergeMaps(defaultLabels, scheduler.Labels), + Annotations: mergeMaps(defaultAnnotations, scheduler.Annotations), }, Spec: v1.PodSpec{ TerminationGracePeriodSeconds: convertTerminationGracePeriod(gameRoomSpec), @@ -379,7 +380,7 @@ func convertPod(pod *v1.Pod, nodeAddress string) (*game_room.Instance, error) { }, nil } -func mergeAnnotations(target map[string]string, source map[string]string) map[string]string { +func mergeMaps(target map[string]string, source map[string]string) map[string]string { if target == nil { return source } diff --git a/internal/adapters/runtime/kubernetes/game_room_convert_test.go b/internal/adapters/runtime/kubernetes/game_room_convert_test.go index ab83185f4..6cfaaab4c 100644 --- a/internal/adapters/runtime/kubernetes/game_room_convert_test.go +++ b/internal/adapters/runtime/kubernetes/game_room_convert_test.go @@ -372,7 +372,7 @@ func TestConvertContainer(t *testing.T) { func TestConvertGameSpec(t *testing.T) { cases := map[string]struct { - schedulerID string + scheduler entities.Scheduler roomName string annotations map[string]string gameSpec game_room.Spec @@ -380,8 +380,10 @@ func TestConvertGameSpec(t *testing.T) { withError bool }{ "without containers": { - schedulerID: "sample", - roomName: "roomName", + scheduler: entities.Scheduler{ + Name: "sample", + }, + roomName: "roomName", gameSpec: game_room.Spec{ Version: "version", }, @@ -401,8 +403,10 @@ func TestConvertGameSpec(t *testing.T) { }, }, "with containers": { - schedulerID: "sample", - roomName: "roomName", + scheduler: entities.Scheduler{ + Name: "sample", + }, + roomName: "roomName", gameSpec: game_room.Spec{ Version: "version", Containers: []game_room.Container{ @@ -432,8 +436,10 @@ func TestConvertGameSpec(t *testing.T) { }, }, "with toleration": { - schedulerID: "sample", - roomName: "roomName", + scheduler: entities.Scheduler{ + Name: "sample", + }, + roomName: "roomName", gameSpec: game_room.Spec{ Version: "version", Toleration: "some-toleration", @@ -459,8 +465,10 @@ func TestConvertGameSpec(t *testing.T) { }, }, "with affinity": { - schedulerID: "sample", - roomName: "roomName", + scheduler: entities.Scheduler{ + Name: "sample", + }, + roomName: "roomName", gameSpec: game_room.Spec{ Version: "version", Affinity: "sample-affinity", @@ -484,8 +492,13 @@ func TestConvertGameSpec(t *testing.T) { }, }, "with annotations": { - schedulerID: "sample", - roomName: "roomName", + scheduler: entities.Scheduler{ + Name: "sample", + Annotations: map[string]string{ + "imageregistry": "https://hub.docker.com/", + }, + }, + roomName: "roomName", gameSpec: game_room.Spec{ Version: "version", Affinity: "sample-affinity", @@ -509,9 +522,42 @@ func TestConvertGameSpec(t *testing.T) { }, }, }, + "with labels": { + scheduler: entities.Scheduler{ + Name: "sample", + Labels: map[string]string{ + "my-label": "my-label-value", + }, + }, + roomName: "roomName", + gameSpec: game_room.Spec{ + Version: "version", + Affinity: "sample-affinity", + }, + expectedPod: v1.Pod{ + ObjectMeta: metav1.ObjectMeta{ + Name: "roomName", + Namespace: "sample", + Labels: map[string]string{ + maestroLabelKey: maestroLabelValue, + schedulerLabelKey: "sample", + versionLabelKey: "version", + "my-label": "my-label-value", + }, + Annotations: map[string]string{ + safeToEvictAnnotation: safeToEvictValue, + }, + }, + Spec: v1.PodSpec{ + Affinity: &v1.Affinity{}, + }, + }, + }, "with termination grace period": { - schedulerID: "sample", - roomName: "roomName", + scheduler: entities.Scheduler{ + Name: "sample", + }, + roomName: "roomName", gameSpec: game_room.Spec{ Version: "version", TerminationGracePeriod: 10 * time.Second, @@ -539,11 +585,11 @@ func TestConvertGameSpec(t *testing.T) { for name, test := range cases { t.Run(name, func(t *testing.T) { - scheduler := entities.Scheduler{ - Name: test.schedulerID, - Annotations: test.expectedPod.ObjectMeta.Annotations, - } - res, err := convertGameRoomSpec(scheduler, test.roomName, test.gameSpec) + //scheduler := entities.Scheduler{ + // Name: test.scheduler, + // Annotations: test.expectedPod.ObjectMeta.Annotations, + //} + res, err := convertGameRoomSpec(test.scheduler, test.roomName, test.gameSpec) if test.withError { require.Error(t, err) return @@ -554,6 +600,7 @@ func TestConvertGameSpec(t *testing.T) { require.Equal(t, test.expectedPod.ObjectMeta.Name, res.ObjectMeta.Name) require.Equal(t, test.expectedPod.ObjectMeta.Namespace, res.ObjectMeta.Namespace) require.Equal(t, test.expectedPod.ObjectMeta.Annotations, res.ObjectMeta.Annotations) + require.Equal(t, test.expectedPod.ObjectMeta.Labels, res.ObjectMeta.Labels) require.Equal(t, len(test.expectedPod.Spec.Containers), len(res.Spec.Containers)) require.Equal(t, len(test.expectedPod.Spec.Tolerations), len(res.Spec.Tolerations)) diff --git a/internal/adapters/storage/postgres/scheduler/db_scheduler.go b/internal/adapters/storage/postgres/scheduler/db_scheduler.go index cd235fa66..f781326b0 100644 --- a/internal/adapters/storage/postgres/scheduler/db_scheduler.go +++ b/internal/adapters/storage/postgres/scheduler/db_scheduler.go @@ -63,6 +63,7 @@ type schedulerInfo struct { Forwarders []*forwarder.Forwarder Autoscaling *autoscaling.Autoscaling Annotations map[string]string + Labels map[string]string } func NewDBScheduler(scheduler *entities.Scheduler) *Scheduler { @@ -77,6 +78,7 @@ func NewDBScheduler(scheduler *entities.Scheduler) *Scheduler { Forwarders: scheduler.Forwarders, Autoscaling: scheduler.Autoscaling, Annotations: scheduler.Annotations, + Labels: scheduler.Labels, } yamlBytes, _ := yaml.Marshal(info) return &Scheduler{ @@ -100,6 +102,7 @@ func (s *Scheduler) ToScheduler() (*entities.Scheduler, error) { Game: s.Game, State: s.State, Annotations: info.Annotations, + Labels: info.Labels, Spec: game_room.Spec{ Version: s.Version, TerminationGracePeriod: info.TerminationGracePeriod, diff --git a/internal/adapters/storage/postgres/scheduler/db_scheduler_test.go b/internal/adapters/storage/postgres/scheduler/db_scheduler_test.go index 749d334c0..c611740ef 100644 --- a/internal/adapters/storage/postgres/scheduler/db_scheduler_test.go +++ b/internal/adapters/storage/postgres/scheduler/db_scheduler_test.go @@ -203,6 +203,7 @@ func TestScheduler_ToScheduler(t *testing.T) { }, }, Annotations: map[string]string{"imageregistry": "https://hub.docker.com/"}, + Labels: map[string]string{"scheduler": "scheduler-name"}, }, } diff --git a/internal/api/handlers/requestadapters/schedulers.go b/internal/api/handlers/requestadapters/schedulers.go index aec728492..8bd42fb61 100644 --- a/internal/api/handlers/requestadapters/schedulers.go +++ b/internal/api/handlers/requestadapters/schedulers.go @@ -75,6 +75,10 @@ func FromApiPatchSchedulerRequestToChangeMap(request *api.PatchSchedulerRequest) patchMap[patch.LabelAnnotations] = request.GetAnnotations() } + if request.Labels != nil { + patchMap[patch.LabelLabels] = request.GetLabels() + } + return patchMap } @@ -121,6 +125,7 @@ func FromApiCreateSchedulerRequestToEntity(request *api.CreateSchedulerRequest) schedulerAutoscaling, fromApiForwarders(request.GetForwarders()), request.GetAnnotations(), + request.GetLabels(), ) } @@ -157,6 +162,7 @@ func FromApiNewSchedulerVersionRequestToEntity(request *api.NewSchedulerVersionR schedulerAutoscaling, fromApiForwarders(request.GetForwarders()), request.GetAnnotations(), + request.GetLabels(), ) } @@ -179,6 +185,7 @@ func FromEntitySchedulerToResponse(entity *entities.Scheduler) (*api.Scheduler, Autoscaling: getAutoscaling(entity.Autoscaling), Forwarders: forwarders, Annotations: entity.Annotations, + Labels: entity.Labels, }, nil } diff --git a/internal/api/handlers/requestadapters/schedulers_test.go b/internal/api/handlers/requestadapters/schedulers_test.go index 5bacac77d..0486dc8bd 100644 --- a/internal/api/handlers/requestadapters/schedulers_test.go +++ b/internal/api/handlers/requestadapters/schedulers_test.go @@ -550,6 +550,7 @@ func TestFromApiCreateSchedulerRequestToEntity(t *testing.T) { }, }, Annotations: map[string]string{}, + Labels: map[string]string{}, }, }, Output: Output{ @@ -649,6 +650,7 @@ func TestFromApiCreateSchedulerRequestToEntity(t *testing.T) { }, }, Annotations: map[string]string{}, + Labels: map[string]string{}, }, }, }, @@ -735,6 +737,7 @@ func TestFromApiCreateSchedulerRequestToEntity(t *testing.T) { }, }, Annotations: map[string]string{}, + Labels: map[string]string{}, }, }, Output: Output{ @@ -821,6 +824,7 @@ func TestFromApiCreateSchedulerRequestToEntity(t *testing.T) { }, }, Annotations: map[string]string{}, + Labels: map[string]string{}, }, }, }, @@ -1046,6 +1050,7 @@ func TestFromEntitySchedulerToListResponse(t *testing.T) { }, }, Annotations: map[string]string{}, + Labels: map[string]string{}, }, }, Output: Output{ @@ -1199,6 +1204,7 @@ func TestFromApiNewSchedulerVersionRequestToEntity(t *testing.T) { }, }, Annotations: map[string]string{}, + Labels: map[string]string{}, }, }, Output: Output{ @@ -1298,6 +1304,7 @@ func TestFromApiNewSchedulerVersionRequestToEntity(t *testing.T) { }, }, Annotations: map[string]string{}, + Labels: map[string]string{}, }, }, }, @@ -1429,6 +1436,7 @@ func TestFromEntitySchedulerToResponse(t *testing.T) { }, }, Annotations: map[string]string{}, + Labels: map[string]string{}, }, }, Output: Output{ @@ -1527,6 +1535,7 @@ func TestFromEntitySchedulerToResponse(t *testing.T) { }, }, Annotations: map[string]string{}, + Labels: map[string]string{}, }, }, }, @@ -1607,6 +1616,7 @@ func TestFromEntitySchedulerToResponse(t *testing.T) { }, }, Annotations: map[string]string{}, + Labels: map[string]string{}, }, }, Output: Output{ @@ -1692,6 +1702,7 @@ func TestFromEntitySchedulerToResponse(t *testing.T) { }, }, Annotations: map[string]string{}, + Labels: map[string]string{}, }, }, }, diff --git a/internal/api/handlers/schedulers_handler_test.go b/internal/api/handlers/schedulers_handler_test.go index f0b8e8623..371c18171 100644 --- a/internal/api/handlers/schedulers_handler_test.go +++ b/internal/api/handlers/schedulers_handler_test.go @@ -272,6 +272,7 @@ func TestGetScheduler(t *testing.T) { }, }, Annotations: map[string]string{}, + Labels: map[string]string{}, } schedulerCache.EXPECT().GetScheduler(gomock.Any(), gomock.Any()).Return(scheduler, nil) @@ -541,6 +542,7 @@ func TestCreateScheduler(t *testing.T) { }, }, Annotations: map[string]string{"imageregistry": "https://docker.hub.com/"}, + Labels: map[string]string{"scheduler": "scheduler-name"}, } schedulerStorage.EXPECT().CreateScheduler(gomock.Any(), gomock.Any()).Do( @@ -559,6 +561,7 @@ func TestCreateScheduler(t *testing.T) { assert.Equal(t, scheduler.Forwarders[i].Options.Timeout, forwarder.Options.Timeout) } assert.Equal(t, scheduler.Annotations, arg.Annotations) + assert.Equal(t, scheduler.Labels, arg.Labels) }, ).Return(nil) operationManager.EXPECT().CreateOperation(gomock.Any(), scheduler.Name, gomock.Any()).Return(&operation.Operation{ID: "id-1"}, nil) @@ -1239,6 +1242,7 @@ func newValidScheduler() *entities.Scheduler { } forwarders := []*forwarder.Forwarder{fwd} annotations := map[string]string{"imageregistry": "https://hub.docker.com/"} + labels := map[string]string{"scheduler": "scheduler-name"} return &entities.Scheduler{ Name: "scheduler-name-1", @@ -1278,5 +1282,6 @@ func newValidScheduler() *entities.Scheduler { }, Forwarders: forwarders, Annotations: annotations, + Labels: labels, } } diff --git a/internal/core/entities/scheduler.go b/internal/core/entities/scheduler.go index 3ca01e2fe..0cb9fe4a0 100644 --- a/internal/core/entities/scheduler.go +++ b/internal/core/entities/scheduler.go @@ -64,6 +64,7 @@ type Scheduler struct { MaxSurge string `validate:"required,max_surge"` Forwarders []*forwarder.Forwarder `validate:"dive"` Annotations map[string]string + Labels map[string]string } // NewScheduler instantiate a new scheduler struct. @@ -78,6 +79,7 @@ func NewScheduler( autoscaling *autoscaling.Autoscaling, forwarders []*forwarder.Forwarder, annotations map[string]string, + labels map[string]string, ) (*Scheduler, error) { scheduler := &Scheduler{ Name: name, @@ -90,6 +92,7 @@ func NewScheduler( Autoscaling: autoscaling, Forwarders: forwarders, Annotations: annotations, + Labels: labels, } return scheduler, scheduler.Validate() } diff --git a/internal/core/entities/scheduler_test.go b/internal/core/entities/scheduler_test.go index bf7db9005..b49b6a1b9 100644 --- a/internal/core/entities/scheduler_test.go +++ b/internal/core/entities/scheduler_test.go @@ -91,6 +91,7 @@ func TestNewScheduler(t *testing.T) { } forwarders := []*forwarder.Forwarder{fwd} annotations := map[string]string{"imageregistry": "https://hub.docker.com/"} + labels := map[string]string{"scheduler": "scheduler-name"} t.Run("with success when create valid scheduler", func(t *testing.T) { scheduler, err := entities.NewScheduler( @@ -103,7 +104,8 @@ func TestNewScheduler(t *testing.T) { roomsReplicas, nil, forwarders, - annotations) + annotations, + labels) expectedScheduler := &entities.Scheduler{ Name: name, @@ -116,6 +118,7 @@ func TestNewScheduler(t *testing.T) { Autoscaling: nil, Forwarders: forwarders, Annotations: annotations, + Labels: labels, } require.NoError(t, err) @@ -132,7 +135,7 @@ func TestNewScheduler(t *testing.T) { portRange, roomsReplicas, nil, - forwarders, annotations) + forwarders, annotations, labels) require.Error(t, err) }) @@ -156,7 +159,7 @@ func TestNewScheduler(t *testing.T) { ), 0, nil, - forwarders, annotations) + forwarders, annotations, labels) require.Error(t, err) }) @@ -180,7 +183,7 @@ func TestNewScheduler(t *testing.T) { ), -1, nil, - forwarders, annotations) + forwarders, annotations, labels) require.Error(t, err) }) diff --git a/internal/core/services/rooms/room_manager_test.go b/internal/core/services/rooms/room_manager_test.go index ed56154ec..288148450 100644 --- a/internal/core/services/rooms/room_manager_test.go +++ b/internal/core/services/rooms/room_manager_test.go @@ -101,6 +101,7 @@ func TestRoomManager_CreateRoom(t *testing.T) { }, PortRange: nil, Annotations: map[string]string{"imageregistry": "https://hub.docker.com/"}, + Labels: map[string]string{"scheduler": "scheduler-name"}, } gameRoomName := "game-1" diff --git a/internal/core/services/schedulers/patch/patch_scheduler.go b/internal/core/services/schedulers/patch/patch_scheduler.go index e76732823..f7604acd3 100644 --- a/internal/core/services/schedulers/patch/patch_scheduler.go +++ b/internal/core/services/schedulers/patch/patch_scheduler.go @@ -85,6 +85,8 @@ const ( LabelAutoscalingPolicy = "policy" // LabelAnnotations is the annotations key in the patch map LabelAnnotations = "annotations" + // LabelLabels is the labels key in the patch map + LabelLabels = "labels" ) // PatchScheduler function applies the patchMap in the scheduler, returning the patched Scheduler. @@ -140,6 +142,12 @@ func PatchScheduler(scheduler entities.Scheduler, patchMap map[string]interface{ } } + if _, ok := patchMap[LabelLabels]; ok { + if scheduler.Labels, ok = patchMap[LabelLabels].(map[string]string); !ok { + return nil, fmt.Errorf("error parsing scheduler: labels malformed") + } + } + return &scheduler, nil } diff --git a/internal/core/services/schedulers/patch/patch_scheduler_test.go b/internal/core/services/schedulers/patch/patch_scheduler_test.go index d5186c0ed..3529fc0c6 100644 --- a/internal/core/services/schedulers/patch/patch_scheduler_test.go +++ b/internal/core/services/schedulers/patch/patch_scheduler_test.go @@ -102,6 +102,24 @@ func TestPatchScheduler(t *testing.T) { Error: nil, }, }, + { + Title: "Have labels return scheduler with changed labels", + Input: Input{ + Scheduler: basicSchedulerToPatchSchedulerTests(), + PatchMap: map[string]interface{}{ + patch.LabelLabels: map[string]string{"scheduler": "scheduler-name", "other-label": "other-value"}, + }, + }, + Output: Output{ + ChangeSchedulerFunc: func() *entities.Scheduler { + scheduler := basicSchedulerToPatchSchedulerTests() + scheduler.Labels = map[string]string{"scheduler": "scheduler-name", "other-label": "other-value"} + + return scheduler + }, + Error: nil, + }, + }, { Title: "Have rooms replicas return scheduler with changed RoomsReplicas", Input: Input{ @@ -918,6 +936,7 @@ func TestPatchScheduler(t *testing.T) { assert.EqualValues(t, expectedScheduler.PortRange, scheduler.PortRange) assert.EqualValues(t, expectedScheduler.Autoscaling, scheduler.Autoscaling) assert.EqualValues(t, expectedScheduler.Annotations, scheduler.Annotations) + assert.EqualValues(t, expectedScheduler.Labels, scheduler.Labels) forwarders := expectedScheduler.Forwarders for i, expectedForwarder := range expectedScheduler.Forwarders { assert.EqualValues(t, expectedForwarder, forwarders[i]) @@ -977,6 +996,7 @@ func basicSchedulerToPatchSchedulerTests() *entities.Scheduler { }, }, Annotations: map[string]string{"imageregistry": "https://hub.docker.com"}, + Labels: map[string]string{"scheduler": "scheduler-name"}, RollbackVersion: "v1.0.0", Spec: game_room.Spec{ Version: "v1.1.0", diff --git a/pkg/api/v1/messages.pb.go b/pkg/api/v1/messages.pb.go index ceb3dc7cf..922ab8292 100644 --- a/pkg/api/v1/messages.pb.go +++ b/pkg/api/v1/messages.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.30.0 +// protoc-gen-go v1.31.0 // protoc v3.17.3 // source: api/v1/messages.proto @@ -136,64 +136,6 @@ func (x *Container) GetPorts() []*ContainerPort { return nil } -// Annotation should add a annotation to scheduler -type Annotation struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // name of the annotation - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // required annotation value or option - Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` -} - -func (x *Annotation) Reset() { - *x = Annotation{} - if protoimpl.UnsafeEnabled { - mi := &file_api_v1_messages_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Annotation) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Annotation) ProtoMessage() {} - -func (x *Annotation) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_messages_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use Annotation.ProtoReflect.Descriptor instead. -func (*Annotation) Descriptor() ([]byte, []int) { - return file_api_v1_messages_proto_rawDescGZIP(), []int{1} -} - -func (x *Annotation) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -func (x *Annotation) GetValue() string { - if x != nil { - return x.Value - } - return "" -} - // OptionalContainer is the struct that defines a game room container configuration. // This message is used to patch container configuration. type OptionalContainer struct { @@ -222,7 +164,7 @@ type OptionalContainer struct { func (x *OptionalContainer) Reset() { *x = OptionalContainer{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_messages_proto_msgTypes[2] + mi := &file_api_v1_messages_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -235,7 +177,7 @@ func (x *OptionalContainer) String() string { func (*OptionalContainer) ProtoMessage() {} func (x *OptionalContainer) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_messages_proto_msgTypes[2] + mi := &file_api_v1_messages_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -248,7 +190,7 @@ func (x *OptionalContainer) ProtoReflect() protoreflect.Message { // Deprecated: Use OptionalContainer.ProtoReflect.Descriptor instead. func (*OptionalContainer) Descriptor() ([]byte, []int) { - return file_api_v1_messages_proto_rawDescGZIP(), []int{2} + return file_api_v1_messages_proto_rawDescGZIP(), []int{1} } func (x *OptionalContainer) GetName() string { @@ -324,7 +266,7 @@ type ContainerEnvironment struct { func (x *ContainerEnvironment) Reset() { *x = ContainerEnvironment{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_messages_proto_msgTypes[3] + mi := &file_api_v1_messages_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -337,7 +279,7 @@ func (x *ContainerEnvironment) String() string { func (*ContainerEnvironment) ProtoMessage() {} func (x *ContainerEnvironment) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_messages_proto_msgTypes[3] + mi := &file_api_v1_messages_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -350,7 +292,7 @@ func (x *ContainerEnvironment) ProtoReflect() protoreflect.Message { // Deprecated: Use ContainerEnvironment.ProtoReflect.Descriptor instead. func (*ContainerEnvironment) Descriptor() ([]byte, []int) { - return file_api_v1_messages_proto_rawDescGZIP(), []int{3} + return file_api_v1_messages_proto_rawDescGZIP(), []int{2} } func (x *ContainerEnvironment) GetName() string { @@ -390,7 +332,7 @@ type ContainerEnvironmentValueFrom struct { func (x *ContainerEnvironmentValueFrom) Reset() { *x = ContainerEnvironmentValueFrom{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_messages_proto_msgTypes[4] + mi := &file_api_v1_messages_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -403,7 +345,7 @@ func (x *ContainerEnvironmentValueFrom) String() string { func (*ContainerEnvironmentValueFrom) ProtoMessage() {} func (x *ContainerEnvironmentValueFrom) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_messages_proto_msgTypes[4] + mi := &file_api_v1_messages_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -416,7 +358,7 @@ func (x *ContainerEnvironmentValueFrom) ProtoReflect() protoreflect.Message { // Deprecated: Use ContainerEnvironmentValueFrom.ProtoReflect.Descriptor instead. func (*ContainerEnvironmentValueFrom) Descriptor() ([]byte, []int) { - return file_api_v1_messages_proto_rawDescGZIP(), []int{4} + return file_api_v1_messages_proto_rawDescGZIP(), []int{3} } func (x *ContainerEnvironmentValueFrom) GetFieldRef() *ContainerEnvironmentValueFromFieldRef { @@ -447,7 +389,7 @@ type ContainerEnvironmentValueFromFieldRef struct { func (x *ContainerEnvironmentValueFromFieldRef) Reset() { *x = ContainerEnvironmentValueFromFieldRef{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_messages_proto_msgTypes[5] + mi := &file_api_v1_messages_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -460,7 +402,7 @@ func (x *ContainerEnvironmentValueFromFieldRef) String() string { func (*ContainerEnvironmentValueFromFieldRef) ProtoMessage() {} func (x *ContainerEnvironmentValueFromFieldRef) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_messages_proto_msgTypes[5] + mi := &file_api_v1_messages_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -473,7 +415,7 @@ func (x *ContainerEnvironmentValueFromFieldRef) ProtoReflect() protoreflect.Mess // Deprecated: Use ContainerEnvironmentValueFromFieldRef.ProtoReflect.Descriptor instead. func (*ContainerEnvironmentValueFromFieldRef) Descriptor() ([]byte, []int) { - return file_api_v1_messages_proto_rawDescGZIP(), []int{5} + return file_api_v1_messages_proto_rawDescGZIP(), []int{4} } func (x *ContainerEnvironmentValueFromFieldRef) GetFieldPath() string { @@ -498,7 +440,7 @@ type ContainerEnvironmentValueFromSecretKeyRef struct { func (x *ContainerEnvironmentValueFromSecretKeyRef) Reset() { *x = ContainerEnvironmentValueFromSecretKeyRef{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_messages_proto_msgTypes[6] + mi := &file_api_v1_messages_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -511,7 +453,7 @@ func (x *ContainerEnvironmentValueFromSecretKeyRef) String() string { func (*ContainerEnvironmentValueFromSecretKeyRef) ProtoMessage() {} func (x *ContainerEnvironmentValueFromSecretKeyRef) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_messages_proto_msgTypes[6] + mi := &file_api_v1_messages_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -524,7 +466,7 @@ func (x *ContainerEnvironmentValueFromSecretKeyRef) ProtoReflect() protoreflect. // Deprecated: Use ContainerEnvironmentValueFromSecretKeyRef.ProtoReflect.Descriptor instead. func (*ContainerEnvironmentValueFromSecretKeyRef) Descriptor() ([]byte, []int) { - return file_api_v1_messages_proto_rawDescGZIP(), []int{6} + return file_api_v1_messages_proto_rawDescGZIP(), []int{5} } func (x *ContainerEnvironmentValueFromSecretKeyRef) GetName() string { @@ -556,7 +498,7 @@ type ContainerResources struct { func (x *ContainerResources) Reset() { *x = ContainerResources{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_messages_proto_msgTypes[7] + mi := &file_api_v1_messages_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -569,7 +511,7 @@ func (x *ContainerResources) String() string { func (*ContainerResources) ProtoMessage() {} func (x *ContainerResources) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_messages_proto_msgTypes[7] + mi := &file_api_v1_messages_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -582,7 +524,7 @@ func (x *ContainerResources) ProtoReflect() protoreflect.Message { // Deprecated: Use ContainerResources.ProtoReflect.Descriptor instead. func (*ContainerResources) Descriptor() ([]byte, []int) { - return file_api_v1_messages_proto_rawDescGZIP(), []int{7} + return file_api_v1_messages_proto_rawDescGZIP(), []int{6} } func (x *ContainerResources) GetMemory() string { @@ -618,7 +560,7 @@ type ContainerPort struct { func (x *ContainerPort) Reset() { *x = ContainerPort{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_messages_proto_msgTypes[8] + mi := &file_api_v1_messages_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -631,7 +573,7 @@ func (x *ContainerPort) String() string { func (*ContainerPort) ProtoMessage() {} func (x *ContainerPort) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_messages_proto_msgTypes[8] + mi := &file_api_v1_messages_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -644,7 +586,7 @@ func (x *ContainerPort) ProtoReflect() protoreflect.Message { // Deprecated: Use ContainerPort.ProtoReflect.Descriptor instead. func (*ContainerPort) Descriptor() ([]byte, []int) { - return file_api_v1_messages_proto_rawDescGZIP(), []int{8} + return file_api_v1_messages_proto_rawDescGZIP(), []int{7} } func (x *ContainerPort) GetName() string { @@ -692,7 +634,7 @@ type PortRange struct { func (x *PortRange) Reset() { *x = PortRange{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_messages_proto_msgTypes[9] + mi := &file_api_v1_messages_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -705,7 +647,7 @@ func (x *PortRange) String() string { func (*PortRange) ProtoMessage() {} func (x *PortRange) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_messages_proto_msgTypes[9] + mi := &file_api_v1_messages_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -718,7 +660,7 @@ func (x *PortRange) ProtoReflect() protoreflect.Message { // Deprecated: Use PortRange.ProtoReflect.Descriptor instead. func (*PortRange) Descriptor() ([]byte, []int) { - return file_api_v1_messages_proto_rawDescGZIP(), []int{9} + return file_api_v1_messages_proto_rawDescGZIP(), []int{8} } func (x *PortRange) GetStart() int32 { @@ -756,7 +698,7 @@ type Spec struct { func (x *Spec) Reset() { *x = Spec{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_messages_proto_msgTypes[10] + mi := &file_api_v1_messages_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -769,7 +711,7 @@ func (x *Spec) String() string { func (*Spec) ProtoMessage() {} func (x *Spec) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_messages_proto_msgTypes[10] + mi := &file_api_v1_messages_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -782,7 +724,7 @@ func (x *Spec) ProtoReflect() protoreflect.Message { // Deprecated: Use Spec.ProtoReflect.Descriptor instead. func (*Spec) Descriptor() ([]byte, []int) { - return file_api_v1_messages_proto_rawDescGZIP(), []int{10} + return file_api_v1_messages_proto_rawDescGZIP(), []int{9} } func (x *Spec) GetVersion() string { @@ -840,7 +782,7 @@ type OptionalSpec struct { func (x *OptionalSpec) Reset() { *x = OptionalSpec{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_messages_proto_msgTypes[11] + mi := &file_api_v1_messages_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -853,7 +795,7 @@ func (x *OptionalSpec) String() string { func (*OptionalSpec) ProtoMessage() {} func (x *OptionalSpec) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_messages_proto_msgTypes[11] + mi := &file_api_v1_messages_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -866,7 +808,7 @@ func (x *OptionalSpec) ProtoReflect() protoreflect.Message { // Deprecated: Use OptionalSpec.ProtoReflect.Descriptor instead. func (*OptionalSpec) Descriptor() ([]byte, []int) { - return file_api_v1_messages_proto_rawDescGZIP(), []int{11} + return file_api_v1_messages_proto_rawDescGZIP(), []int{10} } func (x *OptionalSpec) GetTerminationGracePeriod() *duration.Duration { @@ -926,12 +868,14 @@ type Scheduler struct { Forwarders []*Forwarder `protobuf:"bytes,10,rep,name=forwarders,proto3" json:"forwarders,omitempty"` // List with annotations Annotations map[string]string `protobuf:"bytes,11,rep,name=annotations,proto3" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // List with labels + Labels map[string]string `protobuf:"bytes,12,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *Scheduler) Reset() { *x = Scheduler{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_messages_proto_msgTypes[12] + mi := &file_api_v1_messages_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -944,7 +888,7 @@ func (x *Scheduler) String() string { func (*Scheduler) ProtoMessage() {} func (x *Scheduler) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_messages_proto_msgTypes[12] + mi := &file_api_v1_messages_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -957,7 +901,7 @@ func (x *Scheduler) ProtoReflect() protoreflect.Message { // Deprecated: Use Scheduler.ProtoReflect.Descriptor instead. func (*Scheduler) Descriptor() ([]byte, []int) { - return file_api_v1_messages_proto_rawDescGZIP(), []int{12} + return file_api_v1_messages_proto_rawDescGZIP(), []int{11} } func (x *Scheduler) GetName() string { @@ -1037,6 +981,13 @@ func (x *Scheduler) GetAnnotations() map[string]string { return nil } +func (x *Scheduler) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + // Scheduler message used in the "ListScheduler version" definition. The "spec" is not implemented // on this message since it's unnecessary for the list function type SchedulerWithoutSpec struct { @@ -1066,7 +1017,7 @@ type SchedulerWithoutSpec struct { func (x *SchedulerWithoutSpec) Reset() { *x = SchedulerWithoutSpec{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_messages_proto_msgTypes[13] + mi := &file_api_v1_messages_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1079,7 +1030,7 @@ func (x *SchedulerWithoutSpec) String() string { func (*SchedulerWithoutSpec) ProtoMessage() {} func (x *SchedulerWithoutSpec) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_messages_proto_msgTypes[13] + mi := &file_api_v1_messages_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1092,7 +1043,7 @@ func (x *SchedulerWithoutSpec) ProtoReflect() protoreflect.Message { // Deprecated: Use SchedulerWithoutSpec.ProtoReflect.Descriptor instead. func (*SchedulerWithoutSpec) Descriptor() ([]byte, []int) { - return file_api_v1_messages_proto_rawDescGZIP(), []int{13} + return file_api_v1_messages_proto_rawDescGZIP(), []int{12} } func (x *SchedulerWithoutSpec) GetName() string { @@ -1175,7 +1126,7 @@ type ListOperationItem struct { func (x *ListOperationItem) Reset() { *x = ListOperationItem{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_messages_proto_msgTypes[14] + mi := &file_api_v1_messages_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1188,7 +1139,7 @@ func (x *ListOperationItem) String() string { func (*ListOperationItem) ProtoMessage() {} func (x *ListOperationItem) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_messages_proto_msgTypes[14] + mi := &file_api_v1_messages_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1201,7 +1152,7 @@ func (x *ListOperationItem) ProtoReflect() protoreflect.Message { // Deprecated: Use ListOperationItem.ProtoReflect.Descriptor instead. func (*ListOperationItem) Descriptor() ([]byte, []int) { - return file_api_v1_messages_proto_rawDescGZIP(), []int{14} + return file_api_v1_messages_proto_rawDescGZIP(), []int{13} } func (x *ListOperationItem) GetId() string { @@ -1274,7 +1225,7 @@ type Operation struct { func (x *Operation) Reset() { *x = Operation{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_messages_proto_msgTypes[15] + mi := &file_api_v1_messages_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1287,7 +1238,7 @@ func (x *Operation) String() string { func (*Operation) ProtoMessage() {} func (x *Operation) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_messages_proto_msgTypes[15] + mi := &file_api_v1_messages_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1300,7 +1251,7 @@ func (x *Operation) ProtoReflect() protoreflect.Message { // Deprecated: Use Operation.ProtoReflect.Descriptor instead. func (*Operation) Descriptor() ([]byte, []int) { - return file_api_v1_messages_proto_rawDescGZIP(), []int{15} + return file_api_v1_messages_proto_rawDescGZIP(), []int{14} } func (x *Operation) GetId() string { @@ -1378,7 +1329,7 @@ type OptionalAutoscaling struct { func (x *OptionalAutoscaling) Reset() { *x = OptionalAutoscaling{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_messages_proto_msgTypes[16] + mi := &file_api_v1_messages_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1391,7 +1342,7 @@ func (x *OptionalAutoscaling) String() string { func (*OptionalAutoscaling) ProtoMessage() {} func (x *OptionalAutoscaling) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_messages_proto_msgTypes[16] + mi := &file_api_v1_messages_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1404,7 +1355,7 @@ func (x *OptionalAutoscaling) ProtoReflect() protoreflect.Message { // Deprecated: Use OptionalAutoscaling.ProtoReflect.Descriptor instead. func (*OptionalAutoscaling) Descriptor() ([]byte, []int) { - return file_api_v1_messages_proto_rawDescGZIP(), []int{16} + return file_api_v1_messages_proto_rawDescGZIP(), []int{15} } func (x *OptionalAutoscaling) GetEnabled() bool { @@ -1454,7 +1405,7 @@ type Autoscaling struct { func (x *Autoscaling) Reset() { *x = Autoscaling{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_messages_proto_msgTypes[17] + mi := &file_api_v1_messages_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1467,7 +1418,7 @@ func (x *Autoscaling) String() string { func (*Autoscaling) ProtoMessage() {} func (x *Autoscaling) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_messages_proto_msgTypes[17] + mi := &file_api_v1_messages_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1480,7 +1431,7 @@ func (x *Autoscaling) ProtoReflect() protoreflect.Message { // Deprecated: Use Autoscaling.ProtoReflect.Descriptor instead. func (*Autoscaling) Descriptor() ([]byte, []int) { - return file_api_v1_messages_proto_rawDescGZIP(), []int{17} + return file_api_v1_messages_proto_rawDescGZIP(), []int{16} } func (x *Autoscaling) GetEnabled() bool { @@ -1526,7 +1477,7 @@ type AutoscalingPolicy struct { func (x *AutoscalingPolicy) Reset() { *x = AutoscalingPolicy{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_messages_proto_msgTypes[18] + mi := &file_api_v1_messages_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1539,7 +1490,7 @@ func (x *AutoscalingPolicy) String() string { func (*AutoscalingPolicy) ProtoMessage() {} func (x *AutoscalingPolicy) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_messages_proto_msgTypes[18] + mi := &file_api_v1_messages_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1552,7 +1503,7 @@ func (x *AutoscalingPolicy) ProtoReflect() protoreflect.Message { // Deprecated: Use AutoscalingPolicy.ProtoReflect.Descriptor instead. func (*AutoscalingPolicy) Descriptor() ([]byte, []int) { - return file_api_v1_messages_proto_rawDescGZIP(), []int{18} + return file_api_v1_messages_proto_rawDescGZIP(), []int{17} } func (x *AutoscalingPolicy) GetType() string { @@ -1582,7 +1533,7 @@ type PolicyParameters struct { func (x *PolicyParameters) Reset() { *x = PolicyParameters{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_messages_proto_msgTypes[19] + mi := &file_api_v1_messages_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1595,7 +1546,7 @@ func (x *PolicyParameters) String() string { func (*PolicyParameters) ProtoMessage() {} func (x *PolicyParameters) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_messages_proto_msgTypes[19] + mi := &file_api_v1_messages_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1608,7 +1559,7 @@ func (x *PolicyParameters) ProtoReflect() protoreflect.Message { // Deprecated: Use PolicyParameters.ProtoReflect.Descriptor instead. func (*PolicyParameters) Descriptor() ([]byte, []int) { - return file_api_v1_messages_proto_rawDescGZIP(), []int{19} + return file_api_v1_messages_proto_rawDescGZIP(), []int{18} } func (x *PolicyParameters) GetRoomOccupancy() *RoomOccupancy { @@ -1631,7 +1582,7 @@ type RoomOccupancy struct { func (x *RoomOccupancy) Reset() { *x = RoomOccupancy{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_messages_proto_msgTypes[20] + mi := &file_api_v1_messages_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1644,7 +1595,7 @@ func (x *RoomOccupancy) String() string { func (*RoomOccupancy) ProtoMessage() {} func (x *RoomOccupancy) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_messages_proto_msgTypes[20] + mi := &file_api_v1_messages_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1657,7 +1608,7 @@ func (x *RoomOccupancy) ProtoReflect() protoreflect.Message { // Deprecated: Use RoomOccupancy.ProtoReflect.Descriptor instead. func (*RoomOccupancy) Descriptor() ([]byte, []int) { - return file_api_v1_messages_proto_rawDescGZIP(), []int{20} + return file_api_v1_messages_proto_rawDescGZIP(), []int{19} } func (x *RoomOccupancy) GetReadyTarget() float32 { @@ -1681,7 +1632,7 @@ type Lease struct { func (x *Lease) Reset() { *x = Lease{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_messages_proto_msgTypes[21] + mi := &file_api_v1_messages_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1694,7 +1645,7 @@ func (x *Lease) String() string { func (*Lease) ProtoMessage() {} func (x *Lease) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_messages_proto_msgTypes[21] + mi := &file_api_v1_messages_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1707,7 +1658,7 @@ func (x *Lease) ProtoReflect() protoreflect.Message { // Deprecated: Use Lease.ProtoReflect.Descriptor instead. func (*Lease) Descriptor() ([]byte, []int) { - return file_api_v1_messages_proto_rawDescGZIP(), []int{21} + return file_api_v1_messages_proto_rawDescGZIP(), []int{20} } func (x *Lease) GetTtl() string { @@ -1732,7 +1683,7 @@ type OperationEvent struct { func (x *OperationEvent) Reset() { *x = OperationEvent{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_messages_proto_msgTypes[22] + mi := &file_api_v1_messages_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1745,7 +1696,7 @@ func (x *OperationEvent) String() string { func (*OperationEvent) ProtoMessage() {} func (x *OperationEvent) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_messages_proto_msgTypes[22] + mi := &file_api_v1_messages_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1758,7 +1709,7 @@ func (x *OperationEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use OperationEvent.ProtoReflect.Descriptor instead. func (*OperationEvent) Descriptor() ([]byte, []int) { - return file_api_v1_messages_proto_rawDescGZIP(), []int{22} + return file_api_v1_messages_proto_rawDescGZIP(), []int{21} } func (x *OperationEvent) GetCreatedAt() *timestamp.Timestamp { @@ -1792,7 +1743,7 @@ type SchedulerVersion struct { func (x *SchedulerVersion) Reset() { *x = SchedulerVersion{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_messages_proto_msgTypes[23] + mi := &file_api_v1_messages_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1805,7 +1756,7 @@ func (x *SchedulerVersion) String() string { func (*SchedulerVersion) ProtoMessage() {} func (x *SchedulerVersion) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_messages_proto_msgTypes[23] + mi := &file_api_v1_messages_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1818,7 +1769,7 @@ func (x *SchedulerVersion) ProtoReflect() protoreflect.Message { // Deprecated: Use SchedulerVersion.ProtoReflect.Descriptor instead. func (*SchedulerVersion) Descriptor() ([]byte, []int) { - return file_api_v1_messages_proto_rawDescGZIP(), []int{23} + return file_api_v1_messages_proto_rawDescGZIP(), []int{22} } func (x *SchedulerVersion) GetVersion() string { @@ -1863,7 +1814,7 @@ type Forwarder struct { func (x *Forwarder) Reset() { *x = Forwarder{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_messages_proto_msgTypes[24] + mi := &file_api_v1_messages_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1876,7 +1827,7 @@ func (x *Forwarder) String() string { func (*Forwarder) ProtoMessage() {} func (x *Forwarder) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_messages_proto_msgTypes[24] + mi := &file_api_v1_messages_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1889,7 +1840,7 @@ func (x *Forwarder) ProtoReflect() protoreflect.Message { // Deprecated: Use Forwarder.ProtoReflect.Descriptor instead. func (*Forwarder) Descriptor() ([]byte, []int) { - return file_api_v1_messages_proto_rawDescGZIP(), []int{24} + return file_api_v1_messages_proto_rawDescGZIP(), []int{23} } func (x *Forwarder) GetName() string { @@ -1942,7 +1893,7 @@ type ForwarderOptions struct { func (x *ForwarderOptions) Reset() { *x = ForwarderOptions{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_messages_proto_msgTypes[25] + mi := &file_api_v1_messages_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1955,7 +1906,7 @@ func (x *ForwarderOptions) String() string { func (*ForwarderOptions) ProtoMessage() {} func (x *ForwarderOptions) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_messages_proto_msgTypes[25] + mi := &file_api_v1_messages_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1968,7 +1919,7 @@ func (x *ForwarderOptions) ProtoReflect() protoreflect.Message { // Deprecated: Use ForwarderOptions.ProtoReflect.Descriptor instead. func (*ForwarderOptions) Descriptor() ([]byte, []int) { - return file_api_v1_messages_proto_rawDescGZIP(), []int{25} + return file_api_v1_messages_proto_rawDescGZIP(), []int{24} } func (x *ForwarderOptions) GetTimeout() int64 { @@ -2002,7 +1953,7 @@ type AutoscalingInfo struct { func (x *AutoscalingInfo) Reset() { *x = AutoscalingInfo{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_messages_proto_msgTypes[26] + mi := &file_api_v1_messages_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2015,7 +1966,7 @@ func (x *AutoscalingInfo) String() string { func (*AutoscalingInfo) ProtoMessage() {} func (x *AutoscalingInfo) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_messages_proto_msgTypes[26] + mi := &file_api_v1_messages_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2028,7 +1979,7 @@ func (x *AutoscalingInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use AutoscalingInfo.ProtoReflect.Descriptor instead. func (*AutoscalingInfo) Descriptor() ([]byte, []int) { - return file_api_v1_messages_proto_rawDescGZIP(), []int{26} + return file_api_v1_messages_proto_rawDescGZIP(), []int{25} } func (x *AutoscalingInfo) GetEnabled() bool { @@ -2081,7 +2032,7 @@ type SchedulerInfo struct { func (x *SchedulerInfo) Reset() { *x = SchedulerInfo{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_messages_proto_msgTypes[27] + mi := &file_api_v1_messages_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2094,7 +2045,7 @@ func (x *SchedulerInfo) String() string { func (*SchedulerInfo) ProtoMessage() {} func (x *SchedulerInfo) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_messages_proto_msgTypes[27] + mi := &file_api_v1_messages_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2107,7 +2058,7 @@ func (x *SchedulerInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use SchedulerInfo.ProtoReflect.Descriptor instead. func (*SchedulerInfo) Descriptor() ([]byte, []int) { - return file_api_v1_messages_proto_rawDescGZIP(), []int{27} + return file_api_v1_messages_proto_rawDescGZIP(), []int{26} } func (x *SchedulerInfo) GetName() string { @@ -2208,316 +2159,320 @@ var file_api_v1_messages_proto_rawDesc = []byte{ 0x52, 0x06, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x12, 0x2b, 0x0a, 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x05, - 0x70, 0x6f, 0x72, 0x74, 0x73, 0x22, 0x36, 0x0a, 0x0a, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xb6, 0x03, - 0x0a, 0x11, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, - 0x6e, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x69, - 0x6d, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x69, 0x6d, 0x61, 0x67, 0x65, - 0x5f, 0x70, 0x75, 0x6c, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x02, 0x52, 0x0f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x50, 0x75, 0x6c, 0x6c, 0x50, - 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x88, 0x01, 0x01, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, - 0x61, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, - 0x6e, 0x64, 0x12, 0x3e, 0x0a, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, - 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x12, 0x3b, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, - 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, - 0x48, 0x03, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, - 0x37, 0x0a, 0x06, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, - 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x48, 0x04, 0x52, 0x06, 0x6c, - 0x69, 0x6d, 0x69, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x05, 0x70, 0x6f, 0x72, 0x74, - 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, - 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x05, - 0x70, 0x6f, 0x72, 0x74, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x69, 0x6d, 0x61, - 0x67, 0x65, 0x5f, 0x70, 0x75, 0x6c, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x42, 0x0b, - 0x0a, 0x09, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x22, 0xa9, 0x01, 0x0a, 0x14, 0x43, 0x6f, 0x6e, 0x74, 0x61, - 0x69, 0x6e, 0x65, 0x72, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x49, - 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, - 0x61, 0x69, 0x6e, 0x65, 0x72, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x48, 0x01, 0x52, 0x09, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x66, 0x72, - 0x6f, 0x6d, 0x22, 0xef, 0x01, 0x0a, 0x1d, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, - 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x46, 0x72, 0x6f, 0x6d, 0x12, 0x4f, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x72, 0x65, - 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, - 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x46, 0x69, - 0x65, 0x6c, 0x64, 0x52, 0x65, 0x66, 0x48, 0x00, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x52, - 0x65, 0x66, 0x88, 0x01, 0x01, 0x12, 0x5c, 0x0a, 0x0e, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x5f, - 0x6b, 0x65, 0x79, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, - 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x46, 0x72, 0x6f, 0x6d, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x66, - 0x48, 0x01, 0x52, 0x0c, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x66, - 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x72, 0x65, - 0x66, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x5f, 0x6b, 0x65, 0x79, - 0x5f, 0x72, 0x65, 0x66, 0x22, 0x46, 0x0a, 0x25, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, - 0x72, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x65, 0x66, 0x12, 0x1d, 0x0a, - 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x50, 0x61, 0x74, 0x68, 0x22, 0x51, 0x0a, 0x29, + 0x70, 0x6f, 0x72, 0x74, 0x73, 0x22, 0xb6, 0x03, 0x0a, 0x11, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x2f, 0x0a, 0x11, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x75, 0x6c, 0x6c, 0x5f, 0x70, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0f, 0x69, 0x6d, + 0x61, 0x67, 0x65, 0x50, 0x75, 0x6c, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x88, 0x01, 0x01, + 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x3e, 0x0a, 0x0b, 0x65, 0x6e, + 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x65, 0x72, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0b, 0x65, + 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3b, 0x0a, 0x08, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x48, 0x03, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x06, 0x6c, 0x69, 0x6d, 0x69, 0x74, + 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x73, 0x48, 0x04, 0x52, 0x06, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x88, 0x01, 0x01, + 0x12, 0x2b, 0x0a, 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, + 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x75, 0x6c, 0x6c, 0x5f, + 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x22, 0xa9, + 0x01, 0x0a, 0x14, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x45, 0x6e, 0x76, 0x69, + 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, + 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x45, 0x6e, 0x76, + 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x46, 0x72, 0x6f, + 0x6d, 0x48, 0x01, 0x52, 0x09, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x88, 0x01, + 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x22, 0xef, 0x01, 0x0a, 0x1d, 0x43, + 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x12, 0x4f, 0x0a, 0x09, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x65, 0x72, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x65, 0x66, 0x48, 0x00, + 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x65, 0x66, 0x88, 0x01, 0x01, 0x12, 0x5c, 0x0a, + 0x0e, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x72, 0x65, 0x66, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, + 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x53, 0x65, 0x63, 0x72, + 0x65, 0x74, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x66, 0x48, 0x01, 0x52, 0x0c, 0x73, 0x65, 0x63, 0x72, + 0x65, 0x74, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x66, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x72, 0x65, 0x66, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x73, 0x65, + 0x63, 0x72, 0x65, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x72, 0x65, 0x66, 0x22, 0x46, 0x0a, 0x25, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x53, 0x65, 0x63, - 0x72, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x66, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x22, - 0x3e, 0x0a, 0x12, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x12, 0x10, 0x0a, - 0x03, 0x63, 0x70, 0x75, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x70, 0x75, 0x22, - 0x70, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, - 0x70, 0x6f, 0x72, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, - 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x50, 0x6f, 0x72, - 0x74, 0x22, 0x33, 0x0a, 0x09, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, - 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, 0xe4, 0x01, 0x0a, 0x04, 0x53, 0x70, 0x65, 0x63, 0x12, - 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x53, 0x0a, 0x18, 0x74, 0x65, 0x72, - 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x67, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x70, - 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x16, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x61, 0x63, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x31, - 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, - 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, - 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x6f, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, 0x22, 0xa2, 0x02, - 0x0a, 0x0c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x70, 0x65, 0x63, 0x12, 0x58, - 0x0a, 0x18, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x67, 0x72, - 0x61, 0x63, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x16, 0x74, - 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x61, 0x63, 0x65, 0x50, - 0x65, 0x72, 0x69, 0x6f, 0x64, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, - 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x6f, - 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, - 0x65, 0x72, 0x73, 0x12, 0x23, 0x0a, 0x0a, 0x74, 0x6f, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0a, 0x74, 0x6f, 0x6c, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x61, 0x66, 0x66, 0x69, - 0x6e, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x08, 0x61, 0x66, - 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x74, 0x65, - 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x67, 0x72, 0x61, 0x63, 0x65, 0x5f, - 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x74, 0x6f, 0x6c, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x66, 0x66, 0x69, 0x6e, 0x69, - 0x74, 0x79, 0x22, 0xa1, 0x04, 0x0a, 0x09, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x67, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x30, - 0x0a, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x72, 0x74, - 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, - 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, - 0x61, 0x78, 0x5f, 0x73, 0x75, 0x72, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x6d, 0x61, 0x78, 0x53, 0x75, 0x72, 0x67, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x6f, 0x6f, 0x6d, - 0x73, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0d, 0x72, 0x6f, 0x6f, 0x6d, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x12, - 0x20, 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x70, 0x65, 0x63, 0x52, 0x04, 0x73, 0x70, 0x65, - 0x63, 0x12, 0x3a, 0x0a, 0x0b, 0x61, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, - 0x41, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x0b, 0x61, - 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, - 0x0a, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x65, 0x72, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x77, 0x61, - 0x72, 0x64, 0x65, 0x72, 0x52, 0x0a, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x65, 0x72, 0x73, - 0x12, 0x44, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, - 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, - 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x3e, 0x0a, 0x10, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, - 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x73, - 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x9f, 0x02, 0x0a, 0x14, 0x53, 0x63, 0x68, 0x65, 0x64, - 0x75, 0x6c, 0x65, 0x72, 0x57, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x53, 0x70, 0x65, 0x63, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x67, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, - 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x5f, - 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x09, - 0x70, 0x6f, 0x72, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x75, 0x72, 0x67, - 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x53, 0x75, 0x72, 0x67, - 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x6f, 0x6f, 0x6d, 0x73, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x72, 0x6f, 0x6f, 0x6d, 0x73, - 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x22, 0xfa, 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x73, - 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, - 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0e, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x28, 0x0a, 0x05, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x48, 0x00, 0x52, - 0x05, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x63, 0x68, - 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x6c, 0x65, 0x61, 0x73, 0x65, 0x22, 0xe6, 0x02, 0x0a, 0x09, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x64, - 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x05, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x65, 0x61, - 0x73, 0x65, 0x48, 0x00, 0x52, 0x05, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, - 0x0a, 0x0e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, - 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x5f, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x12, 0x2d, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, - 0x43, 0x0a, 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x69, 0x73, - 0x74, 0x6f, 0x72, 0x79, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x52, 0x10, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x69, 0x73, - 0x74, 0x6f, 0x72, 0x79, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x22, 0xc1, - 0x01, 0x0a, 0x13, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x41, 0x75, 0x74, 0x6f, 0x73, - 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x12, 0x1d, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x48, 0x01, 0x52, 0x03, 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, - 0x6d, 0x61, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x03, 0x6d, 0x61, 0x78, - 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x06, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x75, 0x74, - 0x6f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x48, 0x03, - 0x52, 0x06, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, - 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x69, 0x6e, 0x42, - 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x61, 0x78, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x70, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x22, 0x7e, 0x0a, 0x0b, 0x41, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, - 0x67, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6d, - 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6d, 0x69, 0x6e, 0x12, 0x10, 0x0a, - 0x03, 0x6d, 0x61, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6d, 0x61, 0x78, 0x12, - 0x31, 0x0a, 0x06, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, - 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x06, 0x70, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x22, 0x61, 0x0a, 0x11, 0x41, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, - 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x38, 0x0a, 0x0a, 0x70, - 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, - 0x65, 0x74, 0x65, 0x72, 0x73, 0x22, 0x68, 0x0a, 0x10, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x41, 0x0a, 0x0e, 0x72, 0x6f, 0x6f, - 0x6d, 0x5f, 0x6f, 0x63, 0x63, 0x75, 0x70, 0x61, 0x6e, 0x63, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x4f, - 0x63, 0x63, 0x75, 0x70, 0x61, 0x6e, 0x63, 0x79, 0x48, 0x00, 0x52, 0x0d, 0x72, 0x6f, 0x6f, 0x6d, - 0x4f, 0x63, 0x63, 0x75, 0x70, 0x61, 0x6e, 0x63, 0x79, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, - 0x5f, 0x72, 0x6f, 0x6f, 0x6d, 0x5f, 0x6f, 0x63, 0x63, 0x75, 0x70, 0x61, 0x6e, 0x63, 0x79, 0x22, - 0x32, 0x0a, 0x0d, 0x52, 0x6f, 0x6f, 0x6d, 0x4f, 0x63, 0x63, 0x75, 0x70, 0x61, 0x6e, 0x63, 0x79, - 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x72, 0x65, 0x61, 0x64, 0x79, 0x54, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x22, 0x19, 0x0a, 0x05, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, - 0x74, 0x74, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x74, 0x74, 0x6c, 0x22, 0x61, - 0x0a, 0x0e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x65, - 0x76, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, - 0x74, 0x22, 0x84, 0x01, 0x0a, 0x10, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x56, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x39, 0x0a, - 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0xaa, 0x01, 0x0a, 0x09, 0x46, 0x6f, 0x72, - 0x77, 0x61, 0x72, 0x64, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x12, 0x37, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x77, 0x61, - 0x72, 0x64, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x00, 0x52, 0x07, 0x6f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x61, 0x0a, 0x10, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, - 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x6d, - 0x65, 0x6f, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, - 0x6f, 0x75, 0x74, 0x12, 0x33, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x08, - 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x4f, 0x0a, 0x0f, 0x41, 0x75, 0x74, 0x6f, - 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x52, 0x65, 0x66, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x70, + 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x50, 0x61, 0x74, 0x68, 0x22, 0x51, 0x0a, 0x29, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, + 0x72, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x52, 0x65, + 0x66, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x22, 0x3e, 0x0a, 0x12, 0x43, 0x6f, 0x6e, 0x74, 0x61, + 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x16, 0x0a, + 0x06, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, + 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x70, 0x75, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x63, 0x70, 0x75, 0x22, 0x70, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x74, 0x61, + 0x69, 0x6e, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x1b, 0x0a, 0x09, + 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x68, 0x6f, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x22, 0x33, 0x0a, 0x09, 0x50, 0x6f, 0x72, + 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, + 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, 0xe4, + 0x01, 0x0a, 0x04, 0x53, 0x70, 0x65, 0x63, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x53, 0x0a, 0x18, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x67, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x16, + 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x61, 0x63, 0x65, + 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x31, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, + 0x6e, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x0a, 0x63, + 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x6c, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, + 0x6f, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x66, 0x66, + 0x69, 0x6e, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x66, 0x66, + 0x69, 0x6e, 0x69, 0x74, 0x79, 0x22, 0xa2, 0x02, 0x0a, 0x0c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x53, 0x70, 0x65, 0x63, 0x12, 0x58, 0x0a, 0x18, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x67, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x69, + 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x16, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x47, 0x72, 0x61, 0x63, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, + 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x23, 0x0a, 0x0a, 0x74, + 0x6f, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x01, 0x52, 0x0a, 0x74, 0x6f, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, + 0x12, 0x1f, 0x0a, 0x08, 0x61, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x02, 0x52, 0x08, 0x61, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, 0x88, 0x01, + 0x01, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x67, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x42, 0x0d, + 0x0a, 0x0b, 0x5f, 0x74, 0x6f, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0b, 0x0a, + 0x09, 0x5f, 0x61, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, 0x22, 0x93, 0x05, 0x0a, 0x09, 0x53, + 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, + 0x67, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x67, 0x61, 0x6d, 0x65, + 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x30, 0x0a, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x72, + 0x61, 0x6e, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x09, 0x70, + 0x6f, 0x72, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x41, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x75, 0x72, 0x67, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x53, 0x75, 0x72, 0x67, 0x65, + 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x6f, 0x6f, 0x6d, 0x73, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x72, 0x6f, 0x6f, 0x6d, 0x73, 0x52, + 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, + 0x70, 0x65, 0x63, 0x52, 0x04, 0x73, 0x70, 0x65, 0x63, 0x12, 0x3a, 0x0a, 0x0b, 0x61, 0x75, 0x74, + 0x6f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, 0x6c, + 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x0b, 0x61, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, 0x6c, 0x69, + 0x6e, 0x67, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x0a, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, + 0x65, 0x72, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x65, 0x72, 0x52, 0x0a, 0x66, 0x6f, + 0x72, 0x77, 0x61, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x44, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, + 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x35, + 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, + 0x72, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 0x1a, 0x3e, 0x0a, 0x10, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, + 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, + 0x22, 0x9f, 0x02, 0x0a, 0x14, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x57, 0x69, + 0x74, 0x68, 0x6f, 0x75, 0x74, 0x53, 0x70, 0x65, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x67, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x67, 0x61, 0x6d, + 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x30, 0x0a, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, + 0x6f, 0x72, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x61, + 0x6e, 0x67, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, + 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1b, + 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x75, 0x72, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x53, 0x75, 0x72, 0x67, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x72, + 0x6f, 0x6f, 0x6d, 0x73, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0d, 0x72, 0x6f, 0x6f, 0x6d, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x73, 0x22, 0xfa, 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x27, 0x0a, 0x0f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x64, 0x65, 0x66, 0x69, 0x6e, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x05, 0x6c, 0x65, 0x61, + 0x73, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x48, 0x00, 0x52, 0x05, 0x6c, 0x65, 0x61, 0x73, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x63, 0x68, + 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x41, 0x74, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x22, + 0xe6, 0x02, 0x0a, 0x09, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, + 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, + 0x0a, 0x05, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x48, 0x00, 0x52, 0x05, + 0x6c, 0x65, 0x61, 0x73, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x63, 0x68, 0x65, + 0x64, 0x75, 0x6c, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, + 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x2d, 0x0a, 0x05, 0x69, 0x6e, + 0x70, 0x75, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, + 0x63, 0x74, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x43, 0x0a, 0x11, 0x65, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x08, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x10, 0x65, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x22, 0xc1, 0x01, 0x0a, 0x13, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x41, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, + 0x12, 0x1d, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x08, 0x48, 0x00, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, + 0x15, 0x0a, 0x03, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x03, + 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x6d, 0x61, 0x78, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x03, 0x6d, 0x61, 0x78, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, + 0x06, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, 0x6c, 0x69, + 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x48, 0x03, 0x52, 0x06, 0x70, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x64, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x69, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x61, + 0x78, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x7e, 0x0a, 0x0b, + 0x41, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6d, 0x69, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x61, 0x78, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6d, 0x61, 0x78, 0x22, 0xc9, 0x02, 0x0a, 0x0d, 0x53, 0x63, - 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x12, 0x0a, 0x04, 0x67, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x67, - 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x6f, 0x6f, - 0x6d, 0x73, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0d, 0x72, 0x6f, 0x6f, 0x6d, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, - 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x6f, 0x6f, 0x6d, 0x73, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x79, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x72, 0x6f, 0x6f, 0x6d, 0x73, 0x52, 0x65, 0x61, 0x64, - 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x6f, 0x6f, 0x6d, 0x73, 0x5f, 0x6f, 0x63, 0x63, 0x75, 0x70, - 0x69, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x72, 0x6f, 0x6f, 0x6d, 0x73, - 0x4f, 0x63, 0x63, 0x75, 0x70, 0x69, 0x65, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x6f, 0x6f, 0x6d, - 0x73, 0x5f, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0c, 0x72, 0x6f, 0x6f, 0x6d, 0x73, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x2b, 0x0a, - 0x11, 0x72, 0x6f, 0x6f, 0x6d, 0x73, 0x5f, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x69, - 0x6e, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x72, 0x6f, 0x6f, 0x6d, 0x73, 0x54, - 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x39, 0x0a, 0x0b, 0x61, 0x75, - 0x74, 0x6f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, - 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x61, 0x75, 0x74, 0x6f, 0x73, 0x63, - 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x42, 0x87, 0x01, 0x92, 0x41, 0x33, 0x12, 0x09, 0x0a, 0x07, 0x4d, - 0x61, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x2a, 0x02, 0x01, 0x02, 0x32, 0x10, 0x61, 0x70, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x3a, 0x10, 0x61, 0x70, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x0a, 0x23, - 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x6f, 0x70, 0x66, 0x72, 0x65, 0x65, 0x67, 0x61, 0x6d, 0x65, 0x73, - 0x2e, 0x6d, 0x61, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x76, 0x31, 0x5a, 0x2a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x74, 0x6f, 0x70, 0x66, 0x72, 0x65, 0x65, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2f, 0x6d, 0x61, 0x65, - 0x73, 0x74, 0x72, 0x6f, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6d, 0x61, 0x78, 0x12, 0x31, 0x0a, 0x06, 0x70, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x52, 0x06, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x61, 0x0a, 0x11, + 0x41, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, + 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x38, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, + 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, + 0x65, 0x72, 0x73, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x22, + 0x68, 0x0a, 0x10, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, + 0x65, 0x72, 0x73, 0x12, 0x41, 0x0a, 0x0e, 0x72, 0x6f, 0x6f, 0x6d, 0x5f, 0x6f, 0x63, 0x63, 0x75, + 0x70, 0x61, 0x6e, 0x63, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x4f, 0x63, 0x63, 0x75, 0x70, 0x61, 0x6e, + 0x63, 0x79, 0x48, 0x00, 0x52, 0x0d, 0x72, 0x6f, 0x6f, 0x6d, 0x4f, 0x63, 0x63, 0x75, 0x70, 0x61, + 0x6e, 0x63, 0x79, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x72, 0x6f, 0x6f, 0x6d, 0x5f, + 0x6f, 0x63, 0x63, 0x75, 0x70, 0x61, 0x6e, 0x63, 0x79, 0x22, 0x32, 0x0a, 0x0d, 0x52, 0x6f, 0x6f, + 0x6d, 0x4f, 0x63, 0x63, 0x75, 0x70, 0x61, 0x6e, 0x63, 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, + 0x61, 0x64, 0x79, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x0b, 0x72, 0x65, 0x61, 0x64, 0x79, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0x19, 0x0a, + 0x05, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x74, 0x6c, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x74, 0x74, 0x6c, 0x22, 0x61, 0x0a, 0x0e, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x84, 0x01, 0x0a, 0x10, + 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, + 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, + 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x41, 0x74, 0x22, 0xaa, 0x01, 0x0a, 0x09, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x65, 0x72, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x37, 0x0a, 0x07, 0x6f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x65, 0x72, 0x4f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x00, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, + 0x61, 0x0a, 0x10, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x33, 0x0a, + 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x22, 0x4f, 0x0a, 0x0f, 0x41, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, + 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, + 0x10, 0x0a, 0x03, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6d, 0x69, + 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x61, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, + 0x6d, 0x61, 0x78, 0x22, 0xc9, 0x02, 0x0a, 0x0d, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, + 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x67, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, + 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x6f, 0x6f, 0x6d, 0x73, 0x5f, 0x72, 0x65, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x72, 0x6f, 0x6f, + 0x6d, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x6f, + 0x6f, 0x6d, 0x73, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0a, 0x72, 0x6f, 0x6f, 0x6d, 0x73, 0x52, 0x65, 0x61, 0x64, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x72, + 0x6f, 0x6f, 0x6d, 0x73, 0x5f, 0x6f, 0x63, 0x63, 0x75, 0x70, 0x69, 0x65, 0x64, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0d, 0x72, 0x6f, 0x6f, 0x6d, 0x73, 0x4f, 0x63, 0x63, 0x75, 0x70, 0x69, + 0x65, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x6f, 0x6f, 0x6d, 0x73, 0x5f, 0x70, 0x65, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x72, 0x6f, 0x6f, 0x6d, 0x73, + 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x2b, 0x0a, 0x11, 0x72, 0x6f, 0x6f, 0x6d, 0x73, + 0x5f, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x10, 0x72, 0x6f, 0x6f, 0x6d, 0x73, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6e, 0x67, 0x12, 0x39, 0x0a, 0x0b, 0x61, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, 0x6c, + 0x69, 0x6e, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x0b, 0x61, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x42, + 0x87, 0x01, 0x92, 0x41, 0x33, 0x12, 0x09, 0x0a, 0x07, 0x4d, 0x61, 0x65, 0x73, 0x74, 0x72, 0x6f, + 0x2a, 0x02, 0x01, 0x02, 0x32, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x3a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x0a, 0x23, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x6f, + 0x70, 0x66, 0x72, 0x65, 0x65, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x6d, 0x61, 0x65, 0x73, 0x74, + 0x72, 0x6f, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x5a, 0x2a, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x6f, 0x70, 0x66, 0x72, 0x65, + 0x65, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2f, 0x6d, 0x61, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x2f, 0x70, + 0x6b, 0x67, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( @@ -2535,82 +2490,83 @@ func file_api_v1_messages_proto_rawDescGZIP() []byte { var file_api_v1_messages_proto_msgTypes = make([]protoimpl.MessageInfo, 29) var file_api_v1_messages_proto_goTypes = []interface{}{ (*Container)(nil), // 0: api.v1.Container - (*Annotation)(nil), // 1: api.v1.Annotation - (*OptionalContainer)(nil), // 2: api.v1.OptionalContainer - (*ContainerEnvironment)(nil), // 3: api.v1.ContainerEnvironment - (*ContainerEnvironmentValueFrom)(nil), // 4: api.v1.ContainerEnvironmentValueFrom - (*ContainerEnvironmentValueFromFieldRef)(nil), // 5: api.v1.ContainerEnvironmentValueFromFieldRef - (*ContainerEnvironmentValueFromSecretKeyRef)(nil), // 6: api.v1.ContainerEnvironmentValueFromSecretKeyRef - (*ContainerResources)(nil), // 7: api.v1.ContainerResources - (*ContainerPort)(nil), // 8: api.v1.ContainerPort - (*PortRange)(nil), // 9: api.v1.PortRange - (*Spec)(nil), // 10: api.v1.Spec - (*OptionalSpec)(nil), // 11: api.v1.OptionalSpec - (*Scheduler)(nil), // 12: api.v1.Scheduler - (*SchedulerWithoutSpec)(nil), // 13: api.v1.SchedulerWithoutSpec - (*ListOperationItem)(nil), // 14: api.v1.ListOperationItem - (*Operation)(nil), // 15: api.v1.Operation - (*OptionalAutoscaling)(nil), // 16: api.v1.OptionalAutoscaling - (*Autoscaling)(nil), // 17: api.v1.Autoscaling - (*AutoscalingPolicy)(nil), // 18: api.v1.AutoscalingPolicy - (*PolicyParameters)(nil), // 19: api.v1.PolicyParameters - (*RoomOccupancy)(nil), // 20: api.v1.RoomOccupancy - (*Lease)(nil), // 21: api.v1.Lease - (*OperationEvent)(nil), // 22: api.v1.OperationEvent - (*SchedulerVersion)(nil), // 23: api.v1.SchedulerVersion - (*Forwarder)(nil), // 24: api.v1.Forwarder - (*ForwarderOptions)(nil), // 25: api.v1.ForwarderOptions - (*AutoscalingInfo)(nil), // 26: api.v1.AutoscalingInfo - (*SchedulerInfo)(nil), // 27: api.v1.SchedulerInfo - nil, // 28: api.v1.Scheduler.AnnotationsEntry + (*OptionalContainer)(nil), // 1: api.v1.OptionalContainer + (*ContainerEnvironment)(nil), // 2: api.v1.ContainerEnvironment + (*ContainerEnvironmentValueFrom)(nil), // 3: api.v1.ContainerEnvironmentValueFrom + (*ContainerEnvironmentValueFromFieldRef)(nil), // 4: api.v1.ContainerEnvironmentValueFromFieldRef + (*ContainerEnvironmentValueFromSecretKeyRef)(nil), // 5: api.v1.ContainerEnvironmentValueFromSecretKeyRef + (*ContainerResources)(nil), // 6: api.v1.ContainerResources + (*ContainerPort)(nil), // 7: api.v1.ContainerPort + (*PortRange)(nil), // 8: api.v1.PortRange + (*Spec)(nil), // 9: api.v1.Spec + (*OptionalSpec)(nil), // 10: api.v1.OptionalSpec + (*Scheduler)(nil), // 11: api.v1.Scheduler + (*SchedulerWithoutSpec)(nil), // 12: api.v1.SchedulerWithoutSpec + (*ListOperationItem)(nil), // 13: api.v1.ListOperationItem + (*Operation)(nil), // 14: api.v1.Operation + (*OptionalAutoscaling)(nil), // 15: api.v1.OptionalAutoscaling + (*Autoscaling)(nil), // 16: api.v1.Autoscaling + (*AutoscalingPolicy)(nil), // 17: api.v1.AutoscalingPolicy + (*PolicyParameters)(nil), // 18: api.v1.PolicyParameters + (*RoomOccupancy)(nil), // 19: api.v1.RoomOccupancy + (*Lease)(nil), // 20: api.v1.Lease + (*OperationEvent)(nil), // 21: api.v1.OperationEvent + (*SchedulerVersion)(nil), // 22: api.v1.SchedulerVersion + (*Forwarder)(nil), // 23: api.v1.Forwarder + (*ForwarderOptions)(nil), // 24: api.v1.ForwarderOptions + (*AutoscalingInfo)(nil), // 25: api.v1.AutoscalingInfo + (*SchedulerInfo)(nil), // 26: api.v1.SchedulerInfo + nil, // 27: api.v1.Scheduler.AnnotationsEntry + nil, // 28: api.v1.Scheduler.LabelsEntry (*duration.Duration)(nil), // 29: google.protobuf.Duration (*timestamp.Timestamp)(nil), // 30: google.protobuf.Timestamp (*_struct.Struct)(nil), // 31: google.protobuf.Struct } var file_api_v1_messages_proto_depIdxs = []int32{ - 3, // 0: api.v1.Container.environment:type_name -> api.v1.ContainerEnvironment - 7, // 1: api.v1.Container.requests:type_name -> api.v1.ContainerResources - 7, // 2: api.v1.Container.limits:type_name -> api.v1.ContainerResources - 8, // 3: api.v1.Container.ports:type_name -> api.v1.ContainerPort - 3, // 4: api.v1.OptionalContainer.environment:type_name -> api.v1.ContainerEnvironment - 7, // 5: api.v1.OptionalContainer.requests:type_name -> api.v1.ContainerResources - 7, // 6: api.v1.OptionalContainer.limits:type_name -> api.v1.ContainerResources - 8, // 7: api.v1.OptionalContainer.ports:type_name -> api.v1.ContainerPort - 4, // 8: api.v1.ContainerEnvironment.value_from:type_name -> api.v1.ContainerEnvironmentValueFrom - 5, // 9: api.v1.ContainerEnvironmentValueFrom.field_ref:type_name -> api.v1.ContainerEnvironmentValueFromFieldRef - 6, // 10: api.v1.ContainerEnvironmentValueFrom.secret_key_ref:type_name -> api.v1.ContainerEnvironmentValueFromSecretKeyRef + 2, // 0: api.v1.Container.environment:type_name -> api.v1.ContainerEnvironment + 6, // 1: api.v1.Container.requests:type_name -> api.v1.ContainerResources + 6, // 2: api.v1.Container.limits:type_name -> api.v1.ContainerResources + 7, // 3: api.v1.Container.ports:type_name -> api.v1.ContainerPort + 2, // 4: api.v1.OptionalContainer.environment:type_name -> api.v1.ContainerEnvironment + 6, // 5: api.v1.OptionalContainer.requests:type_name -> api.v1.ContainerResources + 6, // 6: api.v1.OptionalContainer.limits:type_name -> api.v1.ContainerResources + 7, // 7: api.v1.OptionalContainer.ports:type_name -> api.v1.ContainerPort + 3, // 8: api.v1.ContainerEnvironment.value_from:type_name -> api.v1.ContainerEnvironmentValueFrom + 4, // 9: api.v1.ContainerEnvironmentValueFrom.field_ref:type_name -> api.v1.ContainerEnvironmentValueFromFieldRef + 5, // 10: api.v1.ContainerEnvironmentValueFrom.secret_key_ref:type_name -> api.v1.ContainerEnvironmentValueFromSecretKeyRef 29, // 11: api.v1.Spec.termination_grace_period:type_name -> google.protobuf.Duration 0, // 12: api.v1.Spec.containers:type_name -> api.v1.Container 29, // 13: api.v1.OptionalSpec.termination_grace_period:type_name -> google.protobuf.Duration - 2, // 14: api.v1.OptionalSpec.containers:type_name -> api.v1.OptionalContainer - 9, // 15: api.v1.Scheduler.port_range:type_name -> api.v1.PortRange + 1, // 14: api.v1.OptionalSpec.containers:type_name -> api.v1.OptionalContainer + 8, // 15: api.v1.Scheduler.port_range:type_name -> api.v1.PortRange 30, // 16: api.v1.Scheduler.created_at:type_name -> google.protobuf.Timestamp - 10, // 17: api.v1.Scheduler.spec:type_name -> api.v1.Spec - 17, // 18: api.v1.Scheduler.autoscaling:type_name -> api.v1.Autoscaling - 24, // 19: api.v1.Scheduler.forwarders:type_name -> api.v1.Forwarder - 28, // 20: api.v1.Scheduler.annotations:type_name -> api.v1.Scheduler.AnnotationsEntry - 9, // 21: api.v1.SchedulerWithoutSpec.port_range:type_name -> api.v1.PortRange - 30, // 22: api.v1.SchedulerWithoutSpec.created_at:type_name -> google.protobuf.Timestamp - 21, // 23: api.v1.ListOperationItem.lease:type_name -> api.v1.Lease - 30, // 24: api.v1.ListOperationItem.created_at:type_name -> google.protobuf.Timestamp - 21, // 25: api.v1.Operation.lease:type_name -> api.v1.Lease - 30, // 26: api.v1.Operation.created_at:type_name -> google.protobuf.Timestamp - 31, // 27: api.v1.Operation.input:type_name -> google.protobuf.Struct - 22, // 28: api.v1.Operation.execution_history:type_name -> api.v1.OperationEvent - 18, // 29: api.v1.OptionalAutoscaling.policy:type_name -> api.v1.AutoscalingPolicy - 18, // 30: api.v1.Autoscaling.policy:type_name -> api.v1.AutoscalingPolicy - 19, // 31: api.v1.AutoscalingPolicy.parameters:type_name -> api.v1.PolicyParameters - 20, // 32: api.v1.PolicyParameters.room_occupancy:type_name -> api.v1.RoomOccupancy - 30, // 33: api.v1.OperationEvent.created_at:type_name -> google.protobuf.Timestamp - 30, // 34: api.v1.SchedulerVersion.created_at:type_name -> google.protobuf.Timestamp - 25, // 35: api.v1.Forwarder.options:type_name -> api.v1.ForwarderOptions - 31, // 36: api.v1.ForwarderOptions.metadata:type_name -> google.protobuf.Struct - 26, // 37: api.v1.SchedulerInfo.autoscaling:type_name -> api.v1.AutoscalingInfo - 38, // [38:38] is the sub-list for method output_type - 38, // [38:38] is the sub-list for method input_type - 38, // [38:38] is the sub-list for extension type_name - 38, // [38:38] is the sub-list for extension extendee - 0, // [0:38] is the sub-list for field type_name + 9, // 17: api.v1.Scheduler.spec:type_name -> api.v1.Spec + 16, // 18: api.v1.Scheduler.autoscaling:type_name -> api.v1.Autoscaling + 23, // 19: api.v1.Scheduler.forwarders:type_name -> api.v1.Forwarder + 27, // 20: api.v1.Scheduler.annotations:type_name -> api.v1.Scheduler.AnnotationsEntry + 28, // 21: api.v1.Scheduler.labels:type_name -> api.v1.Scheduler.LabelsEntry + 8, // 22: api.v1.SchedulerWithoutSpec.port_range:type_name -> api.v1.PortRange + 30, // 23: api.v1.SchedulerWithoutSpec.created_at:type_name -> google.protobuf.Timestamp + 20, // 24: api.v1.ListOperationItem.lease:type_name -> api.v1.Lease + 30, // 25: api.v1.ListOperationItem.created_at:type_name -> google.protobuf.Timestamp + 20, // 26: api.v1.Operation.lease:type_name -> api.v1.Lease + 30, // 27: api.v1.Operation.created_at:type_name -> google.protobuf.Timestamp + 31, // 28: api.v1.Operation.input:type_name -> google.protobuf.Struct + 21, // 29: api.v1.Operation.execution_history:type_name -> api.v1.OperationEvent + 17, // 30: api.v1.OptionalAutoscaling.policy:type_name -> api.v1.AutoscalingPolicy + 17, // 31: api.v1.Autoscaling.policy:type_name -> api.v1.AutoscalingPolicy + 18, // 32: api.v1.AutoscalingPolicy.parameters:type_name -> api.v1.PolicyParameters + 19, // 33: api.v1.PolicyParameters.room_occupancy:type_name -> api.v1.RoomOccupancy + 30, // 34: api.v1.OperationEvent.created_at:type_name -> google.protobuf.Timestamp + 30, // 35: api.v1.SchedulerVersion.created_at:type_name -> google.protobuf.Timestamp + 24, // 36: api.v1.Forwarder.options:type_name -> api.v1.ForwarderOptions + 31, // 37: api.v1.ForwarderOptions.metadata:type_name -> google.protobuf.Struct + 25, // 38: api.v1.SchedulerInfo.autoscaling:type_name -> api.v1.AutoscalingInfo + 39, // [39:39] is the sub-list for method output_type + 39, // [39:39] is the sub-list for method input_type + 39, // [39:39] is the sub-list for extension type_name + 39, // [39:39] is the sub-list for extension extendee + 0, // [0:39] is the sub-list for field type_name } func init() { file_api_v1_messages_proto_init() } @@ -2632,18 +2588,6 @@ func file_api_v1_messages_proto_init() { } } file_api_v1_messages_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Annotation); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_v1_messages_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OptionalContainer); i { case 0: return &v.state @@ -2655,7 +2599,7 @@ func file_api_v1_messages_proto_init() { return nil } } - file_api_v1_messages_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_api_v1_messages_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ContainerEnvironment); i { case 0: return &v.state @@ -2667,7 +2611,7 @@ func file_api_v1_messages_proto_init() { return nil } } - file_api_v1_messages_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_api_v1_messages_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ContainerEnvironmentValueFrom); i { case 0: return &v.state @@ -2679,7 +2623,7 @@ func file_api_v1_messages_proto_init() { return nil } } - file_api_v1_messages_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_api_v1_messages_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ContainerEnvironmentValueFromFieldRef); i { case 0: return &v.state @@ -2691,7 +2635,7 @@ func file_api_v1_messages_proto_init() { return nil } } - file_api_v1_messages_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + file_api_v1_messages_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ContainerEnvironmentValueFromSecretKeyRef); i { case 0: return &v.state @@ -2703,7 +2647,7 @@ func file_api_v1_messages_proto_init() { return nil } } - file_api_v1_messages_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + file_api_v1_messages_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ContainerResources); i { case 0: return &v.state @@ -2715,7 +2659,7 @@ func file_api_v1_messages_proto_init() { return nil } } - file_api_v1_messages_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + file_api_v1_messages_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ContainerPort); i { case 0: return &v.state @@ -2727,7 +2671,7 @@ func file_api_v1_messages_proto_init() { return nil } } - file_api_v1_messages_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + file_api_v1_messages_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PortRange); i { case 0: return &v.state @@ -2739,7 +2683,7 @@ func file_api_v1_messages_proto_init() { return nil } } - file_api_v1_messages_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + file_api_v1_messages_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Spec); i { case 0: return &v.state @@ -2751,7 +2695,7 @@ func file_api_v1_messages_proto_init() { return nil } } - file_api_v1_messages_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + file_api_v1_messages_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OptionalSpec); i { case 0: return &v.state @@ -2763,7 +2707,7 @@ func file_api_v1_messages_proto_init() { return nil } } - file_api_v1_messages_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + file_api_v1_messages_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Scheduler); i { case 0: return &v.state @@ -2775,7 +2719,7 @@ func file_api_v1_messages_proto_init() { return nil } } - file_api_v1_messages_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + file_api_v1_messages_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SchedulerWithoutSpec); i { case 0: return &v.state @@ -2787,7 +2731,7 @@ func file_api_v1_messages_proto_init() { return nil } } - file_api_v1_messages_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + file_api_v1_messages_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListOperationItem); i { case 0: return &v.state @@ -2799,7 +2743,7 @@ func file_api_v1_messages_proto_init() { return nil } } - file_api_v1_messages_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + file_api_v1_messages_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Operation); i { case 0: return &v.state @@ -2811,7 +2755,7 @@ func file_api_v1_messages_proto_init() { return nil } } - file_api_v1_messages_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + file_api_v1_messages_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OptionalAutoscaling); i { case 0: return &v.state @@ -2823,7 +2767,7 @@ func file_api_v1_messages_proto_init() { return nil } } - file_api_v1_messages_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + file_api_v1_messages_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Autoscaling); i { case 0: return &v.state @@ -2835,7 +2779,7 @@ func file_api_v1_messages_proto_init() { return nil } } - file_api_v1_messages_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + file_api_v1_messages_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AutoscalingPolicy); i { case 0: return &v.state @@ -2847,7 +2791,7 @@ func file_api_v1_messages_proto_init() { return nil } } - file_api_v1_messages_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + file_api_v1_messages_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PolicyParameters); i { case 0: return &v.state @@ -2859,7 +2803,7 @@ func file_api_v1_messages_proto_init() { return nil } } - file_api_v1_messages_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + file_api_v1_messages_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RoomOccupancy); i { case 0: return &v.state @@ -2871,7 +2815,7 @@ func file_api_v1_messages_proto_init() { return nil } } - file_api_v1_messages_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + file_api_v1_messages_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Lease); i { case 0: return &v.state @@ -2883,7 +2827,7 @@ func file_api_v1_messages_proto_init() { return nil } } - file_api_v1_messages_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + file_api_v1_messages_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OperationEvent); i { case 0: return &v.state @@ -2895,7 +2839,7 @@ func file_api_v1_messages_proto_init() { return nil } } - file_api_v1_messages_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + file_api_v1_messages_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SchedulerVersion); i { case 0: return &v.state @@ -2907,7 +2851,7 @@ func file_api_v1_messages_proto_init() { return nil } } - file_api_v1_messages_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + file_api_v1_messages_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Forwarder); i { case 0: return &v.state @@ -2919,7 +2863,7 @@ func file_api_v1_messages_proto_init() { return nil } } - file_api_v1_messages_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + file_api_v1_messages_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ForwarderOptions); i { case 0: return &v.state @@ -2931,7 +2875,7 @@ func file_api_v1_messages_proto_init() { return nil } } - file_api_v1_messages_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + file_api_v1_messages_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AutoscalingInfo); i { case 0: return &v.state @@ -2943,7 +2887,7 @@ func file_api_v1_messages_proto_init() { return nil } } - file_api_v1_messages_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + file_api_v1_messages_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SchedulerInfo); i { case 0: return &v.state @@ -2956,16 +2900,16 @@ func file_api_v1_messages_proto_init() { } } } + file_api_v1_messages_proto_msgTypes[1].OneofWrappers = []interface{}{} file_api_v1_messages_proto_msgTypes[2].OneofWrappers = []interface{}{} file_api_v1_messages_proto_msgTypes[3].OneofWrappers = []interface{}{} - file_api_v1_messages_proto_msgTypes[4].OneofWrappers = []interface{}{} + file_api_v1_messages_proto_msgTypes[10].OneofWrappers = []interface{}{} file_api_v1_messages_proto_msgTypes[11].OneofWrappers = []interface{}{} - file_api_v1_messages_proto_msgTypes[12].OneofWrappers = []interface{}{} + file_api_v1_messages_proto_msgTypes[13].OneofWrappers = []interface{}{} file_api_v1_messages_proto_msgTypes[14].OneofWrappers = []interface{}{} file_api_v1_messages_proto_msgTypes[15].OneofWrappers = []interface{}{} - file_api_v1_messages_proto_msgTypes[16].OneofWrappers = []interface{}{} - file_api_v1_messages_proto_msgTypes[19].OneofWrappers = []interface{}{} - file_api_v1_messages_proto_msgTypes[24].OneofWrappers = []interface{}{} + file_api_v1_messages_proto_msgTypes[18].OneofWrappers = []interface{}{} + file_api_v1_messages_proto_msgTypes[23].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/pkg/api/v1/operations.pb.go b/pkg/api/v1/operations.pb.go index 00b9d2ea7..7f1e4b77a 100644 --- a/pkg/api/v1/operations.pb.go +++ b/pkg/api/v1/operations.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.30.0 +// protoc-gen-go v1.31.0 // protoc v3.17.3 // source: api/v1/operations.proto diff --git a/pkg/api/v1/operations_grpc.pb.go b/pkg/api/v1/operations_grpc.pb.go index 6016512ed..0e322a5d6 100644 --- a/pkg/api/v1/operations_grpc.pb.go +++ b/pkg/api/v1/operations_grpc.pb.go @@ -1,4 +1,8 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.3.0 +// - protoc v3.17.3 +// source: api/v1/operations.proto package v1 @@ -14,6 +18,12 @@ import ( // Requires gRPC-Go v1.32.0 or later. const _ = grpc.SupportPackageIsVersion7 +const ( + OperationsService_ListOperations_FullMethodName = "/api.v1.OperationsService/ListOperations" + OperationsService_CancelOperation_FullMethodName = "/api.v1.OperationsService/CancelOperation" + OperationsService_GetOperation_FullMethodName = "/api.v1.OperationsService/GetOperation" +) + // OperationsServiceClient is the client API for OperationsService service. // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. @@ -36,7 +46,7 @@ func NewOperationsServiceClient(cc grpc.ClientConnInterface) OperationsServiceCl func (c *operationsServiceClient) ListOperations(ctx context.Context, in *ListOperationsRequest, opts ...grpc.CallOption) (*ListOperationsResponse, error) { out := new(ListOperationsResponse) - err := c.cc.Invoke(ctx, "/api.v1.OperationsService/ListOperations", in, out, opts...) + err := c.cc.Invoke(ctx, OperationsService_ListOperations_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -45,7 +55,7 @@ func (c *operationsServiceClient) ListOperations(ctx context.Context, in *ListOp func (c *operationsServiceClient) CancelOperation(ctx context.Context, in *CancelOperationRequest, opts ...grpc.CallOption) (*CancelOperationResponse, error) { out := new(CancelOperationResponse) - err := c.cc.Invoke(ctx, "/api.v1.OperationsService/CancelOperation", in, out, opts...) + err := c.cc.Invoke(ctx, OperationsService_CancelOperation_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -54,7 +64,7 @@ func (c *operationsServiceClient) CancelOperation(ctx context.Context, in *Cance func (c *operationsServiceClient) GetOperation(ctx context.Context, in *GetOperationRequest, opts ...grpc.CallOption) (*GetOperationResponse, error) { out := new(GetOperationResponse) - err := c.cc.Invoke(ctx, "/api.v1.OperationsService/GetOperation", in, out, opts...) + err := c.cc.Invoke(ctx, OperationsService_GetOperation_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -110,7 +120,7 @@ func _OperationsService_ListOperations_Handler(srv interface{}, ctx context.Cont } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/api.v1.OperationsService/ListOperations", + FullMethod: OperationsService_ListOperations_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(OperationsServiceServer).ListOperations(ctx, req.(*ListOperationsRequest)) @@ -128,7 +138,7 @@ func _OperationsService_CancelOperation_Handler(srv interface{}, ctx context.Con } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/api.v1.OperationsService/CancelOperation", + FullMethod: OperationsService_CancelOperation_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(OperationsServiceServer).CancelOperation(ctx, req.(*CancelOperationRequest)) @@ -146,7 +156,7 @@ func _OperationsService_GetOperation_Handler(srv interface{}, ctx context.Contex } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/api.v1.OperationsService/GetOperation", + FullMethod: OperationsService_GetOperation_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(OperationsServiceServer).GetOperation(ctx, req.(*GetOperationRequest)) diff --git a/pkg/api/v1/rooms.pb.go b/pkg/api/v1/rooms.pb.go index a03d9c1d6..ad8527e79 100644 --- a/pkg/api/v1/rooms.pb.go +++ b/pkg/api/v1/rooms.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.30.0 +// protoc-gen-go v1.31.0 // protoc v3.17.3 // source: api/v1/rooms.proto diff --git a/pkg/api/v1/rooms_grpc.pb.go b/pkg/api/v1/rooms_grpc.pb.go index 39a4650c3..163e02575 100644 --- a/pkg/api/v1/rooms_grpc.pb.go +++ b/pkg/api/v1/rooms_grpc.pb.go @@ -1,4 +1,8 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.3.0 +// - protoc v3.17.3 +// source: api/v1/rooms.proto package v1 @@ -14,6 +18,14 @@ import ( // Requires gRPC-Go v1.32.0 or later. const _ = grpc.SupportPackageIsVersion7 +const ( + RoomsService_UpdateRoomWithPing_FullMethodName = "/api.v1.RoomsService/UpdateRoomWithPing" + RoomsService_ForwardRoomEvent_FullMethodName = "/api.v1.RoomsService/ForwardRoomEvent" + RoomsService_ForwardPlayerEvent_FullMethodName = "/api.v1.RoomsService/ForwardPlayerEvent" + RoomsService_UpdateRoomStatus_FullMethodName = "/api.v1.RoomsService/UpdateRoomStatus" + RoomsService_GetRoomAddress_FullMethodName = "/api.v1.RoomsService/GetRoomAddress" +) + // RoomsServiceClient is the client API for RoomsService service. // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. @@ -42,7 +54,7 @@ func NewRoomsServiceClient(cc grpc.ClientConnInterface) RoomsServiceClient { func (c *roomsServiceClient) UpdateRoomWithPing(ctx context.Context, in *UpdateRoomWithPingRequest, opts ...grpc.CallOption) (*UpdateRoomWithPingResponse, error) { out := new(UpdateRoomWithPingResponse) - err := c.cc.Invoke(ctx, "/api.v1.RoomsService/UpdateRoomWithPing", in, out, opts...) + err := c.cc.Invoke(ctx, RoomsService_UpdateRoomWithPing_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -51,7 +63,7 @@ func (c *roomsServiceClient) UpdateRoomWithPing(ctx context.Context, in *UpdateR func (c *roomsServiceClient) ForwardRoomEvent(ctx context.Context, in *ForwardRoomEventRequest, opts ...grpc.CallOption) (*ForwardRoomEventResponse, error) { out := new(ForwardRoomEventResponse) - err := c.cc.Invoke(ctx, "/api.v1.RoomsService/ForwardRoomEvent", in, out, opts...) + err := c.cc.Invoke(ctx, RoomsService_ForwardRoomEvent_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -60,7 +72,7 @@ func (c *roomsServiceClient) ForwardRoomEvent(ctx context.Context, in *ForwardRo func (c *roomsServiceClient) ForwardPlayerEvent(ctx context.Context, in *ForwardPlayerEventRequest, opts ...grpc.CallOption) (*ForwardPlayerEventResponse, error) { out := new(ForwardPlayerEventResponse) - err := c.cc.Invoke(ctx, "/api.v1.RoomsService/ForwardPlayerEvent", in, out, opts...) + err := c.cc.Invoke(ctx, RoomsService_ForwardPlayerEvent_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -70,7 +82,7 @@ func (c *roomsServiceClient) ForwardPlayerEvent(ctx context.Context, in *Forward // Deprecated: Do not use. func (c *roomsServiceClient) UpdateRoomStatus(ctx context.Context, in *UpdateRoomStatusRequest, opts ...grpc.CallOption) (*UpdateRoomStatusResponse, error) { out := new(UpdateRoomStatusResponse) - err := c.cc.Invoke(ctx, "/api.v1.RoomsService/UpdateRoomStatus", in, out, opts...) + err := c.cc.Invoke(ctx, RoomsService_UpdateRoomStatus_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -80,7 +92,7 @@ func (c *roomsServiceClient) UpdateRoomStatus(ctx context.Context, in *UpdateRoo // Deprecated: Do not use. func (c *roomsServiceClient) GetRoomAddress(ctx context.Context, in *GetRoomAddressRequest, opts ...grpc.CallOption) (*GetRoomAddressResponse, error) { out := new(GetRoomAddressResponse) - err := c.cc.Invoke(ctx, "/api.v1.RoomsService/GetRoomAddress", in, out, opts...) + err := c.cc.Invoke(ctx, RoomsService_GetRoomAddress_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -148,7 +160,7 @@ func _RoomsService_UpdateRoomWithPing_Handler(srv interface{}, ctx context.Conte } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/api.v1.RoomsService/UpdateRoomWithPing", + FullMethod: RoomsService_UpdateRoomWithPing_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RoomsServiceServer).UpdateRoomWithPing(ctx, req.(*UpdateRoomWithPingRequest)) @@ -166,7 +178,7 @@ func _RoomsService_ForwardRoomEvent_Handler(srv interface{}, ctx context.Context } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/api.v1.RoomsService/ForwardRoomEvent", + FullMethod: RoomsService_ForwardRoomEvent_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RoomsServiceServer).ForwardRoomEvent(ctx, req.(*ForwardRoomEventRequest)) @@ -184,7 +196,7 @@ func _RoomsService_ForwardPlayerEvent_Handler(srv interface{}, ctx context.Conte } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/api.v1.RoomsService/ForwardPlayerEvent", + FullMethod: RoomsService_ForwardPlayerEvent_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RoomsServiceServer).ForwardPlayerEvent(ctx, req.(*ForwardPlayerEventRequest)) @@ -202,7 +214,7 @@ func _RoomsService_UpdateRoomStatus_Handler(srv interface{}, ctx context.Context } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/api.v1.RoomsService/UpdateRoomStatus", + FullMethod: RoomsService_UpdateRoomStatus_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RoomsServiceServer).UpdateRoomStatus(ctx, req.(*UpdateRoomStatusRequest)) @@ -220,7 +232,7 @@ func _RoomsService_GetRoomAddress_Handler(srv interface{}, ctx context.Context, } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/api.v1.RoomsService/GetRoomAddress", + FullMethod: RoomsService_GetRoomAddress_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RoomsServiceServer).GetRoomAddress(ctx, req.(*GetRoomAddressRequest)) diff --git a/pkg/api/v1/schedulers.pb.go b/pkg/api/v1/schedulers.pb.go index 194d6cbba..6110f3f0e 100644 --- a/pkg/api/v1/schedulers.pb.go +++ b/pkg/api/v1/schedulers.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.30.0 +// protoc-gen-go v1.31.0 // protoc v3.17.3 // source: api/v1/schedulers.proto @@ -211,6 +211,8 @@ type CreateSchedulerRequest struct { Forwarders []*Forwarder `protobuf:"bytes,8,rep,name=forwarders,proto3" json:"forwarders,omitempty"` // Add annotations for scheduler Annotations map[string]string `protobuf:"bytes,9,rep,name=annotations,proto3" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Add labels for scheduler + Labels map[string]string `protobuf:"bytes,10,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *CreateSchedulerRequest) Reset() { @@ -308,6 +310,13 @@ func (x *CreateSchedulerRequest) GetAnnotations() map[string]string { return nil } +func (x *CreateSchedulerRequest) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + // Get Scheduler operation request type GetSchedulerRequest struct { state protoimpl.MessageState @@ -439,6 +448,8 @@ type NewSchedulerVersionRequest struct { Forwarders []*Forwarder `protobuf:"bytes,8,rep,name=forwarders,proto3" json:"forwarders,omitempty"` // New annotations for scheduler Annotations map[string]string `protobuf:"bytes,9,rep,name=annotations,proto3" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // New labels for scheduler + Labels map[string]string `protobuf:"bytes,10,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *NewSchedulerVersionRequest) Reset() { @@ -536,6 +547,13 @@ func (x *NewSchedulerVersionRequest) GetAnnotations() map[string]string { return nil } +func (x *NewSchedulerVersionRequest) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + // Update schedule operation response payload. type NewSchedulerVersionResponse struct { state protoimpl.MessageState @@ -607,6 +625,8 @@ type PatchSchedulerRequest struct { Forwarders []*Forwarder `protobuf:"bytes,7,rep,name=forwarders,proto3" json:"forwarders,omitempty"` // Annotations declaration for the scheduler Annotations map[string]string `protobuf:"bytes,8,rep,name=annotations,proto3" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Labels declaration for the scheduler + Labels map[string]string `protobuf:"bytes,9,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *PatchSchedulerRequest) Reset() { @@ -697,6 +717,13 @@ func (x *PatchSchedulerRequest) GetAnnotations() map[string]string { return nil } +func (x *PatchSchedulerRequest) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + // PatchSchedulerResponse have the operation response id that represents the operation creted to this change. type PatchSchedulerResponse struct { state protoimpl.MessageState @@ -1191,7 +1218,7 @@ var file_api_v1_schedulers_proto_rawDesc = []byte{ 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x09, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x52, 0x09, 0x73, 0x63, - 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x22, 0xea, 0x03, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, + 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x22, 0xe9, 0x04, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x61, 0x6d, 0x65, 0x18, 0x02, @@ -1217,86 +1244,110 @@ var file_api_v1_schedulers_proto_rawDesc = []byte{ 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x3e, 0x0a, 0x10, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x3a, 0x02, 0x38, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, - 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x68, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, - 0x75, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x37, 0x0a, 0x0e, 0x73, - 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x10, 0x92, 0x82, 0x19, 0x0c, 0x5e, 0x28, 0x3f, 0x21, 0x69, 0x6e, 0x66, - 0x6f, 0x24, 0x29, 0x2e, 0x2a, 0x52, 0x0d, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x47, - 0x0a, 0x14, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x09, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, - 0x6c, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x52, 0x09, 0x73, 0x63, - 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x22, 0xf2, 0x03, 0x0a, 0x1a, 0x4e, 0x65, 0x77, 0x53, - 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x61, - 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x67, 0x61, 0x6d, 0x65, 0x12, 0x20, - 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x70, 0x65, 0x63, 0x52, 0x04, 0x73, 0x70, 0x65, 0x63, - 0x12, 0x30, 0x0a, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, - 0x72, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x61, 0x6e, - 0x67, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x75, 0x72, 0x67, 0x65, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x53, 0x75, 0x72, 0x67, 0x65, 0x12, - 0x25, 0x0a, 0x0e, 0x72, 0x6f, 0x6f, 0x6d, 0x73, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x72, 0x6f, 0x6f, 0x6d, 0x73, 0x52, 0x65, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x12, 0x3a, 0x0a, 0x0b, 0x61, 0x75, 0x74, 0x6f, 0x73, 0x63, - 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, - 0x48, 0x00, 0x52, 0x0b, 0x61, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x88, - 0x01, 0x01, 0x12, 0x31, 0x0a, 0x0a, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x65, 0x72, 0x73, - 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, - 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x65, 0x72, 0x52, 0x0a, 0x66, 0x6f, 0x72, 0x77, 0x61, - 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x55, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x65, 0x77, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x41, - 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x3e, 0x0a, 0x10, - 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, - 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x0e, 0x0a, 0x0c, - 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x40, 0x0a, 0x1b, - 0x4e, 0x65, 0x77, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0xb1, - 0x04, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x63, 0x68, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, - 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2d, 0x0a, 0x04, - 0x73, 0x70, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x70, 0x65, 0x63, - 0x48, 0x00, 0x52, 0x04, 0x73, 0x70, 0x65, 0x63, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x0a, 0x70, - 0x6f, 0x72, 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x11, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x61, 0x6e, - 0x67, 0x65, 0x48, 0x01, 0x52, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x75, 0x72, 0x67, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x53, 0x75, 0x72, 0x67, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x72, 0x6f, 0x6f, 0x6d, 0x73, 0x5f, 0x72, 0x65, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x48, 0x03, 0x52, 0x0d, - 0x72, 0x6f, 0x6f, 0x6d, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x88, 0x01, 0x01, - 0x12, 0x42, 0x0a, 0x0b, 0x61, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x41, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, 0x6c, 0x69, - 0x6e, 0x67, 0x48, 0x04, 0x52, 0x0b, 0x61, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, - 0x67, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x0a, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x65, - 0x72, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, - 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x65, 0x72, 0x52, 0x0a, 0x66, 0x6f, 0x72, - 0x77, 0x61, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x50, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x74, 0x63, 0x68, 0x53, 0x63, 0x68, 0x65, 0x64, - 0x75, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x61, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x3e, 0x0a, 0x10, 0x41, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x42, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0a, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x1a, 0x3e, 0x0a, 0x10, 0x41, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, + 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, 0x6c, + 0x69, 0x6e, 0x67, 0x22, 0x68, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, + 0x6c, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x37, 0x0a, 0x0e, 0x73, 0x63, + 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x10, 0x92, 0x82, 0x19, 0x0c, 0x5e, 0x28, 0x3f, 0x21, 0x69, 0x6e, 0x66, 0x6f, + 0x24, 0x29, 0x2e, 0x2a, 0x52, 0x0d, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x47, 0x0a, + 0x14, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x09, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, + 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x52, 0x09, 0x73, 0x63, 0x68, + 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x22, 0xf5, 0x04, 0x0a, 0x1a, 0x4e, 0x65, 0x77, 0x53, 0x63, + 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x67, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, + 0x04, 0x73, 0x70, 0x65, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x70, 0x65, 0x63, 0x52, 0x04, 0x73, 0x70, 0x65, 0x63, 0x12, + 0x30, 0x0a, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x72, + 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x61, 0x6e, 0x67, + 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x75, 0x72, 0x67, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x53, 0x75, 0x72, 0x67, 0x65, 0x12, 0x25, + 0x0a, 0x0e, 0x72, 0x6f, 0x6f, 0x6d, 0x73, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x72, 0x6f, 0x6f, 0x6d, 0x73, 0x52, 0x65, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x73, 0x12, 0x3a, 0x0a, 0x0b, 0x61, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, + 0x6c, 0x69, 0x6e, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x48, + 0x00, 0x52, 0x0b, 0x61, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x88, 0x01, + 0x01, 0x12, 0x31, 0x0a, 0x0a, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x65, 0x72, 0x73, 0x18, + 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x46, + 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x65, 0x72, 0x52, 0x0a, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, + 0x64, 0x65, 0x72, 0x73, 0x12, 0x55, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x4e, 0x65, 0x77, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x41, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, + 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x46, 0x0a, 0x06, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x65, 0x77, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, + 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, + 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x73, 0x1a, 0x3e, 0x0a, 0x10, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x0e, + 0x0a, 0x0c, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0x40, + 0x0a, 0x1b, 0x4e, 0x65, 0x77, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, + 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, + 0x22, 0xaf, 0x05, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x63, 0x68, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, + 0x6c, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2d, + 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x70, + 0x65, 0x63, 0x48, 0x00, 0x52, 0x04, 0x73, 0x70, 0x65, 0x63, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, + 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x52, + 0x61, 0x6e, 0x67, 0x65, 0x48, 0x01, 0x52, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x61, 0x6e, 0x67, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x75, 0x72, 0x67, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x53, 0x75, + 0x72, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x72, 0x6f, 0x6f, 0x6d, 0x73, 0x5f, + 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x48, 0x03, + 0x52, 0x0d, 0x72, 0x6f, 0x6f, 0x6d, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x88, + 0x01, 0x01, 0x12, 0x42, 0x0a, 0x0b, 0x61, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, + 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x41, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, + 0x6c, 0x69, 0x6e, 0x67, 0x48, 0x04, 0x52, 0x0b, 0x61, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, 0x6c, + 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x0a, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, + 0x64, 0x65, 0x72, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x65, 0x72, 0x52, 0x0a, 0x66, + 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x50, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x74, 0x63, 0x68, 0x53, 0x63, 0x68, + 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x41, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, + 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x41, 0x0a, 0x06, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x74, 0x63, 0x68, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, + 0x6c, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x1a, 0x3e, + 0x0a, 0x10, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x39, + 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x70, @@ -1438,7 +1489,7 @@ func file_api_v1_schedulers_proto_rawDescGZIP() []byte { return file_api_v1_schedulers_proto_rawDescData } -var file_api_v1_schedulers_proto_msgTypes = make([]protoimpl.MessageInfo, 21) +var file_api_v1_schedulers_proto_msgTypes = make([]protoimpl.MessageInfo, 24) var file_api_v1_schedulers_proto_goTypes = []interface{}{ (*ListSchedulersRequest)(nil), // 0: api.v1.ListSchedulersRequest (*ListSchedulersResponse)(nil), // 1: api.v1.ListSchedulersResponse @@ -1459,65 +1510,71 @@ var file_api_v1_schedulers_proto_goTypes = []interface{}{ (*DeleteSchedulerRequest)(nil), // 16: api.v1.DeleteSchedulerRequest (*DeleteSchedulerResponse)(nil), // 17: api.v1.DeleteSchedulerResponse nil, // 18: api.v1.CreateSchedulerRequest.AnnotationsEntry - nil, // 19: api.v1.NewSchedulerVersionRequest.AnnotationsEntry - nil, // 20: api.v1.PatchSchedulerRequest.AnnotationsEntry - (*SchedulerWithoutSpec)(nil), // 21: api.v1.SchedulerWithoutSpec - (*Scheduler)(nil), // 22: api.v1.Scheduler - (*Spec)(nil), // 23: api.v1.Spec - (*PortRange)(nil), // 24: api.v1.PortRange - (*Autoscaling)(nil), // 25: api.v1.Autoscaling - (*Forwarder)(nil), // 26: api.v1.Forwarder - (*OptionalSpec)(nil), // 27: api.v1.OptionalSpec - (*OptionalAutoscaling)(nil), // 28: api.v1.OptionalAutoscaling - (*SchedulerVersion)(nil), // 29: api.v1.SchedulerVersion - (*SchedulerInfo)(nil), // 30: api.v1.SchedulerInfo - (*descriptor.FieldOptions)(nil), // 31: google.protobuf.FieldOptions + nil, // 19: api.v1.CreateSchedulerRequest.LabelsEntry + nil, // 20: api.v1.NewSchedulerVersionRequest.AnnotationsEntry + nil, // 21: api.v1.NewSchedulerVersionRequest.LabelsEntry + nil, // 22: api.v1.PatchSchedulerRequest.AnnotationsEntry + nil, // 23: api.v1.PatchSchedulerRequest.LabelsEntry + (*SchedulerWithoutSpec)(nil), // 24: api.v1.SchedulerWithoutSpec + (*Scheduler)(nil), // 25: api.v1.Scheduler + (*Spec)(nil), // 26: api.v1.Spec + (*PortRange)(nil), // 27: api.v1.PortRange + (*Autoscaling)(nil), // 28: api.v1.Autoscaling + (*Forwarder)(nil), // 29: api.v1.Forwarder + (*OptionalSpec)(nil), // 30: api.v1.OptionalSpec + (*OptionalAutoscaling)(nil), // 31: api.v1.OptionalAutoscaling + (*SchedulerVersion)(nil), // 32: api.v1.SchedulerVersion + (*SchedulerInfo)(nil), // 33: api.v1.SchedulerInfo + (*descriptor.FieldOptions)(nil), // 34: google.protobuf.FieldOptions } var file_api_v1_schedulers_proto_depIdxs = []int32{ - 21, // 0: api.v1.ListSchedulersResponse.schedulers:type_name -> api.v1.SchedulerWithoutSpec - 22, // 1: api.v1.CreateSchedulerResponse.scheduler:type_name -> api.v1.Scheduler - 23, // 2: api.v1.CreateSchedulerRequest.spec:type_name -> api.v1.Spec - 24, // 3: api.v1.CreateSchedulerRequest.port_range:type_name -> api.v1.PortRange - 25, // 4: api.v1.CreateSchedulerRequest.autoscaling:type_name -> api.v1.Autoscaling - 26, // 5: api.v1.CreateSchedulerRequest.forwarders:type_name -> api.v1.Forwarder + 24, // 0: api.v1.ListSchedulersResponse.schedulers:type_name -> api.v1.SchedulerWithoutSpec + 25, // 1: api.v1.CreateSchedulerResponse.scheduler:type_name -> api.v1.Scheduler + 26, // 2: api.v1.CreateSchedulerRequest.spec:type_name -> api.v1.Spec + 27, // 3: api.v1.CreateSchedulerRequest.port_range:type_name -> api.v1.PortRange + 28, // 4: api.v1.CreateSchedulerRequest.autoscaling:type_name -> api.v1.Autoscaling + 29, // 5: api.v1.CreateSchedulerRequest.forwarders:type_name -> api.v1.Forwarder 18, // 6: api.v1.CreateSchedulerRequest.annotations:type_name -> api.v1.CreateSchedulerRequest.AnnotationsEntry - 22, // 7: api.v1.GetSchedulerResponse.scheduler:type_name -> api.v1.Scheduler - 23, // 8: api.v1.NewSchedulerVersionRequest.spec:type_name -> api.v1.Spec - 24, // 9: api.v1.NewSchedulerVersionRequest.port_range:type_name -> api.v1.PortRange - 25, // 10: api.v1.NewSchedulerVersionRequest.autoscaling:type_name -> api.v1.Autoscaling - 26, // 11: api.v1.NewSchedulerVersionRequest.forwarders:type_name -> api.v1.Forwarder - 19, // 12: api.v1.NewSchedulerVersionRequest.annotations:type_name -> api.v1.NewSchedulerVersionRequest.AnnotationsEntry - 27, // 13: api.v1.PatchSchedulerRequest.spec:type_name -> api.v1.OptionalSpec - 24, // 14: api.v1.PatchSchedulerRequest.port_range:type_name -> api.v1.PortRange - 28, // 15: api.v1.PatchSchedulerRequest.autoscaling:type_name -> api.v1.OptionalAutoscaling - 26, // 16: api.v1.PatchSchedulerRequest.forwarders:type_name -> api.v1.Forwarder - 20, // 17: api.v1.PatchSchedulerRequest.annotations:type_name -> api.v1.PatchSchedulerRequest.AnnotationsEntry - 29, // 18: api.v1.GetSchedulerVersionsResponse.versions:type_name -> api.v1.SchedulerVersion - 30, // 19: api.v1.GetSchedulersInfoResponse.schedulers:type_name -> api.v1.SchedulerInfo - 31, // 20: api.v1.validator:extendee -> google.protobuf.FieldOptions - 0, // 21: api.v1.SchedulersService.ListSchedulers:input_type -> api.v1.ListSchedulersRequest - 4, // 22: api.v1.SchedulersService.GetScheduler:input_type -> api.v1.GetSchedulerRequest - 3, // 23: api.v1.SchedulersService.CreateScheduler:input_type -> api.v1.CreateSchedulerRequest - 6, // 24: api.v1.SchedulersService.NewSchedulerVersion:input_type -> api.v1.NewSchedulerVersionRequest - 8, // 25: api.v1.SchedulersService.PatchScheduler:input_type -> api.v1.PatchSchedulerRequest - 10, // 26: api.v1.SchedulersService.GetSchedulerVersions:input_type -> api.v1.GetSchedulerVersionsRequest - 12, // 27: api.v1.SchedulersService.SwitchActiveVersion:input_type -> api.v1.SwitchActiveVersionRequest - 14, // 28: api.v1.SchedulersService.GetSchedulersInfo:input_type -> api.v1.GetSchedulersInfoRequest - 16, // 29: api.v1.SchedulersService.DeleteScheduler:input_type -> api.v1.DeleteSchedulerRequest - 1, // 30: api.v1.SchedulersService.ListSchedulers:output_type -> api.v1.ListSchedulersResponse - 5, // 31: api.v1.SchedulersService.GetScheduler:output_type -> api.v1.GetSchedulerResponse - 2, // 32: api.v1.SchedulersService.CreateScheduler:output_type -> api.v1.CreateSchedulerResponse - 7, // 33: api.v1.SchedulersService.NewSchedulerVersion:output_type -> api.v1.NewSchedulerVersionResponse - 9, // 34: api.v1.SchedulersService.PatchScheduler:output_type -> api.v1.PatchSchedulerResponse - 11, // 35: api.v1.SchedulersService.GetSchedulerVersions:output_type -> api.v1.GetSchedulerVersionsResponse - 13, // 36: api.v1.SchedulersService.SwitchActiveVersion:output_type -> api.v1.SwitchActiveVersionResponse - 15, // 37: api.v1.SchedulersService.GetSchedulersInfo:output_type -> api.v1.GetSchedulersInfoResponse - 17, // 38: api.v1.SchedulersService.DeleteScheduler:output_type -> api.v1.DeleteSchedulerResponse - 30, // [30:39] is the sub-list for method output_type - 21, // [21:30] is the sub-list for method input_type - 21, // [21:21] is the sub-list for extension type_name - 20, // [20:21] is the sub-list for extension extendee - 0, // [0:20] is the sub-list for field type_name + 19, // 7: api.v1.CreateSchedulerRequest.labels:type_name -> api.v1.CreateSchedulerRequest.LabelsEntry + 25, // 8: api.v1.GetSchedulerResponse.scheduler:type_name -> api.v1.Scheduler + 26, // 9: api.v1.NewSchedulerVersionRequest.spec:type_name -> api.v1.Spec + 27, // 10: api.v1.NewSchedulerVersionRequest.port_range:type_name -> api.v1.PortRange + 28, // 11: api.v1.NewSchedulerVersionRequest.autoscaling:type_name -> api.v1.Autoscaling + 29, // 12: api.v1.NewSchedulerVersionRequest.forwarders:type_name -> api.v1.Forwarder + 20, // 13: api.v1.NewSchedulerVersionRequest.annotations:type_name -> api.v1.NewSchedulerVersionRequest.AnnotationsEntry + 21, // 14: api.v1.NewSchedulerVersionRequest.labels:type_name -> api.v1.NewSchedulerVersionRequest.LabelsEntry + 30, // 15: api.v1.PatchSchedulerRequest.spec:type_name -> api.v1.OptionalSpec + 27, // 16: api.v1.PatchSchedulerRequest.port_range:type_name -> api.v1.PortRange + 31, // 17: api.v1.PatchSchedulerRequest.autoscaling:type_name -> api.v1.OptionalAutoscaling + 29, // 18: api.v1.PatchSchedulerRequest.forwarders:type_name -> api.v1.Forwarder + 22, // 19: api.v1.PatchSchedulerRequest.annotations:type_name -> api.v1.PatchSchedulerRequest.AnnotationsEntry + 23, // 20: api.v1.PatchSchedulerRequest.labels:type_name -> api.v1.PatchSchedulerRequest.LabelsEntry + 32, // 21: api.v1.GetSchedulerVersionsResponse.versions:type_name -> api.v1.SchedulerVersion + 33, // 22: api.v1.GetSchedulersInfoResponse.schedulers:type_name -> api.v1.SchedulerInfo + 34, // 23: api.v1.validator:extendee -> google.protobuf.FieldOptions + 0, // 24: api.v1.SchedulersService.ListSchedulers:input_type -> api.v1.ListSchedulersRequest + 4, // 25: api.v1.SchedulersService.GetScheduler:input_type -> api.v1.GetSchedulerRequest + 3, // 26: api.v1.SchedulersService.CreateScheduler:input_type -> api.v1.CreateSchedulerRequest + 6, // 27: api.v1.SchedulersService.NewSchedulerVersion:input_type -> api.v1.NewSchedulerVersionRequest + 8, // 28: api.v1.SchedulersService.PatchScheduler:input_type -> api.v1.PatchSchedulerRequest + 10, // 29: api.v1.SchedulersService.GetSchedulerVersions:input_type -> api.v1.GetSchedulerVersionsRequest + 12, // 30: api.v1.SchedulersService.SwitchActiveVersion:input_type -> api.v1.SwitchActiveVersionRequest + 14, // 31: api.v1.SchedulersService.GetSchedulersInfo:input_type -> api.v1.GetSchedulersInfoRequest + 16, // 32: api.v1.SchedulersService.DeleteScheduler:input_type -> api.v1.DeleteSchedulerRequest + 1, // 33: api.v1.SchedulersService.ListSchedulers:output_type -> api.v1.ListSchedulersResponse + 5, // 34: api.v1.SchedulersService.GetScheduler:output_type -> api.v1.GetSchedulerResponse + 2, // 35: api.v1.SchedulersService.CreateScheduler:output_type -> api.v1.CreateSchedulerResponse + 7, // 36: api.v1.SchedulersService.NewSchedulerVersion:output_type -> api.v1.NewSchedulerVersionResponse + 9, // 37: api.v1.SchedulersService.PatchScheduler:output_type -> api.v1.PatchSchedulerResponse + 11, // 38: api.v1.SchedulersService.GetSchedulerVersions:output_type -> api.v1.GetSchedulerVersionsResponse + 13, // 39: api.v1.SchedulersService.SwitchActiveVersion:output_type -> api.v1.SwitchActiveVersionResponse + 15, // 40: api.v1.SchedulersService.GetSchedulersInfo:output_type -> api.v1.GetSchedulersInfoResponse + 17, // 41: api.v1.SchedulersService.DeleteScheduler:output_type -> api.v1.DeleteSchedulerResponse + 33, // [33:42] is the sub-list for method output_type + 24, // [24:33] is the sub-list for method input_type + 24, // [24:24] is the sub-list for extension type_name + 23, // [23:24] is the sub-list for extension extendee + 0, // [0:23] is the sub-list for field type_name } func init() { file_api_v1_schedulers_proto_init() } @@ -1753,7 +1810,7 @@ func file_api_v1_schedulers_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_api_v1_schedulers_proto_rawDesc, NumEnums: 0, - NumMessages: 21, + NumMessages: 24, NumExtensions: 1, NumServices: 1, }, diff --git a/pkg/api/v1/schedulers_grpc.pb.go b/pkg/api/v1/schedulers_grpc.pb.go index f6297df46..6ed626d25 100644 --- a/pkg/api/v1/schedulers_grpc.pb.go +++ b/pkg/api/v1/schedulers_grpc.pb.go @@ -1,4 +1,8 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.3.0 +// - protoc v3.17.3 +// source: api/v1/schedulers.proto package v1 @@ -14,6 +18,18 @@ import ( // Requires gRPC-Go v1.32.0 or later. const _ = grpc.SupportPackageIsVersion7 +const ( + SchedulersService_ListSchedulers_FullMethodName = "/api.v1.SchedulersService/ListSchedulers" + SchedulersService_GetScheduler_FullMethodName = "/api.v1.SchedulersService/GetScheduler" + SchedulersService_CreateScheduler_FullMethodName = "/api.v1.SchedulersService/CreateScheduler" + SchedulersService_NewSchedulerVersion_FullMethodName = "/api.v1.SchedulersService/NewSchedulerVersion" + SchedulersService_PatchScheduler_FullMethodName = "/api.v1.SchedulersService/PatchScheduler" + SchedulersService_GetSchedulerVersions_FullMethodName = "/api.v1.SchedulersService/GetSchedulerVersions" + SchedulersService_SwitchActiveVersion_FullMethodName = "/api.v1.SchedulersService/SwitchActiveVersion" + SchedulersService_GetSchedulersInfo_FullMethodName = "/api.v1.SchedulersService/GetSchedulersInfo" + SchedulersService_DeleteScheduler_FullMethodName = "/api.v1.SchedulersService/DeleteScheduler" +) + // SchedulersServiceClient is the client API for SchedulersService service. // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. @@ -48,7 +64,7 @@ func NewSchedulersServiceClient(cc grpc.ClientConnInterface) SchedulersServiceCl func (c *schedulersServiceClient) ListSchedulers(ctx context.Context, in *ListSchedulersRequest, opts ...grpc.CallOption) (*ListSchedulersResponse, error) { out := new(ListSchedulersResponse) - err := c.cc.Invoke(ctx, "/api.v1.SchedulersService/ListSchedulers", in, out, opts...) + err := c.cc.Invoke(ctx, SchedulersService_ListSchedulers_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -57,7 +73,7 @@ func (c *schedulersServiceClient) ListSchedulers(ctx context.Context, in *ListSc func (c *schedulersServiceClient) GetScheduler(ctx context.Context, in *GetSchedulerRequest, opts ...grpc.CallOption) (*GetSchedulerResponse, error) { out := new(GetSchedulerResponse) - err := c.cc.Invoke(ctx, "/api.v1.SchedulersService/GetScheduler", in, out, opts...) + err := c.cc.Invoke(ctx, SchedulersService_GetScheduler_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -66,7 +82,7 @@ func (c *schedulersServiceClient) GetScheduler(ctx context.Context, in *GetSched func (c *schedulersServiceClient) CreateScheduler(ctx context.Context, in *CreateSchedulerRequest, opts ...grpc.CallOption) (*CreateSchedulerResponse, error) { out := new(CreateSchedulerResponse) - err := c.cc.Invoke(ctx, "/api.v1.SchedulersService/CreateScheduler", in, out, opts...) + err := c.cc.Invoke(ctx, SchedulersService_CreateScheduler_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -75,7 +91,7 @@ func (c *schedulersServiceClient) CreateScheduler(ctx context.Context, in *Creat func (c *schedulersServiceClient) NewSchedulerVersion(ctx context.Context, in *NewSchedulerVersionRequest, opts ...grpc.CallOption) (*NewSchedulerVersionResponse, error) { out := new(NewSchedulerVersionResponse) - err := c.cc.Invoke(ctx, "/api.v1.SchedulersService/NewSchedulerVersion", in, out, opts...) + err := c.cc.Invoke(ctx, SchedulersService_NewSchedulerVersion_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -84,7 +100,7 @@ func (c *schedulersServiceClient) NewSchedulerVersion(ctx context.Context, in *N func (c *schedulersServiceClient) PatchScheduler(ctx context.Context, in *PatchSchedulerRequest, opts ...grpc.CallOption) (*PatchSchedulerResponse, error) { out := new(PatchSchedulerResponse) - err := c.cc.Invoke(ctx, "/api.v1.SchedulersService/PatchScheduler", in, out, opts...) + err := c.cc.Invoke(ctx, SchedulersService_PatchScheduler_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -93,7 +109,7 @@ func (c *schedulersServiceClient) PatchScheduler(ctx context.Context, in *PatchS func (c *schedulersServiceClient) GetSchedulerVersions(ctx context.Context, in *GetSchedulerVersionsRequest, opts ...grpc.CallOption) (*GetSchedulerVersionsResponse, error) { out := new(GetSchedulerVersionsResponse) - err := c.cc.Invoke(ctx, "/api.v1.SchedulersService/GetSchedulerVersions", in, out, opts...) + err := c.cc.Invoke(ctx, SchedulersService_GetSchedulerVersions_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -102,7 +118,7 @@ func (c *schedulersServiceClient) GetSchedulerVersions(ctx context.Context, in * func (c *schedulersServiceClient) SwitchActiveVersion(ctx context.Context, in *SwitchActiveVersionRequest, opts ...grpc.CallOption) (*SwitchActiveVersionResponse, error) { out := new(SwitchActiveVersionResponse) - err := c.cc.Invoke(ctx, "/api.v1.SchedulersService/SwitchActiveVersion", in, out, opts...) + err := c.cc.Invoke(ctx, SchedulersService_SwitchActiveVersion_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -111,7 +127,7 @@ func (c *schedulersServiceClient) SwitchActiveVersion(ctx context.Context, in *S func (c *schedulersServiceClient) GetSchedulersInfo(ctx context.Context, in *GetSchedulersInfoRequest, opts ...grpc.CallOption) (*GetSchedulersInfoResponse, error) { out := new(GetSchedulersInfoResponse) - err := c.cc.Invoke(ctx, "/api.v1.SchedulersService/GetSchedulersInfo", in, out, opts...) + err := c.cc.Invoke(ctx, SchedulersService_GetSchedulersInfo_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -120,7 +136,7 @@ func (c *schedulersServiceClient) GetSchedulersInfo(ctx context.Context, in *Get func (c *schedulersServiceClient) DeleteScheduler(ctx context.Context, in *DeleteSchedulerRequest, opts ...grpc.CallOption) (*DeleteSchedulerResponse, error) { out := new(DeleteSchedulerResponse) - err := c.cc.Invoke(ctx, "/api.v1.SchedulersService/DeleteScheduler", in, out, opts...) + err := c.cc.Invoke(ctx, SchedulersService_DeleteScheduler_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -206,7 +222,7 @@ func _SchedulersService_ListSchedulers_Handler(srv interface{}, ctx context.Cont } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/api.v1.SchedulersService/ListSchedulers", + FullMethod: SchedulersService_ListSchedulers_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(SchedulersServiceServer).ListSchedulers(ctx, req.(*ListSchedulersRequest)) @@ -224,7 +240,7 @@ func _SchedulersService_GetScheduler_Handler(srv interface{}, ctx context.Contex } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/api.v1.SchedulersService/GetScheduler", + FullMethod: SchedulersService_GetScheduler_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(SchedulersServiceServer).GetScheduler(ctx, req.(*GetSchedulerRequest)) @@ -242,7 +258,7 @@ func _SchedulersService_CreateScheduler_Handler(srv interface{}, ctx context.Con } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/api.v1.SchedulersService/CreateScheduler", + FullMethod: SchedulersService_CreateScheduler_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(SchedulersServiceServer).CreateScheduler(ctx, req.(*CreateSchedulerRequest)) @@ -260,7 +276,7 @@ func _SchedulersService_NewSchedulerVersion_Handler(srv interface{}, ctx context } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/api.v1.SchedulersService/NewSchedulerVersion", + FullMethod: SchedulersService_NewSchedulerVersion_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(SchedulersServiceServer).NewSchedulerVersion(ctx, req.(*NewSchedulerVersionRequest)) @@ -278,7 +294,7 @@ func _SchedulersService_PatchScheduler_Handler(srv interface{}, ctx context.Cont } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/api.v1.SchedulersService/PatchScheduler", + FullMethod: SchedulersService_PatchScheduler_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(SchedulersServiceServer).PatchScheduler(ctx, req.(*PatchSchedulerRequest)) @@ -296,7 +312,7 @@ func _SchedulersService_GetSchedulerVersions_Handler(srv interface{}, ctx contex } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/api.v1.SchedulersService/GetSchedulerVersions", + FullMethod: SchedulersService_GetSchedulerVersions_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(SchedulersServiceServer).GetSchedulerVersions(ctx, req.(*GetSchedulerVersionsRequest)) @@ -314,7 +330,7 @@ func _SchedulersService_SwitchActiveVersion_Handler(srv interface{}, ctx context } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/api.v1.SchedulersService/SwitchActiveVersion", + FullMethod: SchedulersService_SwitchActiveVersion_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(SchedulersServiceServer).SwitchActiveVersion(ctx, req.(*SwitchActiveVersionRequest)) @@ -332,7 +348,7 @@ func _SchedulersService_GetSchedulersInfo_Handler(srv interface{}, ctx context.C } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/api.v1.SchedulersService/GetSchedulersInfo", + FullMethod: SchedulersService_GetSchedulersInfo_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(SchedulersServiceServer).GetSchedulersInfo(ctx, req.(*GetSchedulersInfoRequest)) @@ -350,7 +366,7 @@ func _SchedulersService_DeleteScheduler_Handler(srv interface{}, ctx context.Con } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/api.v1.SchedulersService/DeleteScheduler", + FullMethod: SchedulersService_DeleteScheduler_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(SchedulersServiceServer).DeleteScheduler(ctx, req.(*DeleteSchedulerRequest)) diff --git a/proto/api/v1/messages.proto b/proto/api/v1/messages.proto index e3c7a901e..3301e6b25 100644 --- a/proto/api/v1/messages.proto +++ b/proto/api/v1/messages.proto @@ -43,13 +43,6 @@ message Container { repeated ContainerPort ports = 8; } -// Annotation should add a annotation to scheduler -message Annotation{ - // name of the annotation - string name = 1; - // required annotation value or option - string value = 2; -} // OptionalContainer is the struct that defines a game room container configuration. // This message is used to patch container configuration. @@ -186,6 +179,8 @@ message Scheduler { repeated Forwarder forwarders = 10; // List with annotations map annotations = 11; + // List with labels + map labels = 12; } // Scheduler message used in the "ListScheduler version" definition. The "spec" is not implemented diff --git a/proto/api/v1/schedulers.proto b/proto/api/v1/schedulers.proto index 505790860..927c542eb 100644 --- a/proto/api/v1/schedulers.proto +++ b/proto/api/v1/schedulers.proto @@ -125,6 +125,8 @@ message CreateSchedulerRequest { repeated Forwarder forwarders = 8; // Add annotations for scheduler map annotations = 9; + // Add labels for scheduler + map labels = 10; } // Get Scheduler operation request @@ -161,6 +163,8 @@ message NewSchedulerVersionRequest { repeated Forwarder forwarders = 8; // New annotations for scheduler map annotations = 9; + // New labels for scheduler + map labels = 10; } // Update schedule operation response payload. @@ -187,6 +191,8 @@ message PatchSchedulerRequest { repeated Forwarder forwarders = 7; // Annotations declaration for the scheduler map annotations = 8; + // Labels declaration for the scheduler + map labels = 9; } // PatchSchedulerResponse have the operation response id that represents the operation creted to this change. diff --git a/proto/apidocs.swagger.json b/proto/apidocs.swagger.json index 1e3f5854c..856f16205 100644 --- a/proto/apidocs.swagger.json +++ b/proto/apidocs.swagger.json @@ -426,7 +426,7 @@ "parameters": [ { "name": "game", - "description": "Game name to filter schedulers", + "description": "Game name to filter schedulers\n\nMapped to URL query parameter `game`.", "in": "query", "required": false, "type": "string" @@ -509,6 +509,13 @@ "type": "string" }, "title": "New annotations for scheduler" + }, + "labels": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "title": "New labels for scheduler" } }, "description": "Scheduler is the struct that defines a maestro scheduler." @@ -586,6 +593,13 @@ "type": "string" }, "title": "Annotations declaration for the scheduler" + }, + "labels": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "title": "Labels declaration for the scheduler" } }, "description": "PatchSchedulerRequest is the struct that defines a partial update of a maestro scheduler." @@ -1219,6 +1233,13 @@ "type": "string" }, "title": "Add annotations for scheduler" + }, + "labels": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "title": "Add labels for scheduler" } }, "description": "Scheduler is the struct that defines a maestro scheduler." @@ -1702,6 +1723,13 @@ "type": "string" }, "title": "List with annotations" + }, + "labels": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "title": "List with labels" } }, "description": "Scheduler definition." diff --git a/test/data/handlers/fixtures/request/scheduler-config.json b/test/data/handlers/fixtures/request/scheduler-config.json index 893d8a458..d1f922c77 100644 --- a/test/data/handlers/fixtures/request/scheduler-config.json +++ b/test/data/handlers/fixtures/request/scheduler-config.json @@ -67,5 +67,8 @@ ], "annotations": { "imageregistry": "https://docker.hub.com/" + }, + "labels": { + "scheduler": "scheduler-name" } } diff --git a/test/data/handlers/fixtures/response/schedulers_handler/create_scheduler.json b/test/data/handlers/fixtures/response/schedulers_handler/create_scheduler.json index a237f1894..6d643d37f 100644 --- a/test/data/handlers/fixtures/response/schedulers_handler/create_scheduler.json +++ b/test/data/handlers/fixtures/response/schedulers_handler/create_scheduler.json @@ -79,6 +79,9 @@ ], "annotations": { "imageregistry": "https://docker.hub.com/" + }, + "labels": { + "scheduler": "scheduler-name" } } } diff --git a/test/data/handlers/fixtures/response/schedulers_handler/get_scheduler.json b/test/data/handlers/fixtures/response/schedulers_handler/get_scheduler.json index c1f588754..191e557e0 100644 --- a/test/data/handlers/fixtures/response/schedulers_handler/get_scheduler.json +++ b/test/data/handlers/fixtures/response/schedulers_handler/get_scheduler.json @@ -77,6 +77,7 @@ } } ], - "annotations": {} + "annotations": {}, + "labels": {} } }